Merge pull request #7076 from totten/4.6-weight-sgn
[civicrm-core.git] / CRM / Mailing / Info.php
index bad9cd7a852ffd6406f0e7d2daebbb76645b8ee2..377b673678a6386b0b8eb3ca855cf54a1a6edcf7 100644 (file)
@@ -65,29 +65,39 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
    * @see CRM_Utils_Hook::angularModules
    */
   public function getAngularModules() {
+    // load angular files only if valid permissions are granted to the user
+    if (!CRM_Core_Permission::check('access CiviMail')
+      || !CRM_Core_Permission::check('create mailings')
+      || !CRM_Core_Permission::check('schedule mailings')
+      || !CRM_Core_Permission::check('approve mailings')
+    ) {
+      return array();
+    }
+
     $result = array();
     $result['crmMailing'] = array(
       'ext' => 'civicrm',
       'js' => array(
-        'js/angular-crmMailing.js',
-        'js/angular-crmMailing/*.js',
+        'ang/crmMailing.js',
+        'ang/crmMailing/*.js',
       ),
-      'css' => array('css/angular-crmMailing.css'),
-      'partials' => array('partials/crmMailing'),
+      'css' => array('ang/crmMailing.css'),
+      'partials' => array('ang/crmMailing'),
     );
     $result['crmMailingAB'] = array(
       'ext' => 'civicrm',
       'js' => array(
-        'js/angular-crmMailingAB.js',
-        'js/angular-crmMailingAB/*.js',
+        'ang/crmMailingAB.js',
+        'ang/crmMailingAB/*.js',
+        'ang/crmMailingAB/*/*.js',
       ),
-      'css' => array('css/angular-crmMailingAB.css'),
-      'partials' => array('partials/crmMailingAB'),
+      'css' => array('ang/crmMailingAB.css'),
+      'partials' => array('ang/crmMailingAB'),
     );
     $result['crmD3'] = array(
       'ext' => 'civicrm',
       'js' => array(
-        'js/angular-crmD3.js',
+        'ang/crmD3.js',
         'bower_components/d3/d3.min.js',
       ),
     );
@@ -116,6 +126,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
 
     $groupNames = civicrm_api3('Group', 'get', $params + array(
       'is_active' => 1,
+      'check_permissions' => TRUE,
       'return' => array('title', 'visibility', 'group_type', 'is_hidden'),
     ));
     $headerfooterList = civicrm_api3('MailingComponent', 'get', $params + array(
@@ -129,20 +140,19 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
       'contact_id' => $contactID,
     ));
 
-    // FIXME: Loading the contents of every template into the dom does not scale well
     $mesTemplate = civicrm_api3('MessageTemplate', 'get', $params + array(
       'sequential' => 1,
       'is_active' => 1,
-      'return' => array("msg_html", "id", "msg_title", "msg_subject", "msg_text"),
+      'return' => array("id", "msg_title"),
       'workflow_id' => array('IS NULL' => ""),
     ));
-    $mailGrp = civicrm_api3('MailingGroup', 'get', $params);
     $mailTokens = civicrm_api3('Mailing', 'gettokens', array(
       'entity' => array('contact', 'mailing'),
       'sequential' => 1,
     ));
     $fromAddress = civicrm_api3('OptionValue', 'get', $params + array(
       'option_group_id' => "from_email_address",
+      'domain_id' => CRM_Core_Config::domainID(),
     ));
     CRM_Core_Resources::singleton()
       ->addSetting(array(
@@ -153,7 +163,6 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
           'headerfooterList' => $headerfooterList['values'],
           'mesTemplate' => $mesTemplate['values'],
           'emailAdd' => $emailAdd['values'],
-          'mailGrp' => $mailGrp['values'],
           'mailTokens' => $mailTokens['values'],
           'contactid' => $contactID,
           'requiredTokens' => CRM_Utils_Token::getRequiredTokens(),
@@ -175,6 +184,7 @@ class CRM_Mailing_Info extends CRM_Core_Component_Info {
         'schedule mailings',
         'approve mailings',
         'delete in CiviMail',
+        'edit message templates',
       ));
 
     return $result;