You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

40 lines
1.1 KiB

<?php
namespace App\Http\Controllers\Admin;
use App\Forms\RoleForm;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Permission;
use Spatie\Permission\Models\Role;
class RoleController extends CommonController
{
public $urlPrefix = "admin/role";
public $bladePath = "admin.role";
public $modelClass = Role::class;
public $formClass = RoleForm::class;
public $modelName = "角色";
public function index(Request $request)
{
$data = $this->model->where("guard_name", $this->guardName)->paginate(10);
$permissions = (new Permission())->where("guard_name", $this->guardName)->orderBy("myindex")->get()->toArray();
$permissions = array2tree($permissions);
return view($this->bladePath . ".index", compact("data", "permissions"));
}
public function setPermissions(Request $request)
{
$role = Role::find($request->id);
try {
$role->syncPermissions((array)$request->permission_id);
return $this->ajaxSuccess("授权成功");
} catch (\Exception $exception) {
return $this->ajaxError("授权失败");
}
}
}