From 48ef1334ff2deca06ce29a73724ea2f40c77a11c Mon Sep 17 00:00:00 2001
From: Aleksander Machniak <alec@alec.pl>
Date: Thu, 29 Nov 2012 02:36:50 -0500
Subject: [PATCH] Merge pull request #49 from linagora/master

---
 program/steps/settings/save_identity.inc |   13 +++++++++++--
 config/main.inc.php.dist                 |    1 +
 program/steps/settings/edit_identity.inc |    7 +++++++
 3 files changed, 19 insertions(+), 2 deletions(-)

diff --git a/config/main.inc.php.dist b/config/main.inc.php.dist
index 3e7630c..4805b95 100644
--- a/config/main.inc.php.dist
+++ b/config/main.inc.php.dist
@@ -356,6 +356,7 @@
 // 1 - many identities with possibility to edit all params but not email address
 // 2 - one identity with possibility to edit all params
 // 3 - one identity with possibility to edit all params but not email address
+// 4 - one identity with possibility to edit only signature
 $rcmail_config['identities_level'] = 0;
 
 // Mimetypes supported by the browser.
diff --git a/program/steps/settings/edit_identity.inc b/program/steps/settings/edit_identity.inc
index 39076f4..d70a7ae 100644
--- a/program/steps/settings/edit_identity.inc
+++ b/program/steps/settings/edit_identity.inc
@@ -99,6 +99,13 @@
     $form['addressing']['content']['email']['class'] = 'disabled';
   }
 
+  if (IDENTITIES_LEVEL == 4) {
+    foreach($form['addressing']['content'] as $formfield => $value){
+      $form['addressing']['content'][$formfield]['disabled'] = true;
+      $form['addressing']['content'][$formfield]['class'] = 'disabled';
+    }
+  }
+
   $IDENTITY_RECORD['email'] = rcube_idn_to_utf8($IDENTITY_RECORD['email']);
 
   // Allow plugins to modify identity form content
diff --git a/program/steps/settings/save_identity.inc b/program/steps/settings/save_identity.inc
index d579ee6..88adc79 100644
--- a/program/steps/settings/save_identity.inc
+++ b/program/steps/settings/save_identity.inc
@@ -26,7 +26,7 @@
 $updated = $default_id = false;
 
 // check input
-if (empty($_POST['_name']) || (empty($_POST['_email']) && IDENTITIES_LEVEL != 1 && IDENTITIES_LEVEL != 3))
+if (IDENTITIES_LEVEL != 4 && (empty($_POST['_name']) || (empty($_POST['_email']) && IDENTITIES_LEVEL != 1 && IDENTITIES_LEVEL != 3)))
 {
   $OUTPUT->show_message('formincomplete', 'warning');
   rcmail_overwrite_action('edit-identity');
@@ -52,9 +52,18 @@
 }
 
 // unset email address if user has no rights to change it
-if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3)
+if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3 )
   unset($save_data['email']);
 
+if (IDENTITIES_LEVEL == 4 ){
+  unset($save_data['name']);
+  unset($save_data['email']);
+  unset($save_data['organization']);
+  unset($save_data['reply-to']);
+  unset($save_data['bcc']);
+  unset($save_data['standard']);
+}
+
 // Validate e-mail addresses
 $email_checks = array(rcube_idn_to_ascii($save_data['email']));
 foreach (array('reply-to', 'bcc') as $item) {

--
Gitblit v1.9.1