Merge pull request #22583 from seamuslee001/update_jquery_ui
[civicrm-core.git] / CRM / Core / Permission.php
index ca50dc4ea6783fadd125babc6eac081608191cae..256efae2084c1bd281520f1836d43cdaed5aab6a 100644 (file)
@@ -208,23 +208,24 @@ class CRM_Core_Permission {
   }
 
   /**
+   * @param int $userId
    * @return bool
    */
-  public static function customGroupAdmin() {
+  public static function customGroupAdmin($userId = NULL) {
     // check if user has all powerful permission
     // or administer civicrm permission (CRM-1905)
-    if (self::check('access all custom data')) {
+    if (self::check('access all custom data', $userId)) {
       return TRUE;
     }
 
     if (
-      self::check('administer Multiple Organizations') &&
+      self::check('administer Multiple Organizations', $userId) &&
       self::isMultisiteEnabled()
     ) {
       return TRUE;
     }
 
-    if (self::check('administer CiviCRM data')) {
+    if (self::check('administer CiviCRM data', $userId)) {
       return TRUE;
     }
 
@@ -234,21 +235,22 @@ class CRM_Core_Permission {
   /**
    * @param int $type
    * @param bool $reset
+   * @param int $userId
    *
    * @return array
    */
-  public static function customGroup($type = CRM_Core_Permission::VIEW, $reset = FALSE) {
+  public static function customGroup($type = CRM_Core_Permission::VIEW, $reset = FALSE, $userId = NULL) {
     $customGroups = CRM_Core_PseudoConstant::get('CRM_Core_DAO_CustomField', 'custom_group_id',
       ['fresh' => $reset]);
     $defaultGroups = [];
 
     // check if user has all powerful permission
     // or administer civicrm permission (CRM-1905)
-    if (self::customGroupAdmin()) {
-      $defaultGroups = array_keys($customGroups);
+    if (self::customGroupAdmin($userId)) {
+      return array_keys($customGroups);
     }
 
-    return CRM_ACL_API::group($type, NULL, 'civicrm_custom_group', $customGroups, $defaultGroups);
+    return CRM_ACL_API::group($type, $userId, 'civicrm_custom_group', $customGroups, $defaultGroups);
   }
 
   /**
@@ -839,6 +841,10 @@ class CRM_Core_Permission {
         $prefix . ts('administer payment processors'),
         ts('Add, Update, or Disable Payment Processors'),
       ],
+      'render templates' => [
+        $prefix . ts('render templates'),
+        ts('Render open-ended template content. (Additional constraints may apply to autoloaded records and specific notations.)'),
+      ],
       'edit message templates' => [
         $prefix . ts('edit message templates'),
       ],
@@ -1133,8 +1139,13 @@ class CRM_Core_Permission {
       ],
     ];
     $permissions['line_item'] = $permissions['contribution'];
+    $permissions['product'] = $permissions['contribution'];
 
     $permissions['financial_item'] = $permissions['contribution'];
+    $permissions['financial_type']['get'] = $permissions['contribution']['get'];
+    $permissions['entity_financial_account']['get'] = $permissions['contribution']['get'];
+    $permissions['financial_account']['get'] = $permissions['contribution']['get'];
+    $permissions['financial_trxn']['get'] = $permissions['contribution']['get'];
 
     // Payment permissions
     $permissions['payment'] = [