/** * {@inheritdoc} */ public function getRoles() { $roles = []; foreach ($this->pool->getAdminGroups() as $name => $group) { if (!isset($group['items'])) { continue; } foreach ($group['items'] as $item) { $admin = $this->pool->getInstance($item['admin']); $baseRole = $this->securityHandler->getBaseRole($admin); $baseName = $admin->getTranslator()->trans($group['label'], [], $group['label_catalogue']) . ': ' . $admin->getTranslator()->trans($admin->getLabel()); $actions = []; foreach ($admin->getSecurityInformation() as $name => $value) { $parts = explode('.', $name); if (count($parts) < 1) { continue; } $actions[] = strtoupper($parts[count($parts) - 1]); } foreach ($actions as $action) { $roles[sprintf($baseRole, $action)] = $baseName . ': ' . $admin->getTranslator()->trans($action); } } } return array_merge($roles, $this->defaultRoles); }
public function isGranted(AdminInterface $admin, $attributes, $object = null) { $is_auth = parent::isGranted($admin, $attributes, $object); // if($is_auth) // { // $is_auth = $this->authorizationChecker->isGranted('ORGANIZE', $object); // } return $is_auth; }
public function __construct($authorizationChecker, array $superAdminRoles, SiteManager $siteManager) { parent::__construct($authorizationChecker, $superAdminRoles); $this->siteManager = $siteManager; }
/** * @dataProvider getBaseRoleTests */ public function testGetBaseRole($expected, $code) { $handler = new RoleSecurityHandler($this->securityContext, array('ROLE_BATMAN', 'ROLE_IRONMAN')); $this->admin->expects($this->once())->method('getCode')->will($this->returnValue($code)); $this->assertEquals($expected, $handler->getBaseRole($this->admin)); }