/** * * @param String $role_id ID of role to delete * @throws KnockCascadeDeleteAttemptException */ public function deleteRole($role_id) { $role = Role::findOrFail($role_id); if (!$role == null) { if ($role->actions->count() == 0) { $role->delete(); } else { throw new KnockCascadeDeleteAttemptException("Sorry, you cannot delete Role [" . $role->name . "] because there are actions associated with it.\n\t\t\t\t\t\tYou must first delete all related actions before it can be deleted."); } } }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request, $tag_id, $role_id) { $role = Role::findOrFail($role_id); $action = Knock::createAction($role->tag->name, $role->name, Str::slug($request->get('name')), $role->tag->description, $role->description, str_replace('"', "'", $request->input('description'))); return redirect('/knock/tags/' . $role->tag->id . '/roles/' . $role->id)->with('flash_message', 'Action ' . Str::slug($request->get('name')) . ' created'); }
/** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($tag_id, $role_id) { $role = Role::find($role_id); try { if ($role != null) { Knock::deleteRole($role_id); return redirect('/knock/tags/' . $tag_id)->with('flash_message', 'Role ' . $role->name . ' has been deleted'); } } catch (KnockCascadeDeleteAttemptException $e) { return redirect('/knock/tags/' . $tag_id . '/roles/' . $role_id)->with('flash_message', $e->getMessage()); } }