/** * @param bool $all * @param bool $descriptions * whether to return descriptions * * @return array */ public static function assembleBasicPermissions($all = FALSE, $descriptions = FALSE) { $config = CRM_Core_Config::singleton(); $prefix = ts('CiviCRM') . ': '; $permissions = self::getCorePermissions($descriptions); if (self::isMultisiteEnabled()) { $permissions['administer Multiple Organizations'] = array($prefix . ts('administer Multiple Organizations')); } if (!$descriptions) { foreach ($permissions as $name => $attr) { $permissions[$name] = array_shift($attr); } } if (!$all) { $components = CRM_Core_Component::getEnabledComponents(); } else { $components = CRM_Core_Component::getComponents(); } foreach ($components as $comp) { $perm = $comp->getPermissions(FALSE, $descriptions); if ($perm) { $info = $comp->getInfo(); foreach ($perm as $p => $attr) { if (!is_array($attr)) { $attr = array($attr); } $attr[0] = $info['translatedName'] . ': ' . $attr[0]; if ($descriptions) { $permissions[$p] = $attr; } else { $permissions[$p] = $attr[0]; } } } } // Add any permissions defined in hook_civicrm_permission implementations. $module_permissions = $config->userPermissionClass->getAllModulePermissions($descriptions); $permissions = array_merge($permissions, $module_permissions); CRM_Financial_BAO_FinancialType::permissionedFinancialTypes($permissions, $descriptions); return $permissions; }
/** * Check method testPermissionedFinancialTypes() */ public function testPermissionedFinancialTypes() { // First get all core permissions $permissions = $checkPerms = CRM_Core_Permission::getCorePermissions(); $this->setACL(); CRM_Financial_BAO_FinancialType::permissionedFinancialTypes($permissions, TRUE); $financialTypes = CRM_Contribute_PseudoConstant::financialType(); $prefix = ts('CiviCRM') . ': '; $actions = array('add', 'view', 'edit', 'delete'); foreach ($financialTypes as $id => $type) { foreach ($actions as $action) { $checkPerms[$action . ' contributions of type ' . $type] = array($prefix . ts($action . ' contributions of type ') . $type, ts(ucfirst($action) . ' contributions of type ') . $type); } } $checkPerms['administer CiviCRM Financial Types'] = array($prefix . ts('administer CiviCRM Financial Types'), ts('Administer access to Financial Types')); $this->assertEquals($permissions, $checkPerms, 'Verify that permissions for each financial type have been added'); }