Skip to content

Commit

Permalink
Merge pull request #5525 from agh1/perm-desc-2
Browse files Browse the repository at this point in the history
CRM-16201 Descriptions and translation for permissions
  • Loading branch information
davecivicrm committed Mar 31, 2015
2 parents e5b4306 + 1a605e0 commit 0f2fba8
Show file tree
Hide file tree
Showing 14 changed files with 530 additions and 146 deletions.
15 changes: 13 additions & 2 deletions CRM/ACL/Form/WordPress/Permissions.php
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,7 @@ public function buildQuickForm() {

// Get the core permissions array
$permissionsArray = self::getPermissionArray();
$permissionsDesc = self::getPermissionArray(TRUE);

// Get the wordpress roles, default capabilities and assign to the form
// TODO: Create a new wordpress role (Anonymous user) and define capabilities in Wordpress Access Control
Expand Down Expand Up @@ -81,6 +82,13 @@ public function buildQuickForm() {

$this->setDefaults($defaults);

$descArray = array();
foreach ($permissionsDesc as $perm => $attr) {
if (count($attr) > 1) {
$descArray[$perm] = $attr[1];
}
}
$this->assign('permDesc', $descArray);
$this->assign('rolePerms', $rolePerms);
$this->assign('roles', $roles);

Expand Down Expand Up @@ -173,13 +181,16 @@ public function postProcess() {
* This function should be shared from a similar one in
* distmaker/utils/joomlaxml.php
*
* @param bool $descriptions
* Whether to return permission descriptions
*
* @return array
* civicrm permissions
*/
public static function getPermissionArray() {
public static function getPermissionArray($descriptions = FALSE) {
global $civicrm_root;

$permissions = CRM_Core_Permission::basicPermissions();
$permissions = CRM_Core_Permission::basicPermissions(FALSE, $descriptions);

$perms_array = array();
foreach ($permissions as $perm => $title) {
Expand Down
48 changes: 39 additions & 9 deletions CRM/Campaign/Info.php
Original file line number Diff line number Diff line change
Expand Up @@ -60,19 +60,49 @@ public function getInfo() {
/**
* @inheritDoc
* @param bool $getAllUnconditionally
* @param bool $descriptions
* Whether to return permission descriptions
*
* @return array
*/
public function getPermissions($getAllUnconditionally = FALSE) {
return array(
'administer CiviCampaign',
'manage campaign',
'reserve campaign contacts',
'release campaign contacts',
'interview campaign contacts',
'gotv campaign contacts',
'sign CiviCRM Petition',
public function getPermissions($getAllUnconditionally = FALSE, $descriptions = FALSE) {
$permissions = array(
'administer CiviCampaign' => array(
ts('administer CiviCampaign'),
ts('Create new campaign, survey and petition types and their status'),
),
'manage campaign' => array(
ts('manage campaign'),
ts('Create new campaigns, surveys and petitions, reserve respondents'),
),
'reserve campaign contacts' => array(
ts('reserve campaign contacts'),
ts('Reserve campaign contacts for surveys and petitions'),
),
'release campaign contacts' => array(
ts('release campaign contacts'),
ts('Release reserved campaign contacts for surveys and petitions'),
),
'interview campaign contacts' => array(
ts('interview campaign contacts'),
ts('Record survey and petition responses from their reserved contacts'),
),
'gotv campaign contacts' => array(
ts('GOTV campaign contacts'),
ts('Record that contacts voted'),
),
'sign CiviCRM Petition' => array(
ts('sign CiviCRM Petition'),
),
);

if (!$descriptions) {
foreach ($permissions as $name => $attr) {
$permissions[$name] = array_shift($attr);
}
}

return $permissions;
}


Expand Down
35 changes: 28 additions & 7 deletions CRM/Case/Info.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,17 +94,38 @@ public function getManagedEntities() {
/**
* @inheritDoc
* @param bool $getAllUnconditionally
* @param bool $descriptions
* Whether to return permission descriptions
*
* @return array
*/
public function getPermissions($getAllUnconditionally = FALSE) {
return array(
'delete in CiviCase',
'administer CiviCase',
'access my cases and activities',
'access all cases and activities',
'add cases',
public function getPermissions($getAllUnconditionally = FALSE, $descriptions = FALSE) {
$permissions = array(
'delete in CiviCase' => array(
ts('delete in CiviCase'),
ts('Delete Cases'),
),
'administer CiviCase' => array(
ts('administer CiviCase'),
),
'access my cases and activities' => array(
ts('access my cases and activities'),
),
'access all cases and activities' => array(
ts('access all cases and activities'),
),
'add cases' => array(
ts('add cases'),
),
);

if (!$descriptions) {
foreach ($permissions as $name => $attr) {
$permissions[$name] = array_shift($attr);
}
}

return $permissions;
}

/**
Expand Down
33 changes: 27 additions & 6 deletions CRM/Contribute/Info.php
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,8 @@ public function getInfo() {
* implementation of $getAllUnconditionally is required.
*
* @param bool $getAllUnconditionally
* @param bool $descriptions
* Whether to return permission descriptions
*
* @return array|null
* collection of permissions, null if none
Expand All @@ -84,13 +86,32 @@ public function getInfo() {
*
* @return array|null
*/
public function getPermissions($getAllUnconditionally = FALSE) {
return array(
'access CiviContribute',
'edit contributions',
'make online contributions',
'delete in CiviContribute',
public function getPermissions($getAllUnconditionally = FALSE, $descriptions = FALSE) {
$permissions = array(
'access CiviContribute' => array(
ts('access CiviContribute'),
ts('Record backend contributions (with edit contributions) and view all contributions (for visible contacts)'),
),
'edit contributions' => array(
ts('edit contributions'),
ts('Record and update contributions'),
),
'make online contributions' => array(
ts('make online contributions'),
),
'delete in CiviContribute' => array(
ts('delete in CiviContribute'),
ts('Delete contributions'),
),
);

if (!$descriptions) {
foreach ($permissions as $name => $attr) {
$permissions[$name] = array_shift($attr);
}
}

return $permissions;
}

/**
Expand Down
Loading

0 comments on commit 0f2fba8

Please sign in to comment.