示例#1
0
 /**
  * Get the [permission_names] column value.
  * If set to self::ALL_PARTNER_PERMISSIONS_WILDCARD (*), return all permisisons relevant for the partner.
  * @var bool $filterDependencies true if should filter permissions which are set for partner but not valid due to dependencies on other permissions which are missing for the partner
  * @return     string
  */
 public function getPermissionNames($filterDependencies = false, $skipTranslateWildcard = false)
 {
     // get from DB
     $permissionNames = parent::getPermissionNames();
     $permissionNames = array_map('trim', explode(',', $permissionNames));
     $currentPartnerId = kCurrentContext::$ks_partner_id;
     if (is_null($currentPartnerId) || $currentPartnerId === '') {
         $currentPartnerId = kCurrentContext::$partner_id;
     }
     // translate * to permission names of all permissions valid for partner
     if (in_array(self::ALL_PARTNER_PERMISSIONS_WILDCARD, $permissionNames) && !$skipTranslateWildcard) {
         $permissionNames = array();
         $permissions = PermissionPeer::getAllValidForPartner($currentPartnerId, $filterDependencies);
         foreach ($permissions as $permission) {
             $permissionNames[$permission->getName()] = $permission->getName();
         }
     }
     $permissionNames = implode(',', $permissionNames);
     if ($filterDependencies) {
         $permissionNames = PermissionPeer::filterDependenciesByNames($permissionNames, $currentPartnerId);
     }
     return $permissionNames;
 }