/** * @covers ::createPermission * @covers ::grantUserPermission * @covers ::grantGroupPermission * @covers ::grantRolePermission * @covers ::grantGroupRole * @covers ::grantUserRole * @covers ::collectPermissions * @covers ::collectUserPermissions * @covers ::collectGroupPermissions * @covers ::collectRolePermission * @covers ::parseSpecialRoles * @covers ::parsePermissions * @covers ::__prepareResource * @covers ::__compareResourceWithPermissions * @covers ::isAllow */ public function testAclAreaPermission() { $group = new Group(); $group->setName('TestGroup')->save(); $role1 = new Role(); $role1->setName('TestRole1')->save(); $role2 = new Role(); $role2->setName('TestRole2')->save(); $role3 = new Role(); $role3->setName('TestRole3')->setFilter('R')->save(); $permission1 = $this->acl->createPermission('zone1', 'access1', ['act1', 'act2', 'act3'], 'Zone 1'); $permission2 = $this->acl->createPermission('zone2', 'access2', ['act1', 'act2', 'act3'], 'Zone 2'); $permission3 = $this->acl->createPermission('zone3', 'access3', ['act1', 'act2', 'act3'], 'Zone 3'); $user = new User(); $user->login = '******'; $user->password = '******'; $user->setGroup($group); $user->save(); // Connect user with permissions $this->acl->grantUserPermission($permission1, $user, ['act1'], true); $this->acl->grantUserPermission($permission2, $user, ['act1', 'act2', 'act3'], true); // Connect group with permissions $this->acl->grantGroupPermission($permission1, $group, ['act3'], true); // Connect roles with permissions $this->acl->grantRolePermission($permission3, $role1, ['act1'], true); $this->acl->grantRolePermission($permission1, $role2, ['act2'], true); $this->acl->grantRolePermission($permission2, $role3, ['act2'], true); // Connect user with roles $this->acl->grantUserRole($role2, $user, true); $this->acl->grantUserRole($role3, $user, true); // Connect group with roles $this->acl->grantGroupRole($role1, $group, true); $this->acl->grantGroupRole($role2, $group, true); $this->assertTrue($this->acl->isAllow('zone1.access1|act1.act2.act3', $user)); $this->assertTrue($this->acl->isAllow('zone2.access2|act1.act3', $user)); $this->assertTrue($this->acl->isAllow('zone3.access3|act1', $user)); // because act2 was revoked (R) $this->assertFalse($this->acl->isAllow('zone2.access2|act1.act2.act3', $user)); }
private function getPages($group_id) { $pages_list = ''; $group = Group::find($group_id); foreach ($group->permission->groupBy('module_id') as $modules) { foreach ($modules as $pages) { $pages_list .= '<a class="btn default btn-xs blue">' . $pages->page->page_name . '</a>'; } } return $pages_list; }
/** * @covers ::grantGroupRole * @covers ::revokeGroupRole * @throws \Signes\Acl\Exception\DuplicateEntry * @expectedException \Signes\Acl\Exception\DuplicateEntry */ public function testGroupRoleGrantDuplicate() { $group = new Group(); $group->setName('TestGroup')->save(); $role = new Role(); $role->setName('TestRole')->save(); $this->repository->grantGroupRole($role, $group); $this->repository->grantGroupRole($role, $group); }
public function edit($id) { $this->checkPageAction($this->page_id, Action::$Edit); if (!User::find($id) || User::find($id)->remove_status == 'Active') { $this->diplayError(404); } if (Request::ajax() && Input::has('actionType')) { $responce = array(); switch (Input::get('actionType')) { case 'groupList': $group_list = array(); if (Input::has('company_id')) { $user = User::find(Auth::id()); if ($user->group->group_name != 'Admin') { $groups[] = $user->group; } else { $company_id = Input::get('company_id'); $groups = Group::where('company_id', $company_id)->get(); } foreach ($groups as $group) { $group_list[] = array('id' => $group->group_id, 'text' => $group->group_name); } } return json_encode($group_list); break; case 'status': $responce['status'] = false; if (User::updateStatus($id)) { $responce['status'] = true; } return json_encode($responce); break; case 'resetPwd': $responce['msg'] = 'Failed in reseting password!'; if (User::resetPassword($id)) { $responce['msg'] = 'Successfully reset password!'; } return json_encode($responce); break; case 'updateUser': if (Request::isMethod('post') && Input::has('user') && Input::has('userinfo')) { if (!User::find($id)) { return json_encode(array('msg' => 'Unable to find user, Please try again later!')); } else { $user_detail = json_decode(Input::get('user'), TRUE); $userInfo = json_decode(Input::get('userinfo'), TRUE); $user = User::find($id); if (!$this->checkUserValidation($id)) { return json_encode(array('status' => 'false', 'msg' => 'Unable to update user due to some restrictions!')); } $prevData = $user->toArray(); $user->fill($user_detail); if ($user->save()) { $user->userinfo->fill($userInfo); if ($user->userinfo->save()) { return json_encode(array('status' => 'true', 'msg' => 'Successfully Updated User!')); } else { $user->fill($prevData); $user->save(); return json_encode(array('status' => 'false', 'msg' => 'Unable To Update User!')); } } return json_encode(array('status' => 'false', 'msg' => 'Unable To Update User!')); } } break; } } $user = User::find(Auth::id()); $company_id = $user->group->company_id; return view('content.setting.users.form.user_form', array('company_id' => $company_id, 'user_data' => User::find($id))); }
public function generateGroups($company_id) { $group_list = array('0' => 'Admin'); $permission_list = array('0' => array('1' => array(array('page_id' => 1, 'action_value' => Action::$View | Action::$Add | Action::$Edit | Action::$Delete), array('page_id' => 2, 'action_value' => Action::$View | Action::$Add | Action::$Edit)), '2' => array(array('page_id' => 4, 'action_value' => Action::$View | Action::$Add | Action::$Edit | Action::$Delete)))); foreach ($group_list as $key => $group) { $new_group = new Group(); $new_group->fill(array('group_name' => $group, 'company_id' => $company_id)); if ($new_group->save()) { foreach ($permission_list[$key] as $module_key => $pages) { foreach ($pages as $page) { $new_permission = new Permission(); $new_permission->group_id = $new_group->group_id; $new_permission->module_id = $module_key; $new_permission->page_id = $page['page_id']; $new_permission->action_value = $page['action_value']; $new_permission->save(); } } } } }
private function groupList() { Group::create(array('group_id' => 1, 'group_name' => 'Admin', 'company_id' => '1')); }