Example #1
0
File: Role.php Project: KirSlb/lara
 public function setPermitsAttribute($permits)
 {
     // устанавливаем новый набор прав для роли
     $this->setPermissions([]);
     if (isset($permits)) {
         foreach ($permits as $permitid) {
             $permit = \App\Permit::find($permitid);
             $this->addPermission($permit->slug);
         }
     }
     // перепрописываем отношения с таблицей permits
     $this->permits()->detach();
     if (!$permits) {
         return;
     }
     if (!$this->exists) {
         $this->save();
     }
     $this->permits()->attach($permits);
 }
 /**
  * Update role from admin panel
  *
  * @param Request $request
  * @param $id
  * @return \Illuminate\Http\RedirectResponse|\Illuminate\Routing\Redirector
  */
 public function adminRoleUpdate(Request $request, $id)
 {
     $role = Sentinel::findRoleById($id);
     $allpermits = Permit::all();
     foreach ($allpermits as $permit) {
         $role->removePermission($permit->slug)->save();
     }
     if (isset($request->permits)) {
         foreach ($request->permits as $permitId) {
             $permit = Permit::find($permitId);
             $role->addPermission($permit->slug);
         }
     }
     $role->slug = $request->slug;
     $role->name = $request->name;
     $role->save();
     $role = Role::find($role->id);
     $arrPermitsForRole = $request->input('permits');
     $role->setPermitsAttribute($arrPermitsForRole);
     return Redirect('/admin/roles');
 }