Aleksander Machniak
2012-11-29 48ef1334ff2deca06ce29a73724ea2f40c77a11c
Merge pull request #49 from linagora/master

Add new identity level: one identity with edit only signature
3 files modified
21 ■■■■■ changed files
config/main.inc.php.dist 1 ●●●● patch | view | raw | blame | history
program/steps/settings/edit_identity.inc 7 ●●●●● patch | view | raw | blame | history
program/steps/settings/save_identity.inc 13 ●●●● patch | view | raw | blame | history
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.
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
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) {