singleloginsystem/app/Services/AppsPermissionService.php
= c680c1ae6e Feat: implement role and app management
- Added services (`RoleService`, `AppRoleService`, `AppsPermissionService`) to handle role creation, app assignments, and permissions.
- Introduced new Livewire forms for creating roles and assigning apps (`CreateRoleForm`, `AssignAppToRoleForm`).
- Built dynamic Blade views for role and app management, including modals and reusable components.
- Removed outdated `fluxui-development` skill documentation.
2026-05-19 11:13:35 +00:00

33 lines
876 B
PHP

<?php
declare(strict_types=1);
namespace App\Services;
use App\Data\ConnectedApp\ConnectedAppData;
use App\Enums\ConnectedAppPermissonEnum;
use App\Helpers\AppPermission;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Str;
use Spatie\Permission\Models\Permission;
use Throwable;
class AppsPermissionService
{
/**
* Creates a new permission for the connected app.
*
* @throws Throwable
*/
public function add(ConnectedAppData $connectedApp, ConnectedAppPermissonEnum $permission): void
{
if (! $connectedApp->slug) {
$connectedApp->slug = Str::slug($connectedApp->name);
}
$permissionName = AppPermission::name($permission, $connectedApp);
DB::transaction(function () use ($permissionName): void {
Permission::firstOrCreate(['name' => $permissionName]);
});
}
}