/** * 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'); }
/** * {@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; }
/** * 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; }
public function getDescription() { return parent::getDescription(); }
/** * {@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; }
/** * 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; }