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
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("授权失败");
|
|
}
|
|
|
|
}
|
|
}
|