/** * Update the specified resource in storage. * * @param int $id * @return Response */ public function updateRole($id, Request $request) { $level = "danger"; $message = " You are not permitted to update permissions."; if (Shinobi::can(config('watchtower.acl.permission.role', false))) { $permission = Permission::findOrFail($id); if ($request->has('slug')) { $permission->roles()->sync($request->get('slug')); } else { $permission->roles()->detach(); } $level = "success"; $message = "<i class='fa fa-check-square-o fa-1x'></i> Success! Permission roles edited."; } return redirect()->route('watchtower.permission.index')->with(['flash' => ['message' => $message, 'level' => $level]]); }
/** * A full matrix of roles and permissions. * @return Response */ public function showRoleMatrix() { if (Shinobi::can(config('watchtower.acl.role.viewmatrix', false))) { $roles = Role::all(); $perms = Permission::all(); $prs = DB::table('permission_role')->select('role_id as r_id', 'permission_id as p_id')->get(); $pivot = []; foreach ($prs as $p) { $pivot[] = $p->r_id . ":" . $p->p_id; } return view(config('watchtower.views.roles.rolematrix'), compact('roles', 'perms', 'pivot')); } return view(config('watchtower.views.layouts.unauthorized'), ['message' => 'view the role matrix']); }