Exemple #1
0
 /**
  * @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));
 }
Exemple #2
0
 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);
 }
Exemple #4
0
 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)));
 }
Exemple #5
0
 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();
                 }
             }
         }
     }
 }
Exemple #6
0
 private function groupList()
 {
     Group::create(array('group_id' => 1, 'group_name' => 'Admin', 'company_id' => '1'));
 }