32 lines
799 B
PHP
32 lines
799 B
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace App\Helpers;
|
|
|
|
use App\Data\ConnectedApp\ConnectedAppData;
|
|
use App\Enums\ConnectedAppPermissonEnum;
|
|
|
|
class AppPermission
|
|
{
|
|
/**
|
|
* Generates the standard permission string.
|
|
*/
|
|
public static function name(ConnectedAppPermissonEnum $permission, string|ConnectedAppData $app): string
|
|
{
|
|
$slug = is_string($app) ? $app : $app->slug;
|
|
|
|
return "{$permission->value}-{$slug}";
|
|
}
|
|
|
|
/**
|
|
* @param string $permissionName This should be the name constructed by the {@see self::name()} method.
|
|
*/
|
|
public static function type(string $permissionName): ?ConnectedAppPermissonEnum
|
|
{
|
|
$permission = explode('-', $permissionName);
|
|
|
|
return ConnectedAppPermissonEnum::tryFrom($permission[0]);
|
|
}
|
|
}
|