Skip to content

Commit

Permalink
Updating ShieldSeeder stub
Browse files Browse the repository at this point in the history
  • Loading branch information
torosegon committed Dec 18, 2023
1 parent 542ade7 commit bcb1dec
Showing 1 changed file with 23 additions and 25 deletions.
48 changes: 23 additions & 25 deletions stubs/ShieldSeeder.stub
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,13 @@ namespace Database\Seeders;

use Illuminate\Database\Seeder;
use BezhanSalleh\FilamentShield\Support\Utils;
use Spatie\Permission\PermissionRegistrar;

class ShieldSeeder extends Seeder
{
/**
* Run the database seeds.
*
* @return void
*/
public function run()
public function run(): void
{
app()[\Spatie\Permission\PermissionRegistrar::class]->forgetCachedPermissions();
app()[PermissionRegistrar::class]->forgetCachedPermissions();

$rolesWithPermissions = '{{ RolePermissions }}';
$directPermissions = '{{ DirectPermissions }}';
Expand All @@ -26,40 +23,41 @@ class ShieldSeeder extends Seeder

protected static function makeRolesWithPermissions(string $rolesWithPermissions): void
{
if (! blank($rolePlusPermissions = json_decode($rolesWithPermissions,true))) {
if (! blank($rolePlusPermissions = json_decode($rolesWithPermissions, true))) {
/** @var Model $roleModel */
$roleModel = Utils::getRoleModel();
/** @var Model $permissionModel */
$permissionModel = Utils::getPermissionModel();

foreach ($rolePlusPermissions as $rolePlusPermission) {
$role = Utils::getRoleModel()::firstOrCreate([
$role = $roleModel::firstOrCreate([
'name' => $rolePlusPermission['name'],
'guard_name' => $rolePlusPermission['guard_name']
'guard_name' => $rolePlusPermission['guard_name'],
]);

if (! blank($rolePlusPermission['permissions'])) {
$permissionModels = collect($rolePlusPermission['permissions'])
->map(fn ($permission) => $permissionModel::firstOrCreate([
'name' => $permission,
'guard_name' => $rolePlusPermission['guard_name'],
]))
->all();

$permissionModels = collect();

collect($rolePlusPermission['permissions'])
->each(function ($permission) use($permissionModels) {
$permissionModels->push(Utils::getPermissionModel()::firstOrCreate([
'name' => $permission,
'guard_name' => 'web'
]));
});
$role->syncPermissions($permissionModels);

}
}
}
}

public static function makeDirectPermissions(string $directPermissions): void
{
if (! blank($permissions = json_decode($directPermissions,true))) {

foreach($permissions as $permission) {
if (! blank($permissions = json_decode($directPermissions, true))) {
/** @var Model $permissionModel */
$permissionModel = Utils::getPermissionModel();

if (Utils::getPermissionModel()::whereName($permission)->doesntExist()) {
Utils::getPermissionModel()::create([
foreach ($permissions as $permission) {
if ($permissionModel::whereName($permission)->doesntExist()) {
$permissionModel::create([
'name' => $permission['name'],
'guard_name' => $permission['guard_name'],
]);
Expand Down

0 comments on commit bcb1dec

Please sign in to comment.