Skip to content

Commit

Permalink
adds the ability to use the config for teams foreign key feature when…
Browse files Browse the repository at this point in the history
… enabled
  • Loading branch information
bezhanSalleh committed Nov 10, 2024
1 parent 38be833 commit 8de271b
Show file tree
Hide file tree
Showing 5 changed files with 14 additions and 9 deletions.
2 changes: 1 addition & 1 deletion src/Commands/SuperAdminCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,7 @@ public function handle(): int
return self::FAILURE;
}
setPermissionsTeamId($tenantId);
$this->superAdminRole = FilamentShield::createRole(team_id: $tenantId);
$this->superAdminRole = FilamentShield::createRole(tenantId: $tenantId);
$this->superAdminRole->syncPermissions(Utils::getPermissionModel()::pluck('id'));

} else {
Expand Down
4 changes: 2 additions & 2 deletions src/FilamentShield.php
Original file line number Diff line number Diff line change
Expand Up @@ -106,13 +106,13 @@ protected static function giveSuperAdminPermission(string | array | Collection $
}
}

public static function createRole(?string $name = null, ?int $team_id = null): Role
public static function createRole(?string $name = null, ?int $tenantId = null): Role
{
if (Utils::isTeamFeatureEnabled()) {
return Utils::getRoleModel()::firstOrCreate(
[
'name' => $name ?? Utils::getSuperAdminName(),
config('permission.column_names.team_foreign_key') => $team_id,
Utils::getTenantModelForeignKey() => $tenantId,
],
['guard_name' => Utils::getFilamentAuthGuard()]
);
Expand Down
6 changes: 3 additions & 3 deletions src/Resources/RoleResource/Pages/CreateRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,14 @@ protected function mutateFormDataBeforeCreate(array $data): array
{
$this->permissions = collect($data)
->filter(function ($permission, $key) {
return ! in_array($key, ['name', 'guard_name', 'select_all', 'team_id']);
return ! in_array($key, ['name', 'guard_name', 'select_all', Utils::getTenantModelForeignKey()]);
})
->values()
->flatten()
->unique();

if (Arr::has($data, 'team_id')) {
return Arr::only($data, ['name', 'guard_name', 'team_id']);
if (Arr::has($data, Utils::getTenantModelForeignKey())) {
return Arr::only($data, ['name', 'guard_name', Utils::getTenantModelForeignKey()]);
}

return Arr::only($data, ['name', 'guard_name']);
Expand Down
6 changes: 3 additions & 3 deletions src/Resources/RoleResource/Pages/EditRole.php
Original file line number Diff line number Diff line change
Expand Up @@ -26,14 +26,14 @@ protected function mutateFormDataBeforeSave(array $data): array
{
$this->permissions = collect($data)
->filter(function ($permission, $key) {
return ! in_array($key, ['name', 'guard_name', 'select_all', 'team_id']);
return ! in_array($key, ['name', 'guard_name', 'select_all', Utils::getTenantModelForeignKey()]);
})
->values()
->flatten()
->unique();

if (Arr::has($data, 'team_id')) {
return Arr::only($data, ['name', 'guard_name', 'team_id']);
if (Arr::has($data, Utils::getTenantModelForeignKey())) {
return Arr::only($data, ['name', 'guard_name', Utils::getTenantModelForeignKey()]);
}

return Arr::only($data, ['name', 'guard_name']);
Expand Down
5 changes: 5 additions & 0 deletions src/Support/Utils.php
Original file line number Diff line number Diff line change
Expand Up @@ -271,4 +271,9 @@ public static function getTenantModel(): ?string
{
return config()->get('filament-shield.tenant_model', null);
}

public static function getTenantModelForeignKey(): string
{
return config()->get('permission.column_names.team_foreign_key', 'team_id');
}
}

0 comments on commit 8de271b

Please sign in to comment.