/** * Display a listing of the resource. * * @return Response */ public function index() { if (Auth::user() && Auth::user()->id == Config::get('laracancan.super_admin')) { if (Input::get('ajax') == null) { $resources = Resource::all(); return view('laracancan::permission.list')->with('resources', $resources); } } return response(view('laracancan::master.401'), 401); }
public function manageRolePermissionsAction($id) { if (Auth::user() && Auth::user()->id == Config::get('laracancan.super_admin')) { $role = Role::find($id); $role->resourcePermissions()->detach(); foreach (Resource::all() as $resource) { $permissions = Input::get($resource->id . "_resourcepermissions"); if ($permissions != null) { foreach ($permissions as $permission) { $resourcePermission = Resourcepermission::where('permission_id', $permission)->where('resource_id', $resource->id)->first(); $role->resourcePermissions()->detach([$resourcePermission->id]); $role->resourcePermissions()->attach([$resourcePermission->id]); foreach ($resourcePermission->childResourcePermissions as $child) { $role->resourcePermissions()->attach([$child->id => ['parent_id' => $resourcePermission->id]]); } } } } return redirect()->back()->with('flash_success', 'Permissions saved successfully!'); } return response(view('laracancan::master.401'), 401); }
public function postManageChildren($id) { if (Auth::user() && Auth::user()->id == Config::get('laracancan.super_admin')) { $children = Input::get('children', array()); $resource = Resource::find($id); $resource->childResources()->detach(); foreach ($resource->parentResources as $parent) { $parent->pivot->pivot = NULL; $parent->pivot->save(); } foreach ($children as $child) { $pivot = Input::get($child . '_pivot'); $resource->childResources()->attach([$child => ['pivot' => $pivot]]); $potentialMutualResource = Resource::find($child); if ($potentialMutualResource->isParentOf($id)) { $potentialMutualResource->childResources()->detach($id); $potentialMutualResource->childResources()->attach([$id => ['pivot' => $pivot]]); } } return redirect()->back()->with('flash_success', 'Records Updated Successfully'); } return response(view('laracancan::master.401'), 401); }
/** * Remove the specified resource from storage. * * @param int $id * @return Response */ public function destroy($id) { if (Auth::user() && Auth::user()->id == Config::get('laracancan.super_admin')) { $resource = Resource::find(Input::get('resource_id')); $resource->resourcePermissions()->detach([$id]); return redirect()->back()->with('flash_success', 'Permission successfully removed from this resource.'); } return response(view('laracancan::master.401'), 401); }
/** * Function for resources of user based on a specific permission * @param $permission * @return array */ function resourcesByPermission($permission) { if ($this->id == Config::get('laracancan.super_admin', 0)) { return Resource::all(); } $roles = $this->roles; $resourses = array(); foreach ($roles as $role) { $roleResources = $role->resourcesByPermission($permission); $resourses = array_merge($resourses, $roleResources ? $roleResources : array()); } $resourses = array_unique($resourses); return $resourses; }