Exemple #1
0
 /**
  * @param Entity\Role $role
  *
  * @return array
  */
 private function getPermissionsConfig(Entity\Role $role)
 {
     $permissionObjects = $this->factory->getSecurity()->getPermissionObjects();
     $translator = $this->factory->getTranslator();
     $permissionsArray = $role->getId() ? $this->factory->getEntityManager()->getRepository('MauticUserBundle:Permission')->getPermissionsByRole($role, true) : array();
     $permissions = array();
     $permissionsList = array();
     /** @var \Mautic\CoreBundle\Security\Permissions\AbstractPermissions $object */
     foreach ($permissionObjects as $object) {
         if (!is_object($object)) {
             continue;
         }
         if ($object->isEnabled()) {
             $bundle = $object->getName();
             $label = $translator->trans("mautic.{$bundle}.permissions.header");
             //convert the permission bits from the db into readable names
             $data = $object->convertBitsToPermissionNames($permissionsArray);
             //get the ratio of granted/total
             list($granted, $total) = $object->getPermissionRatio($data);
             $permissions[$bundle] = array('label' => $label, 'permissionObject' => $object, 'ratio' => array($granted, $total), 'data' => $data);
             $perms = $object->getPermissions();
             foreach ($perms as $level => $perm) {
                 $levelPerms = array_keys($perm);
                 $object->parseForJavascript($levelPerms);
                 $permissionsList[$bundle][$level] = $levelPerms;
             }
         }
     }
     //order permissions by label
     uasort($permissions, function ($a, $b) {
         return strnatcmp($a['label'], $b['label']);
     });
     return array('config' => $permissions, 'list' => $permissionsList);
 }
 /**
  * {@inheritDoc}
  */
 public function getId()
 {
     if ($this->__isInitialized__ === false) {
         return (int) parent::getId();
     }
     $this->__initializer__ && $this->__initializer__->__invoke($this, 'getId', array());
     return parent::getId();
 }