![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/dceprojects.corals.io/vendor/spatie/laravel-permission/src/Commands/ |
<?php namespace Spatie\Permission\Commands; use Illuminate\Console\Command; use Illuminate\Support\Collection; use Spatie\Permission\Contracts\Permission as PermissionContract; use Spatie\Permission\Contracts\Role as RoleContract; class Show extends Command { protected $signature = 'permission:show {guard? : The name of the guard} {style? : The display style (default|borderless|compact|box)}'; protected $description = 'Show a table of roles and permissions per guard'; public function handle() { $permissionClass = app(PermissionContract::class); $roleClass = app(RoleContract::class); $style = $this->argument('style') ?? 'default'; $guard = $this->argument('guard'); if ($guard) { $guards = Collection::make([$guard]); } else { $guards = $permissionClass::pluck('guard_name')->merge($roleClass::pluck('guard_name'))->unique(); } foreach ($guards as $guard) { $this->info("Guard: $guard"); $roles = $roleClass::whereGuardName($guard)->orderBy('name')->get()->mapWithKeys(function ($role) { return [$role->name => $role->permissions->pluck('name')]; }); $permissions = $permissionClass::whereGuardName($guard)->orderBy('name')->pluck('name'); $body = $permissions->map(function ($permission) use ($roles) { return $roles->map(function (Collection $role_permissions) use ($permission) { return $role_permissions->contains($permission) ? ' ✔' : ' ·'; })->prepend($permission); }); $this->table( $roles->keys()->prepend('')->toArray(), $body->toArray(), $style ); } } }