/** * Add a Permission to a Role * * @param mixed $permission Permission to add, might by instance of Permission or name of permission as string * @return Illuminate\Database\Eloquent\Model */ public function addPermission($permission) { if (is_string($permission)) { $permission = Permission::whereName($permission)->firstOrFail(); } return $this->permissions()->save($permission); }
/** * Store given permissions to role. * * @param \Illuminate\Http\Request $request * * @return void */ public function postGiveRolePermissions(Request $request) { $this->validate($request, ['role' => 'required', 'permissions' => 'required']); $role = Role::with('permissions')->whereName($request->role)->first(); $role->permissions()->detach(); foreach ($request->permissions as $permission_name) { $permission = Permission::whereName($permission_name)->first(); $role->givePermissionTo($permission); } Session::flash('flash_message', 'Permission granted!'); return redirect('admin/roles'); }
/** * Store given permissions to role. * * @param \Illuminate\Http\Request $request * * @return void */ public function postUserRolePermissions(Request $request) { $this->validate($request, ['role' => 'required', 'permissions' => 'required']); $role = Role::with('permissions')->whereName($request->role)->first(); $role->permissions()->detach(); foreach ($request->permissions as $permission_name) { $permission = Permission::whereName($permission_name)->first(); $role->assign($permission); } \Session::flash('flash_message', 'Permission granted!'); return \Redirect::route('admin.assign-role-permissions', []); }
/** * @Given the permission with the name :arg1 has the role with the name :arg2 */ public function thePermissionWithTheNameHasTheRoleWithTheName($arg1, $arg2) { $permission = Permission::whereName($arg1)->firstOrFail(); $role = Role::whereName($arg2)->firstOrFail(); $permission->addRole($role); }