Beispiel #1
0
 /**
  * Add acl resources
  *
  * @param array $resources
  * @param boolean $createConnections
  * @param integer $userRole
  */
 protected function addAclResources($resources, $createConnections = true, $userRole = AclModelBase::DEFAULT_ROLE_MEMBER)
 {
     // create a test user
     $userData = ['nick_name' => Rand::getString(32), 'email' => Rand::getString(32), 'role' => $userRole];
     // add member
     $query = $this->aclModelBase->insert()->into('user_list')->values($userData);
     $statement = $this->aclModelBase->prepareStatementForSqlObject($query);
     $statement->execute();
     $this->userId = $this->aclModelBase->getAdapter()->getDriver()->getLastGeneratedValue();
     // create new resources
     foreach ($resources as $resource) {
         // add new test resource
         $query = $this->aclModelBase->insert()->into('acl_resource')->values(['resource' => $resource, 'module' => 1, 'description' => '']);
         $statement = $this->aclModelBase->prepareStatementForSqlObject($query);
         $statement->execute();
         $resourceId = $this->aclModelBase->getAdapter()->getDriver()->getLastGeneratedValue();
         $this->aclResourcesIds[] = $resourceId;
         if ($createConnections) {
             $query = $this->aclModelBase->insert()->into('acl_resource_connection')->values(['role' => $userRole, 'resource' => $resourceId]);
             $statement = $this->aclModelBase->prepareStatementForSqlObject($query);
             $statement->execute();
             $this->aclResourcesConnections[] = $this->aclModelBase->getAdapter()->getDriver()->getLastGeneratedValue();
         }
     }
 }
Beispiel #2
0
 /**
  * Test role synchronisation
  */
 public function testRoleSynchronisation()
 {
     // create a first test ACL role
     $query = $this->model->insert()->into('acl_role')->values(['name' => 'test role 1']);
     $statement = $this->model->prepareStatementForSqlObject($query);
     $statement->execute();
     $this->aclRolesIds[] = $this->model->getAdapter()->getDriver()->getLastGeneratedValue();
     // create a test user
     $query = $this->model->insert()->into('user_list')->values(['nick_name' => Rand::getString(32), 'email' => Rand::getString(32), 'role' => $this->aclRolesIds[0]]);
     $statement = $this->model->prepareStatementForSqlObject($query);
     $statement->execute();
     $this->usersIds[] = $this->model->getAdapter()->getDriver()->getLastGeneratedValue();
     // delete the created ACL role
     $query = $this->model->delete()->from('acl_role')->where(['id' => $this->aclRolesIds[0]]);
     $statement = $this->model->prepareStatementForSqlObject($query);
     $statement->execute();
     // fire the delete ACL role event
     AclEvent::fireDeleteAclRoleEvent($this->aclRolesIds[0]);
     // check the created test user's role
     $select = $this->model->select();
     $select->from('user_list')->columns(['role'])->where(['user_id' => $this->usersIds[0]]);
     $statement = $this->model->prepareStatementForSqlObject($select);
     $resultSet = new ResultSet();
     $result = $resultSet->initialize($statement->execute());
     // user must be a default member
     $this->assertEquals($result->current()['role'], AclBaseModel::DEFAULT_ROLE_MEMBER);
 }