store/app/Enums/Permission.php

51 lines
1.4 KiB
PHP

<?php
namespace App\Enums;
use App\Traits\ProvidesEnumOptions;
enum Permission: string
{
use ProvidesEnumOptions;
case DASHBOARD_VIEW = 'dashboard.view';
case EMPLOYEES_VIEW = 'employees.view';
case EMPLOYEES_CREATE = 'employees.create';
case EMPLOYEES_UPDATE = 'employees.update';
case EMPLOYEES_DELETE = 'employees.delete';
case EMPLOYEES_RESET_PASSWORD = 'employees.reset-password';
case EMPLOYEES_TOGGLE_STATUS = 'employees.toggle-status';
public function label(): string
{
return match ($this) {
self::DASHBOARD_VIEW => 'Lihat Dashboard',
self::EMPLOYEES_VIEW => 'Lihat Pegawai',
self::EMPLOYEES_CREATE => 'Tambah Pegawai',
self::EMPLOYEES_UPDATE => 'Ubah Pegawai',
self::EMPLOYEES_DELETE => 'Hapus Pegawai',
self::EMPLOYEES_RESET_PASSWORD => 'Reset Kata Sandi Pegawai',
self::EMPLOYEES_TOGGLE_STATUS => 'Ubah Status Pegawai',
};
}
public function group(): string
{
return match ($this) {
self::DASHBOARD_VIEW => 'Umum',
self::EMPLOYEES_VIEW, self::EMPLOYEES_CREATE, self::EMPLOYEES_UPDATE,
self::EMPLOYEES_DELETE, self::EMPLOYEES_RESET_PASSWORD, self::EMPLOYEES_TOGGLE_STATUS => 'Pegawai',
};
}
/**
* @return list<string>
*/
public static function values(): array
{
return array_column(self::cases(), 'value');
}
}