added team create permission

This commit is contained in:
2026-04-12 21:23:23 +02:00
parent 6f19d12964
commit 709efc9fb0
7 changed files with 62 additions and 12 deletions
+5 -7
View File
@@ -14,6 +14,7 @@ enum Permission: string
case ProjectRead = 'project:read';
case ProjectWrite = 'project:write';
case ProjectAdmin = 'project:admin';
case TeamCreate = 'team:create';
case TeamInvite = 'team:invite';
case TeamManage = 'team:manage';
case TeamAdmin = 'team:admin';
@@ -26,6 +27,7 @@ enum Permission: string
self::ProjectRead => 'Project read',
self::ProjectWrite => 'Project write',
self::ProjectAdmin => 'Project admin',
self::TeamCreate => 'Team create',
self::TeamInvite => 'Team invite',
self::TeamManage => 'Team manage',
self::TeamAdmin => 'Team admin',
@@ -35,7 +37,7 @@ enum Permission: string
public function scope(): PermissionScope
{
return match ($this) {
self::GlobalAdmin, self::ProjectCreate => PermissionScope::Global,
self::GlobalAdmin, self::ProjectCreate, self::TeamCreate => PermissionScope::Global,
self::ProjectRead, self::ProjectWrite, self::ProjectAdmin => PermissionScope::Project,
self::TeamInvite, self::TeamManage, self::TeamAdmin => PermissionScope::Team,
};
@@ -64,13 +66,8 @@ enum Permission: string
return true;
}
foreach ($this->impliedPermissions() as $impliedPermission) {
if ($impliedPermission->includes($permission)) {
return true;
}
}
return array_any($this->impliedPermissions(), fn ($impliedPermission) => $impliedPermission->includes($permission));
return false;
}
public function isAssignableTo(Model|string $assignee): bool
@@ -118,6 +115,7 @@ enum Permission: string
{
return [
self::GlobalAdmin,
self::TeamCreate,
self::ProjectCreate,
];
}