getName()) { continue; } if (!in_array('auth:sanctum', $route->middleware())) { continue; } $routeName = $route->getName(); $groupName = explode('.', $routeName)[0] ?? 'default'; $groupName = Str::of($groupName)->replace('-', ' ')->studly()->value(); $groupMap[$groupName] = PermissionGroup::query()->firstOrCreate([ 'name' => $groupName ]); $permissionGroup = $groupMap[$groupName]; Permission::query()->firstOrCreate([ 'name' => $route->getName(), 'guard_name' => 'api', ], [ 'description' => $route->getName(), 'permission_group_id' => $permissionGroup->id, ]); } $superAdminRoleId = config("auth.super_admin_role_id"); $superAdminRole = [ 'id' => $superAdminRoleId, 'name' => 'admin', 'guard_name' => 'api', 'description' => '管理员权限' ]; $role = Role::query()->firstOrCreate(['id' => $superAdminRoleId], $superAdminRole); $role?->syncPermissions(Permission::query()->pluck("name")->toArray()); } }