File "RolePermissionsEnum.php"
Full Path: /var/www/html/back/app/Enums/RolePermissionsEnum.php
File size: 1.27 KB
MIME-type: text/x-php
Charset: utf-8
<?php
declare(strict_types=1);
namespace App\Enums;
enum RolePermissionsEnum: string
{
case Edit = 'edit';
case AgreementOnFirstStage = 'agreement_on_first_stage';
case AgreementOnSecondStage = 'agreement_on_second_stage';
case ProjectManagement = 'project_management';
public static function label(): array
{
$options = [];
foreach (self::cases() as $case) {
$options[$case->value] = match ($case) {
self::Edit => 'Редактирование платежа при согласовании',
self::AgreementOnFirstStage => 'Согласование на 1-м шаге',
self::AgreementOnSecondStage => 'Согласование на 2-м шаге',
self::ProjectManagement => 'Управление проектами',
};
}
return $options;
}
public static function fromCommaSeparated(string $permissions): array
{
$labels = self::label();
$result = [];
foreach (explode(',', $permissions) as $permission) {
$trimmed = trim($permission);
if ($case = self::tryFrom($trimmed)) {
$result[] = $labels[$case->value];
}
}
return $result;
}
}