Files
repo-backend/app/Http/Controllers/Admin/AdminRolePermissionController.php
T

85 lines
2.7 KiB
PHP

<?php
namespace App\Http\Controllers\Admin;
use App\AdminModule;
use App\AdminModuleAction;
use App\AdminRole;
use App\AdminRolePermission;
use Illuminate\Support\Facades\Input;
use Illuminate\Support\Facades\Session;
class AdminRolePermissionController extends Controller{
public function update()
{
if(session()->get('admin_is_super') != '1') {
abort(403);
}
$id = Input::get('id', '');
$adminRole = AdminRole::find($id);
if($adminRole == null) {
abort(404);
}
$modules = AdminModule::all();
$modules_data = [];
foreach ($modules as $index=>$m)
{
$action = AdminModuleAction::where("admin_module_id",$m->id)->where("level",">=",0)->get();
if (count($action)){
$m->actions = $action;
$modules_data[$index] = $m;
}
}
$results = AdminRolePermission::where('role_id', $adminRole->id)->get();
if(empty($results)){
$permissions = [];
}else{
$results = $results->toArray();
$permissions = [];
foreach($results as $row) {
$permissions[$row['module']][] = $row['action'];
}
}
return view('admin.manager.role_permission', [
'admin_role' => $adminRole,
'modules' => $modules_data,
'permissions' => $permissions,
'success' => Session::get('success', null)
]);
}
public function postUpdate()
{
if(session()->get('admin_is_super') != '1') {
abort(403);
}
$roleID = Input::get('id', null);
$role = AdminRole::find($roleID);
if($role == null) {
abort(404);
}
AdminRolePermission::where('role_id', $roleID)->delete();
foreach(Input::get('permission') as $module => $actions)
{
foreach($actions as $action)
{
$level = AdminModuleAction::where("action",$action)->first();
$adminRolePermission = new AdminRolePermission();
$adminRolePermission->role_id = $roleID;
$adminRolePermission->module = $module;
$adminRolePermission->action = $action;
$adminRolePermission->level = $level->level;
$adminRolePermission->admin_module_id = $level->admin_module_id;
$adminRolePermission->name = $level->name;
$adminRolePermission->save();
}
}
return $this->success('修改成功');
}
}
?>