Exemple #1
0
 /**
  * Tests the creation of an Acl Resource (name / description)
  *
  * @author Nikos Dimopoulos <*****@*****.**>
  * @since  2012-11-30
  */
 public function testAclResourceNameDescription()
 {
     $aclResource = new AclResource('Administrators', 'Super-User Resource');
     $expected = 'Administrators';
     $actual = $aclResource->getName();
     $this->assertEquals($expected, $actual, 'Acl\\Resource does not return correct name');
     $expected = 'Super-User Resource';
     $actual = $aclResource->getDescription();
     $this->assertEquals($expected, $actual, 'Acl\\Resource does not return correct description');
 }
Exemple #2
0
 /**
  * {@inheritdoc}
  *
  * Example:
  * <code>
  * //Add a resource to the the list allowing access to an action
  * $acl->addResource(new Phalcon\Acl\Resource('customers'), 'search');
  * $acl->addResource('customers', 'search');
  * //Add a resource  with an access list
  * $acl->addResource(new Phalcon\Acl\Resource('customers'), array('create', 'search'));
  * $acl->addResource('customers', array('create', 'search'));
  * </code>
  *
  * @param  \Phalcon\Acl\Resource $resource
  * @param  array|string          $accessList
  * @return boolean
  */
 public function addResource($resource, $accessList = null)
 {
     if (!is_object($resource)) {
         $resource = new Resource($resource);
     }
     $resources = $this->getCollection('resources');
     $exists = $resources->count(['name' => $resource->getName()]);
     if (!$exists) {
         $resources->insert(['name' => $resource->getName(), 'description' => $resource->getDescription()]);
     }
     if ($accessList) {
         return $this->addResourceAccess($resource->getName(), $accessList);
     }
     return true;
 }
Exemple #3
0
 /**
  * Adds a resource to the ACL list
  *
  * Access names can be a particular action, by example
  * search, update, delete, etc or a list of them
  *
  * Example:
  * <code>
  * //Add a resource to the the list allowing access to an action
  * $acl->addResource(new Phalcon\Acl\Resource('customers'), 'search');
  * $acl->addResource('customers', 'search');
  *
  * //Add a resource  with an access list
  * $acl->addResource(new Phalcon\Acl\Resource('customers'), array('create', 'search'));
  * $acl->addResource('customers', array('create', 'search'));
  * </code>
  *
  * @param   Phalcon\Acl\Resource $resource
  * @return  boolean
  */
 public function addResource($resource, $accessList = null)
 {
     if (!is_object($resource)) {
         $resource = new Resource($resource);
     }
     $exists = $this->_options['db']->fetchOne('SELECT COUNT(*) FROM ' . $this->_options['resources'] . " WHERE name = ?", null, array($resource->getName()));
     if (!$exists[0]) {
         $this->_options['db']->execute('INSERT INTO ' . $this->_options['resources'] . " VALUES (?, ?)", array($resource->getName(), $resource->getDescription()));
     }
     if ($accessList) {
         return $this->addResourceAccess($resource->getName(), $accessList);
     }
     return true;
 }
Exemple #4
0
 public function getDescription()
 {
     return parent::getDescription();
 }
Exemple #5
0
 /**
  * {@inheritdoc}
  * Example:
  * <code>
  * //Add a resource to the the list allowing access to an action
  * $acl->addResource(new Phalcon\Acl\Resource('customers'), 'search');
  * $acl->addResource('customers', 'search');
  * //Add a resource  with an access list
  * $acl->addResource(new Phalcon\Acl\Resource('customers'), ['create', 'search']);
  * $acl->addResource('customers', ['create', 'search']);
  * </code>
  *
  * @param  \Phalcon\Acl\Resource|string $resource
  * @param  array|string                 $accessList
  * @return boolean
  */
 public function addResource($resource, $accessList = null)
 {
     if (!is_object($resource)) {
         $resource = new Resource($resource);
     }
     $exists = $this->connection->fetchOne("SELECT COUNT(*) FROM {$this->resources} WHERE name = ?", null, [$resource->getName()]);
     if (!$exists[0]) {
         $this->connection->execute("INSERT INTO {$this->resources} VALUES (?, ?)", [$resource->getName(), $resource->getDescription()]);
     }
     if ($accessList) {
         return $this->addResourceAccess($resource->getName(), $accessList);
     }
     return true;
 }
Exemple #6
0
 /**
  * Returns resource accesses
  *
  * @return \Phalcon\Acl\Resource[]
  */
 public function getResourceAccesses($resource)
 {
     if (!is_object($resource)) {
         $resource = new Resource($resource);
     }
     $exists = $this->_db->fetchOne('SELECT id FROM ' . $this->_options['resources'] . " WHERE name = ?", null, [$resource->getName()]);
     if (!$exists[0]) {
         return false;
     }
     $accesses = [];
     $sql = 'SELECT id, name FROM ' . $this->_options['resourcesAccesses'] . " WHERE resource_id = ?";
     foreach ($this->_db->fetchAll($sql, \Phalcon\Db::FETCH_ASSOC, [$exists['id']]) as $row) {
         $accesses[] = $row['name'];
     }
     return $accesses;
 }