示例#1
0
 /**
  *
  */
 private function initPerms()
 {
     Permission::create(['name' => 'permissions#', 'readable_name' => '权限']);
     Permission::create(['name' => 'admin.roles.index', 'readable_name' => '角色管理']);
     Permission::create(['name' => 'admin.permissions.index', 'readable_name' => '权限管理']);
     Permission::create(['name' => 'admin.admins.index', 'readable_name' => '管理员管理']);
 }
示例#2
0
 /**
  * 分配权限
  */
 public function assignPermission(Request $request)
 {
     $role = Defender::findRoleById($request->get('id'));
     $permissionNameParams = $request->except(['_token', 'id']);
     $permissionNames = array_keys($permissionNameParams);
     $permissions = [];
     foreach ($permissionNames as $permissionName) {
         $permissions[] = str_replace('_', '.', $permissionName);
     }
     // 删除 roles 所有权限
     $role->revokePermissions();
     $permissions = Permission::whereIn('name', $permissions)->get();
     $permissions->each(function ($per) use($role) {
         $role->attachPermission($per);
     });
     return redirect()->route('admin.roles.index');
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id, UpdatePermissionRequest $request)
 {
     $name = $request->get('name');
     $readableName = $request->get('readable_name');
     $count = Permission::whereName($name)->where('id', '!=', $id)->count();
     if ($count > 0) {
         return $this->redirectWithError('路由名称不能重复');
     }
     $count = Permission::whereEmail($readableName)->where('id', '!=', $id)->count();
     if ($count > 0) {
         return $this->redirectWithError('权限显示名称不能重复');
     }
     $data = ['name' => $name, 'readable_name' => $readableName];
     Permission::findOrFail($id)->update($data);
     return redirect()->route('admin.permissions.index');
 }