/** * @param Model $user * @return bool * @throws GeneralException */ public function delete(Model $user) { if (access()->id() == $user->id) { throw new GeneralException(trans('exceptions.backend.access.users.cant_delete_self')); } if (parent::delete($user)) { event(new UserDeleted($user)); return true; } throw new GeneralException(trans('exceptions.backend.access.users.delete_error')); }
/** * @param Model $role * @throws GeneralException * @return bool */ public function delete(Model $role) { //Would be stupid to delete the administrator role if ($role->id == 1) { //id is 1 because of the seeder throw new GeneralException(trans('exceptions.backend.access.roles.cant_delete_admin')); } //Don't delete the role is there are users associated if ($role->users()->count() > 0) { throw new GeneralException(trans('exceptions.backend.access.roles.has_users')); } DB::transaction(function () use($role) { //Detach all associated roles $role->permissions()->sync([]); if (parent::delete($role)) { event(new RoleDeleted($role)); return true; } throw new GeneralException(trans('exceptions.backend.access.roles.delete_error')); }); }