From d65b553ea22756c5f68e80f0539b109bc672c8d7 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 25 Jul 2013 21:00:04 +0200 Subject: [PATCH 01/19] Fixing column name casing --- data/schema.sql | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/data/schema.sql b/data/schema.sql index fe7c97a..5fb2f4c 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,6 +1,6 @@ CREATE TABLE IF NOT EXISTS `user_role` ( `id` int(11) NOT NULL AUTO_INCREMENT, - `roleId` varchar(255) NOT NULL, + `role_id` varchar(255) NOT NULL, `is_default` tinyint(1) NOT NULL, `parent_id` int(11) DEFAULT NULL, PRIMARY KEY (`id`) From 61bef31dcc2f9d04f36ed3f9d9dc1271b381414f Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 25 Jul 2013 21:02:03 +0200 Subject: [PATCH 02/19] Using 'parent_id' as default parent role field name --- README.md | 2 +- src/BjyAuthorize/Provider/Role/ZendDb.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index f6049d6..4aebaa7 100644 --- a/README.md +++ b/README.md @@ -109,7 +109,7 @@ return array( 'BjyAuthorize\Provider\Role\ZendDb' => array( 'table' => 'user_role', 'role_id_field' => 'role_id', - 'parent_role_field' => 'parent', + 'parent_role_field' => 'parent_id', ), // this will load roles from diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index 9f544dc..30c6c77 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -43,7 +43,7 @@ class ZendDb implements ProviderInterface /** * @var string */ - protected $parentRoleFieldName = 'parent'; + protected $parentRoleFieldName = 'parent_id'; /** * @param $options From 06caec0c52ade10721ff5725acb3366b9a07f51f Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Thu, 25 Jul 2013 22:01:01 +0200 Subject: [PATCH 03/19] Populating records based on the parent role identifier --- README.md | 7 ++-- src/BjyAuthorize/Provider/Role/ZendDb.php | 39 ++++++++++++++++------- 2 files changed, 32 insertions(+), 14 deletions(-) diff --git a/README.md b/README.md index 4aebaa7..a2af572 100644 --- a/README.md +++ b/README.md @@ -107,9 +107,10 @@ return array( // this will load roles from the user_role table in a database // format: user_role(role_id(varchar), parent(varchar)) 'BjyAuthorize\Provider\Role\ZendDb' => array( - 'table' => 'user_role', - 'role_id_field' => 'role_id', - 'parent_role_field' => 'parent_id', + 'table' => 'user_role', + 'identifier_field_name' => 'id', + 'role_id_field' => 'role_id', + 'parent_role_field' => 'parent_id', ), // this will load roles from diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index 30c6c77..493a675 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -35,6 +35,11 @@ class ZendDb implements ProviderInterface */ protected $tableName = 'user_role'; + /** + * @var string + */ + protected $identifierFieldName = 'id'; + /** * @var string */ @@ -61,6 +66,10 @@ public function __construct($options, ServiceLocatorInterface $serviceLocator) $this->tableName = $options['table']; } + if (isset($options['identifier_field_name'])) { + $this->identifierFieldName = $options['identifier_field_name']; + } + if (isset($options['role_id_field'])) { $this->roleIdFieldName = $options['role_id_field']; } @@ -78,26 +87,34 @@ public function getRoles() /* @var $adapter \Zend\Db\Adapter\Adapter */ $adapter = $this->serviceLocator->get($this->adapterName); $tableGateway = new TableGateway($this->tableName, $adapter); - $sql = new Select; + $sql = new Select(); $sql->from($this->tableName); - $rowset = $tableGateway->selectWith($sql); - $roles = array(); + /* @var $roles Role[] */ + $roles = array(); + $indexedRows = array(); + $rowset = $tableGateway->selectWith($sql); - // Pass One: Build each object + // Pass 1: collect all rows and index them by PK foreach ($rowset as $row) { - $roleId = $row[$this->roleIdFieldName]; - $roles[$roleId] = new Role($roleId, $row[$this->parentRoleFieldName]); + $indexedRows[$row[$this->identifierFieldName]] = $row; + } + + // Pass 2: build a role for each indexed row + foreach ($indexedRows as $row) { + $parentRoleId = isset($row[$this->parentRoleFieldName]) + ? $indexedRows[$row[$this->parentRoleFieldName]][$this->roleIdFieldName] : null; + $roleId = $row[$this->roleIdFieldName]; + $roles[$roleId] = new Role($roleId, $parentRoleId); } - // Pass Two: Re-inject parent objects to preserve hierarchy - /* @var $roleObj Role */ - foreach ($roles as $roleObj) { - $parentRoleObj = $roleObj->getParent(); + // Pass 3: Re-inject parent objects to preserve hierarchy + foreach ($roles as $role) { + $parentRoleObj = $role->getParent(); if ($parentRoleObj && $parentRoleObj->getRoleId()) { - $roleObj->setParent($roles[$parentRoleObj->getRoleId()]); + $role->setParent($roles[$parentRoleObj->getRoleId()]); } } From 41c449614ebc7fa7e74cb7df5634b984dc1f7776 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 26 Jul 2013 11:10:41 +0200 Subject: [PATCH 04/19] Minor sync of the role entity (was using wrong column naming conventions) --- data/Role.php.dist | 3 ++- src/BjyAuthorize/Provider/Role/ZendDb.php | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/data/Role.php.dist b/data/Role.php.dist index 7864256..d8abf7b 100644 --- a/data/Role.php.dist +++ b/data/Role.php.dist @@ -31,13 +31,14 @@ class Role implements HierarchicalRoleInterface /** * @var string - * @ORM\Column(type="string", length=255, unique=true, nullable=true) + * @ORM\Column(type="string", name="role_id", length=255, unique=true, nullable=true) */ protected $roleId; /** * @var Role * @ORM\ManyToOne(targetEntity="MyNamespace\Role") + * @ORM\JoinColumn(name="parent_id", referencedColumnName="id", nullable=true) */ protected $parent; diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index 493a675..e2f793d 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -113,8 +113,8 @@ public function getRoles() foreach ($roles as $role) { $parentRoleObj = $role->getParent(); - if ($parentRoleObj && $parentRoleObj->getRoleId()) { - $role->setParent($roles[$parentRoleObj->getRoleId()]); + if ($parentRoleObj && ($parentRoleId = $parentRoleObj->getRoleId())) { + $role->setParent($roles[$parentRoleId]); } } From 1ffc5a6bcb4b12dac102045ff3e96a70334b4dd7 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 26 Jul 2013 11:14:18 +0200 Subject: [PATCH 05/19] Adding FKs to the suggested schema definitions --- data/schema.sql | 32 +++++++++++++++++++------------- 1 file changed, 19 insertions(+), 13 deletions(-) diff --git a/data/schema.sql b/data/schema.sql index 5fb2f4c..65e7d31 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -1,14 +1,20 @@ -CREATE TABLE IF NOT EXISTS `user_role` ( - `id` int(11) NOT NULL AUTO_INCREMENT, - `role_id` varchar(255) NOT NULL, - `is_default` tinyint(1) NOT NULL, - `parent_id` int(11) DEFAULT NULL, - PRIMARY KEY (`id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `user_role` ( + `id` INT(11) NOT NULL AUTO_INCREMENT, + `role_id` VARCHAR(255) NOT NULL, + `is_default` TINYINT(1) NOT NULL DEFAULT 0, + `parent_id` INT(11) NULL, + PRIMARY KEY (`id`), + UNIQUE INDEX `unique_role` (`role_id` ASC), + INDEX `parent_id_fk` (`parent_id` ASC), + CONSTRAINT `parent_id_fk` FOREIGN KEY (`parent_id`) REFERENCES `user_role` (`id`) ON DELETE SET NULL +) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; -CREATE TABLE IF NOT EXISTS `user_role_linker` ( - `user_id` int(11) unsigned NOT NULL, - `role_id` int(11) NOT NULL, - PRIMARY KEY (`user_id`,`role_id`), - KEY `role_id` (`role_id`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8; +CREATE TABLE IF NOT EXISTS `user_role_linker` ( + `user_id` INT(11) NOT NULL, + `role_id` INT(11) NOT NULL, + PRIMARY KEY (`user_id`, `role_id`), + INDEX `role_id_fk` (`role_id` ASC), + INDEX `user_id_fk` (`user_id` ASC), + CONSTRAINT `role_id_fk` FOREIGN KEY (`role_id`) REFERENCES `user_role` (`id`) ON DELETE CASCADE, + CONSTRAINT `user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE +) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; From 195b36c783e8b8f3a259d065d0d166d8744990d9 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 26 Jul 2013 19:34:37 +0200 Subject: [PATCH 06/19] Aligning referenced field name to ZfcUser conventions --- data/schema.sql | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/data/schema.sql b/data/schema.sql index 65e7d31..ea6d7c7 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -5,16 +5,16 @@ CREATE TABLE IF NOT EXISTS `user_role` ( `parent_id` INT(11) NULL, PRIMARY KEY (`id`), UNIQUE INDEX `unique_role` (`role_id` ASC), - INDEX `parent_id_fk` (`parent_id` ASC), - CONSTRAINT `parent_id_fk` FOREIGN KEY (`parent_id`) REFERENCES `user_role` (`id`) ON DELETE SET NULL + INDEX `idx_parent_id` (`parent_id` ASC), + CONSTRAINT `fk_parent_id` FOREIGN KEY (`parent_id`) REFERENCES `user_role` (`id`) ON DELETE SET NULL ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `user_role_linker` ( `user_id` INT(11) NOT NULL, `role_id` INT(11) NOT NULL, PRIMARY KEY (`user_id`, `role_id`), - INDEX `role_id_fk` (`role_id` ASC), - INDEX `user_id_fk` (`user_id` ASC), - CONSTRAINT `role_id_fk` FOREIGN KEY (`role_id`) REFERENCES `user_role` (`id`) ON DELETE CASCADE, - CONSTRAINT `user_id_fk` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`) ON DELETE CASCADE + INDEX `idx_role_id` (`role_id` ASC), + INDEX `idx_user_id` (`user_id` ASC), + CONSTRAINT `fk_role_id` FOREIGN KEY (`role_id`) REFERENCES `user_role` (`id`) ON DELETE CASCADE, + CONSTRAINT `fk_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; From ccda2996fb599ac56d40f34e7a43f09cc48cbbb3 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 26 Jul 2013 20:05:37 +0200 Subject: [PATCH 07/19] Removing sqlite schema, fixing FK column type --- data/schema.sql | 2 +- data/schema.sqlite.sql | 13 ------------- 2 files changed, 1 insertion(+), 14 deletions(-) delete mode 100644 data/schema.sqlite.sql diff --git a/data/schema.sql b/data/schema.sql index ea6d7c7..9517c94 100644 --- a/data/schema.sql +++ b/data/schema.sql @@ -10,7 +10,7 @@ CREATE TABLE IF NOT EXISTS `user_role` ( ) ENGINE = InnoDB DEFAULT CHARACTER SET = utf8 COLLATE = utf8_unicode_ci; CREATE TABLE IF NOT EXISTS `user_role_linker` ( - `user_id` INT(11) NOT NULL, + `user_id` INT UNSIGNED NOT NULL, `role_id` INT(11) NOT NULL, PRIMARY KEY (`user_id`, `role_id`), INDEX `idx_role_id` (`role_id` ASC), diff --git a/data/schema.sqlite.sql b/data/schema.sqlite.sql deleted file mode 100644 index 8032753..0000000 --- a/data/schema.sqlite.sql +++ /dev/null @@ -1,13 +0,0 @@ -CREATE TABLE IF NOT EXISTS `user_role` ( - `role_id` VARCHAR(255) NOT NULL, - `is_default` TINYINT(1) NOT NULL, - `parent` VARCHAR(255) DEFAULT NULL, - PRIMARY KEY (`role_id`) -); - -CREATE TABLE IF NOT EXISTS `user_role_linker` ( - `user_id` INTEGER NOT NULL, - `role_id` VARCHAR(255) NOT NULL, - PRIMARY KEY (`user_id`,`role_id`) -); - From 539cae3727a1368cb397c3c79aac2cafe78e013e Mon Sep 17 00:00:00 2001 From: Simone Castellaneta Date: Fri, 6 Sep 2013 23:23:04 +0200 Subject: [PATCH 08/19] Hotfix for issue 168 --- config/module.config.php | 1 + .../Provider/Identity/ZfcUserZendDb.php | 27 +++++---- src/BjyAuthorize/Provider/Role/ZendDb.php | 5 +- .../Service/UserRoleServiceFactory.php | 27 +++++++++ ...erZendDbIdentityProviderServiceFactory.php | 7 ++- .../Provider/Identity/ZfcUserZendDbTest.php | 15 ++--- .../Provider/Role/ZendDbTest.php | 42 +++++++++++++- ...ndDbIdentityProviderServiceFactoryTest.php | 58 ------------------- 8 files changed, 100 insertions(+), 82 deletions(-) create mode 100644 src/BjyAuthorize/Service/UserRoleServiceFactory.php delete mode 100644 tests/BjyAuthorizeTest/Service/ZfcUserZendDbIdentityProviderServiceFactoryTest.php diff --git a/config/module.config.php b/config/module.config.php index 5ce2cd4..a2264ff 100644 --- a/config/module.config.php +++ b/config/module.config.php @@ -79,6 +79,7 @@ => 'BjyAuthorize\Service\ZfcUserZendDbIdentityProviderServiceFactory', 'BjyAuthorize\View\UnauthorizedStrategy' => 'BjyAuthorize\Service\UnauthorizedStrategyServiceFactory', + 'role_table_gateway' => 'BjyAuthorize\Service\UserRoleServiceFactory', ), 'invokables' => array( 'BjyAuthorize\View\RedirectionStrategy' => 'BjyAuthorize\View\RedirectionStrategy', diff --git a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php index 7c50633..144335f 100644 --- a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php +++ b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php @@ -10,8 +10,10 @@ use BjyAuthorize\Exception\InvalidRoleException; use Zend\Db\Adapter\Adapter; +use Zend\Db\TableGateway\TableGateway; use Zend\Db\Sql\Where; use Zend\Db\Sql\Sql; +use Zend\Db\Sql\Select; use Zend\Permissions\Acl\Role\RoleInterface; use ZfcUser\Service\User; @@ -36,15 +38,20 @@ class ZfcUserZendDb implements ProviderInterface * @var string */ protected $tableName = 'user_role_linker'; + + /** + * @var Zend\Db\TableGateway\TableGateway + */ + protected $tableGateway; /** * @param \Zend\Db\Adapter\Adapter $adapter * @param \ZfcUser\Service\User $userService */ - public function __construct(Adapter $adapter, User $userService) + public function __construct(TableGateway $tableGateway, User $userService) { - $this->adapter = $adapter; - $this->userService = $userService; + $this->tableGateway = $tableGateway; + $this->userService = $userService; } /** @@ -59,20 +66,20 @@ public function getIdentityRoles() } // get roles associated with the logged in user - $sql = new Sql($this->adapter); - $select = $sql->select()->from($this->tableName); - $where = new Where(); + $sql = new Select(); + $sql->from($this->tableName); + $sql->join('user_role', 'user_role.id = ' . $this->tableName . '.role_id'); + $sql->where(array('user_id' => $authService->getIdentity()->getId())); + $results = $this->tableGateway->selectWith($sql); - $where->equalTo('user_id', $authService->getIdentity()->getId()); - - $results = $sql->prepareStatementForSqlObject($select->where($where))->execute(); - $roles = array(); + $roles = array(); foreach ($results as $i) { $roles[] = $i['role_id']; } return $roles; + } /** diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index e2f793d..eb7a782 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -84,9 +84,8 @@ public function __construct($options, ServiceLocatorInterface $serviceLocator) */ public function getRoles() { - /* @var $adapter \Zend\Db\Adapter\Adapter */ - $adapter = $this->serviceLocator->get($this->adapterName); - $tableGateway = new TableGateway($this->tableName, $adapter); + /* @var $tableGateway \Zend\Db\TableGateway\TableGateway */ + $tableGateway = $this->serviceLocator->get('role_table_gateway'); $sql = new Select(); $sql->from($this->tableName); diff --git a/src/BjyAuthorize/Service/UserRoleServiceFactory.php b/src/BjyAuthorize/Service/UserRoleServiceFactory.php new file mode 100644 index 0000000..4a2de58 --- /dev/null +++ b/src/BjyAuthorize/Service/UserRoleServiceFactory.php @@ -0,0 +1,27 @@ + + */ +class UserRoleServiceFactory implements FactoryInterface +{ + /** + * {@inheritDoc} + */ + public function createService(ServiceLocatorInterface $serviceLocator) + { + return new TableGateway('user_role', $serviceLocator->get('bjyauthorize_zend_db_adapter')); + } +} diff --git a/src/BjyAuthorize/Service/ZfcUserZendDbIdentityProviderServiceFactory.php b/src/BjyAuthorize/Service/ZfcUserZendDbIdentityProviderServiceFactory.php index 4dec1b4..eb5fb87 100644 --- a/src/BjyAuthorize/Service/ZfcUserZendDbIdentityProviderServiceFactory.php +++ b/src/BjyAuthorize/Service/ZfcUserZendDbIdentityProviderServiceFactory.php @@ -10,6 +10,7 @@ use BjyAuthorize\Provider\Identity\ZfcUserZendDb; use Zend\ServiceManager\FactoryInterface; +use Zend\Db\TableGateway\TableGateway; use Zend\ServiceManager\ServiceLocatorInterface; /** @@ -26,13 +27,13 @@ class ZfcUserZendDbIdentityProviderServiceFactory implements FactoryInterface */ public function createService(ServiceLocatorInterface $serviceLocator) { - /* @var $adapter \Zend\Db\Adapter\Adapter */ - $adapter = $serviceLocator->get('zfcuser_zend_db_adapter'); + /* @var $tableGateway \Zend\Db\TableGateway\TableGateway */ + $tableGateway = new TableGateway('user_role_linker', $serviceLocator->get('zfcuser_zend_db_adapter')); /* @var $userService \ZfcUser\Service\User */ $userService = $serviceLocator->get('zfcuser_user_service'); $config = $serviceLocator->get('BjyAuthorize\Config'); - $provider = new ZfcUserZendDb($adapter, $userService); + $provider = new ZfcUserZendDb($tableGateway, $userService); $provider->setDefaultRole($config['default_role']); diff --git a/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php index 912f21e..04e97fb 100644 --- a/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php @@ -29,9 +29,9 @@ class ZfcUserZendDbTest extends PHPUnit_Framework_TestCase protected $userService; /** - * @var \Zend\Db\Adapter\Adapter|\PHPUnit_Framework_MockObject_MockObject + * @var \Zend\Db\TableGateway\TableGateway|\PHPUnit_Framework_MockObject_MockObject */ - protected $adapter; + protected $tableGateway; /** * @var \BjyAuthorize\Provider\Identity\ZfcUserZendDb @@ -45,9 +45,9 @@ class ZfcUserZendDbTest extends PHPUnit_Framework_TestCase */ public function setUp() { - $this->authService = $this->getMock('Zend\Authentication\AuthenticationService'); - $this->userService = $this->getMock('ZfcUser\Service\User'); - $this->adapter = $this->getMock('Zend\Db\Adapter\Adapter', array(), array(), '', false); + $this->authService = $this->getMock('Zend\Authentication\AuthenticationService'); + $this->userService = $this->getMock('ZfcUser\Service\User'); + $this->tableGateway = $this->getMock('Zend\Db\TableGateway\TableGateway', array(), array(), '', false); $this ->userService @@ -55,7 +55,7 @@ public function setUp() ->method('getAuthService') ->will($this->returnValue($this->authService)); - $this->provider = new ZfcUserZendDb($this->adapter, $this->userService); + $this->provider = new ZfcUserZendDb($this->tableGateway, $this->userService); } /** @@ -90,6 +90,7 @@ public function testSetGetDefaultRole() */ public function testGetIdentityRoles() { - $this->markTestIncomplete(); + $roles = $this->provider->getIdentityRoles(); + $this->assertEquals($roles, array(null)); } } diff --git a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php index e6dfde1..0e922e7 100644 --- a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php @@ -43,6 +43,46 @@ protected function setUp() */ public function testGetRoles() { - $this->markTestIncomplete(); + $tableGateway = $this->getMockBuilder('Zend\Db\TableGateway\TableGateway') + ->disableOriginalConstructor() + ->getMock(); + $tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( + array( + array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), + array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => NULL), + ) + )); + + $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); + $provider = new ZendDb(array(), $this->serviceLocator); + + $this->assertEquals($provider->getRoles(), array( + new \BjyAuthorize\Acl\Role('guest'), + new \BjyAuthorize\Acl\Role('user'), + )); + } + + /** + * @covers \BjyAuthorize\Provider\Role\ZendDb::getRoles + */ + public function testGetRolesWithInheritance() + { + $tableGateway = $this->getMockBuilder('Zend\Db\TableGateway\TableGateway') + ->disableOriginalConstructor() + ->getMock(); + $tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( + array( + array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), + array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => 1), + ) + )); + + $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); + $provider = new ZendDb(array(), $this->serviceLocator); + + $this->assertEquals($provider->getRoles(), array( + new \BjyAuthorize\Acl\Role('guest'), + new \BjyAuthorize\Acl\Role('user', 'guest'), + )); } } diff --git a/tests/BjyAuthorizeTest/Service/ZfcUserZendDbIdentityProviderServiceFactoryTest.php b/tests/BjyAuthorizeTest/Service/ZfcUserZendDbIdentityProviderServiceFactoryTest.php deleted file mode 100644 index 6dd18e2..0000000 --- a/tests/BjyAuthorizeTest/Service/ZfcUserZendDbIdentityProviderServiceFactoryTest.php +++ /dev/null @@ -1,58 +0,0 @@ - - */ -class ZfcUserZendDbIdentityProviderServiceFactoryTest extends PHPUnit_Framework_TestCase -{ - /** - * @covers \BjyAuthorize\Service\ZfcUserZendDbIdentityProviderServiceFactory::createService - */ - public function testCreateService() - { - $factory = new ZfcUserZendDbIdentityProviderServiceFactory(); - $serviceLocator = $this->getMock('Zend\\ServiceManager\\ServiceLocatorInterface'); - $adapter = $this->getMock('Zend\\Db\\Adapter\\Adapter', array(), array(), '', false); - $userService = $this->getMock('ZfcUser\\Service\\User'); - - $serviceLocator - ->expects($this->any()) - ->method('get') - ->with($this->logicalOr('zfcuser_zend_db_adapter', 'zfcuser_user_service', 'BjyAuthorize\\Config')) - ->will( - $this->returnCallback( - function ($serviceName) use ($adapter, $userService) { - if ('zfcuser_zend_db_adapter' === $serviceName) { - return $adapter; - } - - if ('zfcuser_user_service' === $serviceName) { - return $userService; - } - - return array('default_role' => 'test_role'); - } - ) - ); - - $provider = $factory->createService($serviceLocator); - - $this->assertInstanceOf('BjyAuthorize\\Provider\\Identity\\ZfcUserZendDb', $provider); - $this->assertSame('test_role', $provider->getDefaultRole()); - } -} From 928c9429b36042f2d38144290dcc728f04797af5 Mon Sep 17 00:00:00 2001 From: Simone Castellaneta Date: Sat, 7 Sep 2013 01:43:53 +0200 Subject: [PATCH 09/19] Fixes as requested --- config/module.config.php | 2 +- .../Provider/Identity/ZfcUserZendDb.php | 23 +++---- src/BjyAuthorize/Provider/Role/ZendDb.php | 2 +- .../Service/UserRoleServiceFactory.php | 10 +-- .../Provider/Identity/ZfcUserZendDbTest.php | 2 +- .../Provider/Role/ZendDbTest.php | 62 ++++++++++--------- 6 files changed, 53 insertions(+), 48 deletions(-) diff --git a/config/module.config.php b/config/module.config.php index a2264ff..117e718 100644 --- a/config/module.config.php +++ b/config/module.config.php @@ -79,7 +79,7 @@ => 'BjyAuthorize\Service\ZfcUserZendDbIdentityProviderServiceFactory', 'BjyAuthorize\View\UnauthorizedStrategy' => 'BjyAuthorize\Service\UnauthorizedStrategyServiceFactory', - 'role_table_gateway' => 'BjyAuthorize\Service\UserRoleServiceFactory', + 'BjyAuthorize\Service\RoleDbTableGateway' => 'BjyAuthorize\Service\UserRoleServiceFactory', ), 'invokables' => array( 'BjyAuthorize\View\RedirectionStrategy' => 'BjyAuthorize\View\RedirectionStrategy', diff --git a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php index 144335f..87f2f09 100644 --- a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php +++ b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php @@ -39,10 +39,10 @@ class ZfcUserZendDb implements ProviderInterface */ protected $tableName = 'user_role_linker'; - /** - * @var Zend\Db\TableGateway\TableGateway - */ - protected $tableGateway; + /** + * @var Zend\Db\TableGateway\TableGateway + */ + private $tableGateway; /** * @param \Zend\Db\Adapter\Adapter $adapter @@ -67,19 +67,20 @@ public function getIdentityRoles() // get roles associated with the logged in user $sql = new Select(); - $sql->from($this->tableName); - $sql->join('user_role', 'user_role.id = ' . $this->tableName . '.role_id'); - $sql->where(array('user_id' => $authService->getIdentity()->getId())); - $results = $this->tableGateway->selectWith($sql); + + $sql->from($this->tableName); + $sql->join('user_role', 'user_role.id = ' . $this->tableName . '.role_id'); + $sql->where(array('user_id' => $authService->getIdentity()->getId())); + + $results = $this->tableGateway->selectWith($sql); $roles = array(); - foreach ($results as $i) { - $roles[] = $i['role_id']; + foreach ($results as $role) { + $roles[] = $role['role_id']; } return $roles; - } /** diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index eb7a782..6f6227c 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -85,7 +85,7 @@ public function __construct($options, ServiceLocatorInterface $serviceLocator) public function getRoles() { /* @var $tableGateway \Zend\Db\TableGateway\TableGateway */ - $tableGateway = $this->serviceLocator->get('role_table_gateway'); + $tableGateway = $this->serviceLocator->get('BjyAuthorize\Service\RoleDbTableGateway'); $sql = new Select(); $sql->from($this->tableName); diff --git a/src/BjyAuthorize/Service/UserRoleServiceFactory.php b/src/BjyAuthorize/Service/UserRoleServiceFactory.php index 4a2de58..9806de7 100644 --- a/src/BjyAuthorize/Service/UserRoleServiceFactory.php +++ b/src/BjyAuthorize/Service/UserRoleServiceFactory.php @@ -8,12 +8,14 @@ namespace BjyAuthorize\Service; -use Zend\ServiceManager\FactoryInterface, - Zend\ServiceManager\ServiceLocatorInterface, - Zend\Db\TableGateway\TableGateway; +use Zend\ServiceManager\FactoryInterface; +use Zend\ServiceManager\ServiceLocatorInterface; +use Zend\Db\TableGateway\TableGateway; /** - * @author Marco Pivetta + * @author Simone Castellaneta + * + * @return Zend\Db\TableGateway\TableGateway */ class UserRoleServiceFactory implements FactoryInterface { diff --git a/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php index 04e97fb..2e63a39 100644 --- a/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php @@ -31,7 +31,7 @@ class ZfcUserZendDbTest extends PHPUnit_Framework_TestCase /** * @var \Zend\Db\TableGateway\TableGateway|\PHPUnit_Framework_MockObject_MockObject */ - protected $tableGateway; + private $tableGateway; /** * @var \BjyAuthorize\Provider\Identity\ZfcUserZendDb diff --git a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php index 0e922e7..95eee02 100644 --- a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php @@ -28,6 +28,11 @@ class ZendDbTest extends PHPUnit_Framework_TestCase * @var \Zend\ServiceManager\ServiceLocatorInterface|\PHPUnit_Framework_MockObject_MockObject */ private $serviceLocator; + + /** + * @var \Zend\Db\TableGateway\TableGateway|\PHPUnit_Framework_MockObject_MockObject + */ + private $tableGateway; /** * @covers \BjyAuthorize\Provider\Role\ZendDb::__construct @@ -36,6 +41,9 @@ protected function setUp() { $this->serviceLocator = $this->getMock('Zend\ServiceManager\ServiceLocatorInterface'); $this->provider = new ZendDb(array(), $this->serviceLocator); + $this->tableGateway = $this->getMockBuilder('Zend\Db\TableGateway\TableGateway') + ->disableOriginalConstructor() + ->getMock(); } /** @@ -43,23 +51,20 @@ protected function setUp() */ public function testGetRoles() { - $tableGateway = $this->getMockBuilder('Zend\Db\TableGateway\TableGateway') - ->disableOriginalConstructor() - ->getMock(); - $tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( - array( - array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), - array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => NULL), - ) - )); + $this->tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( + array( + array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), + array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => NULL), + ) + )); - $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); - $provider = new ZendDb(array(), $this->serviceLocator); + $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); + $provider = new ZendDb(array(), $this->serviceLocator); - $this->assertEquals($provider->getRoles(), array( - new \BjyAuthorize\Acl\Role('guest'), - new \BjyAuthorize\Acl\Role('user'), - )); + $this->assertEquals($provider->getRoles(), array( + new \BjyAuthorize\Acl\Role('guest'), + new \BjyAuthorize\Acl\Role('user'), + )); } /** @@ -67,22 +72,19 @@ public function testGetRoles() */ public function testGetRolesWithInheritance() { - $tableGateway = $this->getMockBuilder('Zend\Db\TableGateway\TableGateway') - ->disableOriginalConstructor() - ->getMock(); - $tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( - array( - array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), - array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => 1), - ) - )); + $this->tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( + array( + array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), + array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => 1), + ) + )); - $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); - $provider = new ZendDb(array(), $this->serviceLocator); + $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); + $provider = new ZendDb(array(), $this->serviceLocator); - $this->assertEquals($provider->getRoles(), array( - new \BjyAuthorize\Acl\Role('guest'), - new \BjyAuthorize\Acl\Role('user', 'guest'), - )); + $this->assertEquals($provider->getRoles(), array( + new \BjyAuthorize\Acl\Role('guest'), + new \BjyAuthorize\Acl\Role('user', 'guest'), + )); } } From 544e26ffcdd6c0a13fa9800bf7d601d91f652030 Mon Sep 17 00:00:00 2001 From: Simone Castellaneta Date: Sat, 7 Sep 2013 01:48:15 +0200 Subject: [PATCH 10/19] One more fix --- src/BjyAuthorize/Service/UserRoleServiceFactory.php | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/BjyAuthorize/Service/UserRoleServiceFactory.php b/src/BjyAuthorize/Service/UserRoleServiceFactory.php index 9806de7..3dfe919 100644 --- a/src/BjyAuthorize/Service/UserRoleServiceFactory.php +++ b/src/BjyAuthorize/Service/UserRoleServiceFactory.php @@ -21,6 +21,8 @@ class UserRoleServiceFactory implements FactoryInterface { /** * {@inheritDoc} + * + * @return \Zend\Db\TableGateway\TableGateway */ public function createService(ServiceLocatorInterface $serviceLocator) { From d1c66d3d0960573897db33188cbd98d0eae01699 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 11:57:47 +0200 Subject: [PATCH 11/19] Fixing undefined variable warnings in the test suite --- tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php index 95eee02..e2d5fa2 100644 --- a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php @@ -58,7 +58,7 @@ public function testGetRoles() ) )); - $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); + $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($this->tableGateway)); $provider = new ZendDb(array(), $this->serviceLocator); $this->assertEquals($provider->getRoles(), array( @@ -79,7 +79,7 @@ public function testGetRolesWithInheritance() ) )); - $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($tableGateway)); + $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($this->tableGateway)); $provider = new ZendDb(array(), $this->serviceLocator); $this->assertEquals($provider->getRoles(), array( From 6762caf8139c18914557a8a44e679d98ed059f7e Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 12:20:24 +0200 Subject: [PATCH 12/19] Removing unused params --- src/BjyAuthorize/Provider/Role/ZendDb.php | 13 ++----------- 1 file changed, 2 insertions(+), 11 deletions(-) diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index 6f6227c..79c48d3 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -28,12 +28,7 @@ class ZendDb implements ProviderInterface /** * @var string */ - protected $adapterName = 'bjyauthorize_zend_db_adapter'; - - /** - * @var string - */ - protected $tableName = 'user_role'; + protected $tableName = 'user_role'; /** * @var string @@ -43,7 +38,7 @@ class ZendDb implements ProviderInterface /** * @var string */ - protected $roleIdFieldName = 'role_id'; + protected $roleIdFieldName = 'role_id'; /** * @var string @@ -58,10 +53,6 @@ public function __construct($options, ServiceLocatorInterface $serviceLocator) { $this->serviceLocator = $serviceLocator; - if (isset($options['adapter'])) { - $this->adapterName = $options['adapter']; - } - if (isset($options['table'])) { $this->tableName = $options['table']; } From 335e8647635fc3590d55a702747bdef512d8435f Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 12:24:45 +0200 Subject: [PATCH 13/19] Adding TODO annotation for missing configuration availability in the identity provider --- src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php | 1 + 1 file changed, 1 insertion(+) diff --git a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php index 87f2f09..5a331df 100644 --- a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php +++ b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php @@ -69,6 +69,7 @@ public function getIdentityRoles() $sql = new Select(); $sql->from($this->tableName); + // @todo these fields should eventually be configurable $sql->join('user_role', 'user_role.id = ' . $this->tableName . '.role_id'); $sql->where(array('user_id' => $authService->getIdentity()->getId())); From 16f2824df054fe6a355dfbf3269efda73bed8a81 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 12:25:33 +0200 Subject: [PATCH 14/19] Fixing unsynchronized docblock --- src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php index 5a331df..ab94f62 100644 --- a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php +++ b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php @@ -40,13 +40,13 @@ class ZfcUserZendDb implements ProviderInterface protected $tableName = 'user_role_linker'; /** - * @var Zend\Db\TableGateway\TableGateway + * @var \Zend\Db\TableGateway\TableGateway */ private $tableGateway; /** - * @param \Zend\Db\Adapter\Adapter $adapter - * @param \ZfcUser\Service\User $userService + * @param \Zend\Db\TableGateway\TableGateway $tableGateway + * @param \ZfcUser\Service\User $userService */ public function __construct(TableGateway $tableGateway, User $userService) { From 1dd70c9b4bbf77f3e76029acf1c7ee8a7e5ce93c Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 12:27:48 +0200 Subject: [PATCH 15/19] Removing unused imports, fixing docblocks sync --- src/BjyAuthorize/Guard/Controller.php | 2 -- src/BjyAuthorize/Module.php | 1 - src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php | 3 --- src/BjyAuthorize/Provider/Role/ZendDb.php | 1 - src/BjyAuthorize/Service/AuthorizeAwareServiceInitializer.php | 1 - src/BjyAuthorize/Service/UserRoleServiceFactory.php | 2 +- 6 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/BjyAuthorize/Guard/Controller.php b/src/BjyAuthorize/Guard/Controller.php index dd5a8fc..dbb87f6 100644 --- a/src/BjyAuthorize/Guard/Controller.php +++ b/src/BjyAuthorize/Guard/Controller.php @@ -15,8 +15,6 @@ use Zend\EventManager\EventManagerInterface; use Zend\Mvc\MvcEvent; use Zend\ServiceManager\ServiceLocatorInterface; -use Zend\Mvc\ApplicationInterface; -use BjyAuthorize\Service\Authorize; use Zend\Http\Request as HttpRequest; /** diff --git a/src/BjyAuthorize/Module.php b/src/BjyAuthorize/Module.php index 0df2c94..19cd944 100644 --- a/src/BjyAuthorize/Module.php +++ b/src/BjyAuthorize/Module.php @@ -14,7 +14,6 @@ use Zend\ModuleManager\Feature\ConfigProviderInterface; use Zend\ModuleManager\Feature\ControllerPluginProviderInterface; use Zend\ModuleManager\Feature\ViewHelperProviderInterface; -use Zend\Mvc\ApplicationInterface; use Zend\ServiceManager\AbstractPluginManager; /** diff --git a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php index ab94f62..df969fe 100644 --- a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php +++ b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php @@ -9,10 +9,7 @@ namespace BjyAuthorize\Provider\Identity; use BjyAuthorize\Exception\InvalidRoleException; -use Zend\Db\Adapter\Adapter; use Zend\Db\TableGateway\TableGateway; -use Zend\Db\Sql\Where; -use Zend\Db\Sql\Sql; use Zend\Db\Sql\Select; use Zend\Permissions\Acl\Role\RoleInterface; use ZfcUser\Service\User; diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index 79c48d3..caca7c2 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -9,7 +9,6 @@ namespace BjyAuthorize\Provider\Role; use BjyAuthorize\Acl\Role; -use Zend\Db\TableGateway\TableGateway; use Zend\Db\Sql\Select; use Zend\ServiceManager\ServiceLocatorInterface; diff --git a/src/BjyAuthorize/Service/AuthorizeAwareServiceInitializer.php b/src/BjyAuthorize/Service/AuthorizeAwareServiceInitializer.php index 33872ed..330d6e0 100644 --- a/src/BjyAuthorize/Service/AuthorizeAwareServiceInitializer.php +++ b/src/BjyAuthorize/Service/AuthorizeAwareServiceInitializer.php @@ -10,7 +10,6 @@ namespace BjyAuthorize\Service; -use BjyAuthorize\Service\AuthorizeAwareInterface; use Zend\ServiceManager\InitializerInterface; use Zend\ServiceManager\ServiceLocatorInterface; diff --git a/src/BjyAuthorize/Service/UserRoleServiceFactory.php b/src/BjyAuthorize/Service/UserRoleServiceFactory.php index 3dfe919..3cc7b46 100644 --- a/src/BjyAuthorize/Service/UserRoleServiceFactory.php +++ b/src/BjyAuthorize/Service/UserRoleServiceFactory.php @@ -15,7 +15,7 @@ /** * @author Simone Castellaneta * - * @return Zend\Db\TableGateway\TableGateway + * @return \Zend\Db\TableGateway\TableGateway */ class UserRoleServiceFactory implements FactoryInterface { From cad9987af0f0015bbd9e9cdc83cb79a4fb21cbd6 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 12:28:46 +0200 Subject: [PATCH 16/19] Removing unused imports, CS fixes --- tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php | 10 +++++----- tests/BjyAuthorizeTest/Service/CacheFactoryTest.php | 1 - 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php index e2d5fa2..e42804a 100644 --- a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php @@ -8,9 +8,9 @@ namespace BjyAuthorizeTest\Provider\Role; +use BjyAuthorize\Acl\Role; use BjyAuthorize\Provider\Role\ZendDb; use PHPUnit_Framework_TestCase; -use BjyAuthorize\Provider\Role\ObjectRepositoryProvider; /** * {@see \BjyAuthorize\Provider\Role\ZendDb} test @@ -62,8 +62,8 @@ public function testGetRoles() $provider = new ZendDb(array(), $this->serviceLocator); $this->assertEquals($provider->getRoles(), array( - new \BjyAuthorize\Acl\Role('guest'), - new \BjyAuthorize\Acl\Role('user'), + new Role('guest'), + new Role('user'), )); } @@ -83,8 +83,8 @@ public function testGetRolesWithInheritance() $provider = new ZendDb(array(), $this->serviceLocator); $this->assertEquals($provider->getRoles(), array( - new \BjyAuthorize\Acl\Role('guest'), - new \BjyAuthorize\Acl\Role('user', 'guest'), + new Role('guest'), + new Role('user', 'guest'), )); } } diff --git a/tests/BjyAuthorizeTest/Service/CacheFactoryTest.php b/tests/BjyAuthorizeTest/Service/CacheFactoryTest.php index f279101..461fdd2 100644 --- a/tests/BjyAuthorizeTest/Service/CacheFactoryTest.php +++ b/tests/BjyAuthorizeTest/Service/CacheFactoryTest.php @@ -10,7 +10,6 @@ use BjyAuthorize\Service\CacheFactory; use PHPUnit_Framework_TestCase; -use Zend\ServiceManager\ServiceManager; /** * PHPUnit tests for {@see \BjyAuthorize\Service\CacheFactory} From 2bcf5fa166401a3707fc5fbcd7b2f9fdb91396ea Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 13:44:17 +0200 Subject: [PATCH 17/19] CS fixes as of PHPCS --- src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php | 2 +- src/BjyAuthorize/Provider/Role/ZendDb.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php index df969fe..e870b43 100644 --- a/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php +++ b/src/BjyAuthorize/Provider/Identity/ZfcUserZendDb.php @@ -35,7 +35,7 @@ class ZfcUserZendDb implements ProviderInterface * @var string */ protected $tableName = 'user_role_linker'; - + /** * @var \Zend\Db\TableGateway\TableGateway */ diff --git a/src/BjyAuthorize/Provider/Role/ZendDb.php b/src/BjyAuthorize/Provider/Role/ZendDb.php index caca7c2..974f0d8 100644 --- a/src/BjyAuthorize/Provider/Role/ZendDb.php +++ b/src/BjyAuthorize/Provider/Role/ZendDb.php @@ -75,7 +75,7 @@ public function __construct($options, ServiceLocatorInterface $serviceLocator) public function getRoles() { /* @var $tableGateway \Zend\Db\TableGateway\TableGateway */ - $tableGateway = $this->serviceLocator->get('BjyAuthorize\Service\RoleDbTableGateway'); + $tableGateway = $this->serviceLocator->get('BjyAuthorize\Service\RoleDbTableGateway'); $sql = new Select(); $sql->from($this->tableName); From 81a479422ae228c15411ef4546c656c6d111c3ec Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 13:47:27 +0200 Subject: [PATCH 18/19] PSR-2 compliance of the test suite --- .../Provider/Identity/ZfcUserZendDbTest.php | 4 +- .../Provider/Role/ZendDbTest.php | 38 +++++++++---------- 2 files changed, 20 insertions(+), 22 deletions(-) diff --git a/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php index 2e63a39..51a0ef3 100644 --- a/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Identity/ZfcUserZendDbTest.php @@ -90,7 +90,7 @@ public function testSetGetDefaultRole() */ public function testGetIdentityRoles() { - $roles = $this->provider->getIdentityRoles(); - $this->assertEquals($roles, array(null)); + $roles = $this->provider->getIdentityRoles(); + $this->assertEquals($roles, array(null)); } } diff --git a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php index e42804a..768d542 100644 --- a/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php +++ b/tests/BjyAuthorizeTest/Provider/Role/ZendDbTest.php @@ -51,20 +51,19 @@ protected function setUp() */ public function testGetRoles() { - $this->tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( - array( - array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), - array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => NULL), + $this->tableGateway->expects($this->any())->method('selectWith')->will( + $this->returnValue( + array( + array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => null), + array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => null), + ) ) - )); + ); $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($this->tableGateway)); $provider = new ZendDb(array(), $this->serviceLocator); - - $this->assertEquals($provider->getRoles(), array( - new Role('guest'), - new Role('user'), - )); + + $this->assertEquals($provider->getRoles(), array(new Role('guest'), new Role('user'))); } /** @@ -72,19 +71,18 @@ public function testGetRoles() */ public function testGetRolesWithInheritance() { - $this->tableGateway->expects($this->any())->method('selectWith')->will($this->returnValue( - array( - array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => NULL), - array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => 1), + $this->tableGateway->expects($this->any())->method('selectWith')->will( + $this->returnValue( + array( + array('id' => 1, 'role_id' => 'guest', 'is_default' => 1, 'parent_id' => null), + array('id' => 2, 'role_id' => 'user', 'is_default' => 0, 'parent_id' => 1), + ) ) - )); + ); $this->serviceLocator->expects($this->any())->method('get')->will($this->returnValue($this->tableGateway)); $provider = new ZendDb(array(), $this->serviceLocator); - - $this->assertEquals($provider->getRoles(), array( - new Role('guest'), - new Role('user', 'guest'), - )); + + $this->assertEquals($provider->getRoles(), array(new Role('guest'), new Role('user', 'guest'))); } } From 06b169965f1c06055a04f40fb15840157b09ec17 Mon Sep 17 00:00:00 2001 From: Marco Pivetta Date: Fri, 20 Sep 2013 14:06:07 +0200 Subject: [PATCH 19/19] Removing phpcs from downloaded deps in travis builds --- .travis.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 32995b5..254136e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -9,7 +9,6 @@ php: before_script: - composer self-update - composer update --prefer-source --dev - - wget http://cs.sensiolabs.org/get/php-cs-fixer.phar script: - ./vendor/bin/phpunit --coverage-clover ./build/logs/clover.xml