public function testGetConst()
 {
     $this->assertEquals(AccessLevel::NONE_LEVEL, AccessLevel::getConst('NONE_LEVEL'));
     $this->assertEquals(AccessLevel::BASIC_LEVEL, AccessLevel::getConst('BASIC_LEVEL'));
     $this->assertEquals(AccessLevel::LOCAL_LEVEL, AccessLevel::getConst('LOCAL_LEVEL'));
     $this->assertEquals(AccessLevel::DEEP_LEVEL, AccessLevel::getConst('DEEP_LEVEL'));
     $this->assertEquals(AccessLevel::GLOBAL_LEVEL, AccessLevel::getConst('GLOBAL_LEVEL'));
     $this->assertEquals(AccessLevel::SYSTEM_LEVEL, AccessLevel::getConst('SYSTEM_LEVEL'));
 }
 /**
  * {@inheritdoc}
  */
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     $parent = $form->getParent()->getParent()->getParent();
     $parentData = $parent->getData();
     if ($parentData instanceof AclPrivilege) {
         $view->vars['identity'] = $parentData->getIdentity()->getId();
         $view->vars['level_label'] = AccessLevel::getAccessLevelName($form->getData());
     }
 }
 /**
  * {@inheritdoc}
  */
 public function buildView(FormView $view, FormInterface $form, array $options)
 {
     $parent = $form->getParent()->getParent()->getParent();
     $parentData = $parent->getData();
     if ($parentData instanceof AclPrivilege) {
         $view->vars['identity'] = $parentData->getIdentity()->getId();
         $view->vars['level_label'] = AccessLevel::getAccessLevelName($form->getData());
     }
     //uses on view page for rendering preloaded string (role permission name)
     $view->vars['translation_prefix'] = $this->roleTranslationPrefixResolver->getPrefix();
 }
 /**
  * {@inheritdoc}
  */
 public function getAccessLevelNames()
 {
     if (!$this->hasOwner()) {
         return [AccessLevel::NONE_LEVEL => AccessLevel::NONE_LEVEL_NAME, AccessLevel::SYSTEM_LEVEL => AccessLevel::getAccessLevelName(AccessLevel::SYSTEM_LEVEL)];
     }
     if ($this->isBasicLevelOwned()) {
         $maxLevel = AccessLevel::LOCAL_LEVEL;
         $minLevel = AccessLevel::BASIC_LEVEL;
     } elseif ($this->isLocalLevelOwned()) {
         $maxLevel = AccessLevel::LOCAL_LEVEL;
         $minLevel = AccessLevel::LOCAL_LEVEL;
     } else {
         throw new \BadMethodCallException(sprintf('Owner type %s is not supported', $this->ownerType));
     }
     return AccessLevel::getAccessLevelNames($minLevel, $maxLevel);
 }
 /**
  * Gets a list of masks from permissions given in $permissions argument
  *
  * @param ArrayCollection|AclPermission[] $permissions
  * @param AclExtensionInterface $extension
  * @param MaskBuilder[] $maskBuilders
  * @return int[]
  */
 protected function getPermissionMasks($permissions, AclExtensionInterface $extension, array $maskBuilders)
 {
     $masks = array();
     foreach ($maskBuilders as $maskBuilder) {
         $maskBuilder->reset();
     }
     foreach ($permissions as $permission) {
         $maskBuilder = $maskBuilders[$permission->getName()];
         $accessLevelName = AccessLevel::getAccessLevelName($permission->getAccessLevel());
         if ($accessLevelName !== null) {
             $maskName = 'MASK_' . $permission->getName() . '_' . $accessLevelName;
             // check if a mask builder supports access levels
             if (!$maskBuilder->hasConst($maskName)) {
                 // remove access level name from the mask name if a mask builder do not support access levels
                 $maskName = 'MASK_' . $permission->getName();
             }
             $maskBuilder->add($maskBuilder->getConst($maskName));
         }
         $masks[$extension->getServiceBits($maskBuilder->get())] = $maskBuilder->get();
     }
     return array_values($masks);
 }
Example #6
0
 /**
  * {@inheritdoc}
  */
 public function getAccessLevelNames()
 {
     if (!$this->hasOwner()) {
         return [AccessLevel::NONE_LEVEL => AccessLevel::NONE_LEVEL_NAME, AccessLevel::SYSTEM_LEVEL => AccessLevel::getAccessLevelName(AccessLevel::SYSTEM_LEVEL)];
     }
     $minLevel = AccessLevel::BASIC_LEVEL;
     $maxLevel = AccessLevel::SYSTEM_LEVEL;
     if ($this->isBasicLevelOwned()) {
         $minLevel = AccessLevel::BASIC_LEVEL;
         $maxLevel = AccessLevel::GLOBAL_LEVEL;
     } elseif ($this->isLocalLevelOwned()) {
         $minLevel = AccessLevel::LOCAL_LEVEL;
         $maxLevel = AccessLevel::GLOBAL_LEVEL;
     } elseif ($this->isGlobalLevelOwned()) {
         $minLevel = AccessLevel::GLOBAL_LEVEL;
         $maxLevel = AccessLevel::GLOBAL_LEVEL;
     }
     return AccessLevel::getAccessLevelNames($minLevel, $maxLevel);
 }
Example #7
0
 /**
  * {@inheritdoc}
  */
 public function getAccessLevel($mask, $permission = null, $object = null)
 {
     if (0 === $this->removeServiceBits($mask)) {
         return AccessLevel::NONE_LEVEL;
     }
     $identity = $this->getServiceBits($mask);
     if ($permission !== null) {
         $permissionMask = $this->getMaskBuilderConst($identity, 'GROUP_' . $permission);
         $mask = $mask & $permissionMask;
     }
     $result = AccessLevel::NONE_LEVEL;
     foreach (AccessLevel::$allAccessLevelNames as $accessLevel) {
         if (0 !== ($mask & $this->getMaskBuilderConst($identity, 'GROUP_' . $accessLevel))) {
             $result = AccessLevel::getConst($accessLevel . '_LEVEL');
         }
     }
     return $this->metadataProvider->getMaxAccessLevel($result, $this->getObjectClassName($object));
 }
 /**
  * @return array
  */
 public function getAccessLevelNamesDataProvider()
 {
     return ['no owner' => ['arguments' => [], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME]], 'basic level owned' => ['arguments' => ['FRONTEND_USER', 'owner', 'owner_id'], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME, 1 => AccessLevel::getAccessLevelName(1), 2 => AccessLevel::getAccessLevelName(2)]], 'local level owned' => ['arguments' => ['FRONTEND_CUSTOMER', 'owner', 'owner_id'], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME, 2 => AccessLevel::getAccessLevelName(2)]]];
 }
 /**
  * {@inheritdoc}
  */
 public function getAccessLevelNames($object)
 {
     return array(AccessLevel::NONE_LEVEL => AccessLevel::NONE_LEVEL_NAME, AccessLevel::SYSTEM_LEVEL => AccessLevel::getAccessLevelName(AccessLevel::SYSTEM_LEVEL));
 }
 /**
  * @return array
  */
 public function getAccessLevelNamesDataProvider()
 {
     return ['no owner' => ['arguments' => [], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME, 5 => AccessLevel::getAccessLevelName(5)]], 'basic level owned' => ['arguments' => ['USER', 'owner', 'owner_id'], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME, 1 => AccessLevel::getAccessLevelName(1), 2 => AccessLevel::getAccessLevelName(2), 3 => AccessLevel::getAccessLevelName(3), 4 => AccessLevel::getAccessLevelName(4)]], 'local level owned' => ['arguments' => ['BUSINESS_UNIT', 'owner', 'owner_id'], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME, 2 => AccessLevel::getAccessLevelName(2), 3 => AccessLevel::getAccessLevelName(3), 4 => AccessLevel::getAccessLevelName(4)]], 'global level owned' => ['arguments' => ['ORGANIZATION', 'owner', 'owner_id'], 'levels' => [0 => AccessLevel::NONE_LEVEL_NAME, 4 => AccessLevel::getAccessLevelName(4)]]];
 }