CRM-12503
authorPratik Joshi <pratik.joshi@webaccess.co.in>
Tue, 7 May 2013 06:36:07 +0000 (12:06 +0530)
committerPratik Joshi <pratik.joshi@webaccess.co.in>
Tue, 7 May 2013 06:36:07 +0000 (12:06 +0530)
CRM/Campaign/Info.php
CRM/Case/Info.php
CRM/Contribute/Info.php
CRM/Core/Component/Info.php
CRM/Core/Permission.php
CRM/Event/Info.php
CRM/Grant/Info.php
CRM/Mailing/Info.php
CRM/Member/Info.php
CRM/Pledge/Info.php
CRM/Report/Info.php

index b862f32a019a42c8f052f4c36d4a9061de2ffe0f..adc019fb11fd5e38e1ce72d2e43f75da52967160 100644 (file)
@@ -53,7 +53,7 @@ class CRM_Campaign_Info extends CRM_Core_Component_Info {
 
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'administer CiviCampaign',
       'manage campaign',
index 3e73073268b6858159fd0d688c79304e22c06e51..40c8b15cb649384b966a0445672fe7d513f10683 100644 (file)
@@ -53,7 +53,7 @@ class CRM_Case_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'delete in CiviCase',
       'administer CiviCase',
index 5edfad758c18ae3903e28b4a94c66c3f87eb115c..f1e46478c3c87074afb73ae6c91e29b4fa84ca3e 100644 (file)
@@ -53,7 +53,7 @@ class CRM_Contribute_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'access CiviContribute',
       'edit contributions',
index 8d276b84dfe6c67b9aebb58779587054aef0ee7c..c53dae9a7ac9a0b238aea3dab1734e7815d13b53 100644 (file)
@@ -131,11 +131,13 @@ abstract class CRM_Core_Component_Info {
    * Needs to be implemented in component's information
    * class.
    *
+   * NOTE: if using conditionally permission return,
+   * implementation of $getAllUnconditionally is required.
    * @return array|null collection of permissions, null if none
    * @access public
    *
    */
-  abstract public function getPermissions();
+  abstract public function getPermissions($getAllUnconditionally = FALSE);
 
   /**
    * Provides information about user dashboard element
index cce8ca720053592d7a8642e803d817fce7a533dc..e27da5830faae5a18545f5765ee855a5e02b456f 100644 (file)
@@ -540,7 +540,8 @@ class CRM_Core_Permission {
     if (empty($allCompPermissions)) {
       $components = CRM_Core_Component::getComponents();
       foreach ($components as $name => $comp) {
-        $allCompPermissions[$name] = $comp->getPermissions();
+        //get all permissions of each components unconditionally
+        $allCompPermissions[$name] = $comp->getPermissions(TRUE);
       }
     }
 
index e3b595c9e3818534379063038b4d7d104a560b9c..f89ecf8cb48fb038bae72e6fa6c180cdb93f3df6 100644 (file)
@@ -52,7 +52,7 @@ class CRM_Event_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'access CiviEvent',
       'edit event participants',
index a1822e6a790f06de262f1cd5e4ab0115332a580a..a6903399c596932a898a6a653d8af2bbdc8dfb4d 100644 (file)
@@ -54,7 +54,7 @@ class CRM_Grant_Info extends CRM_Core_Component_Info {
 
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'access CiviGrant',
       'edit grants',
index db210f66822f2fa22f5e1b59514cfcdd3e693c1a..a4aaf5eda32727536c60f5a143491319778a8f63 100644 (file)
@@ -78,7 +78,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
   }
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     $permissions = array(
       'access CiviMail',
       'access CiviMail subscribe/unsubscribe pages',
@@ -86,7 +86,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
       'view public CiviMail content',
     );
 
-    if (self::workflowEnabled()) {
+    if (self::workflowEnabled() || $getAllUnconditionally) {
       $permissions[] = 'create mailings';
       $permissions[] = 'schedule mailings';
       $permissions[] = 'approve mailings';
index fe621fa4324149209c3bf5050a5fef40cef42b02..9636402638905b27ffddf7683efaf504b5d03bd1 100644 (file)
@@ -53,7 +53,7 @@ class CRM_Member_Info extends CRM_Core_Component_Info {
 
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'access CiviMember',
       'edit memberships',
index f54a3b4e7cca6fdcf25579833d9d291d7839cd52..2906464d87701fb7940efa617e80e466f169ab61 100644 (file)
@@ -53,7 +53,7 @@ class CRM_Pledge_Info extends CRM_Core_Component_Info {
 
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array(
       'access CiviPledge',
       'edit pledges',
index aa6dc4cc91ceda426c6d1393453994af603779ce..94542eb201b1dbc9fdfc7cb361009a6dd2c3b7be 100644 (file)
@@ -55,7 +55,7 @@ class CRM_Report_Info extends CRM_Core_Component_Info {
 
 
   // docs inherited from interface
-  public function getPermissions() {
+  public function getPermissions($getAllUnconditionally = FALSE) {
     return array('access CiviReport', 'access Report Criteria', 'administer reserved reports', 'administer Reports');
   }