/**
  * Returns true if and only if the assertion conditions are met
  *
  * This method is passed the ACL, Role, Resource, and privilege to which
  * the authorization query applies. If the $role, $resource, or $privilege
  * parameters are null, it means that the query applies to all Roles,
  * Resources, or privileges, respectively.
  *
  * @param  Zend_Acl                    $acl
  * @param  Zend_Acl_Role_Interface     $role
  * @param  Zend_Acl_Resource_Interface $resource
  * @param  string                      $privilege
  * @return boolean
  */
 public function assert(Zend_Acl $acl, Zend_Acl_Role_Interface $role = null, Zend_Acl_Resource_Interface $resource = null, $privilege = null)
 {
     // We need specific objects to check against each other
     if (NULL === $role || NULL === $resource) {
         return false;
     }
     // Ensure we're handled User models
     if (!$role instanceof UserModel) {
         throw new \Application\Exceptions\InvalidArgumentException('Role must be an instance of UserModel');
     }
     $orgId = null;
     $protectedFields = array();
     $resourceClass = get_class($resource);
     if (!isset($this->_protectedFields[$resourceClass])) {
         return true;
     }
     $protectedFields = $this->_protectedFields[$resourceClass];
     if ($resource instanceof OrgModelAbstract) {
         $originalModel = $resourceClass::find($resource->getId());
     } else {
         if ($resource instanceof UserModel) {
             $originalModel = UserModel::find($resource->getId());
         } else {
             throw new \Application\Exceptions\InvalidArgumentException('Resource must be an instance of OrgModelAbstract or UserModel');
         }
     }
     return $this->_checkProtectedFields($originalModel, $resource, $protectedFields);
 }
 public function testUpdateUser()
 {
     // Persist user
     $this->_user->save();
     $this->_user->setFirstName('EditedFirstName');
     $this->_service->update($this->_user);
     // Check if the user has been updated
     $user = UserModel::find($this->_user->getId());
     $this->assertNotNull($user);
     $this->assertEquals('EditedFirstName', $user->getFirstName());
 }
Пример #3
0
 public function testRemoveUser()
 {
     $user = new UserModel($this->_data);
     $user->save();
     // Make sure it's been saved
     $user = UserModel::find($user->getId());
     $this->assertInstanceOf('\\Application\\Model\\UserModel', $user);
     $user->delete();
     $user = UserModel::find($user->getId());
     $this->assertNull($user);
 }