Changeset ec01712 in github


Ignore:
Timestamp:
Oct 24, 2008 3:57:21 AM (5 years ago)
Author:
alecpl <alec@…>
Branches:
master, HEAD, courier-fix, dev-browser-capabilities, pdo, release-0.6, release-0.7, release-0.8
Children:
ccd0486
Parents:
d1a8d0f
Message:
  • Added option 'identities_level', removed 'multiple_identities'
  • Allow deleting identities when multiple_identities=false (#1485435)
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • CHANGELOG

    r06343d1 rec01712  
    11CHANGELOG RoundCube Webmail 
    22--------------------------- 
     3 
     42008/10/24 (alec) 
     5---------- 
     6- Added option 'identities_level', removed 'multiple_identities' 
     7- Allow deleting identities when multiple_identities=false (#1485435) 
    38 
    492008/10/22 (alec) 
  • config/main.inc.php.dist

    rd1a8d0f rec01712  
    286286$rcmail_config['dont_override'] = array(); 
    287287 
    288 // allow users to add and delete sender identities 
    289 $rcmail_config['multiple_identities'] = true; 
     288// Set identities access level: 
     289// 0 - many identities with possibility to edit all params 
     290// 1 - many identities with possibility to edit all params but not email address 
     291// 2 - one identity with possibility to edit all params 
     292// 3 - one identity with possibility to edit all params but not email address 
     293$rcmail_config['identities_level'] = 0; 
    290294 
    291295// try to load host-specific configuration 
  • installer/config.php

    r871ca9a rec01712  
    123123</dd> 
    124124 
     125<dt class="propname">identities_level</dt> 
     126<dd> 
     127<?php 
     128 
     129$input_ilevel = new html_select(array('name' => '_identities_level', 'id' => "cfgidentitieslevel")); 
     130$input_ilevel->add('many identities with possibility to edit all params', 0); 
     131$input_ilevel->add('many identities with possibility to edit all params but not email address', 1); 
     132$input_ilevel->add('one identity with possibility to edit all params', 2); 
     133$input_ilevel->add('one identity with possibility to edit all params but not email address', 3); 
     134echo $input_ilevel->show($RCI->getprop('identities_level'), 0); 
     135 
     136?> 
     137<div>Level of identities access</div> 
     138<p class="hint">Defines what users can do with their identities.</p> 
     139</dd> 
     140 
    125141</dl> 
    126142</fieldset> 
  • program/include/rcmail.php

    re80f502 rec01712  
    434434    // lowercase username if it's an e-mail address (#1484473) 
    435435    if (strpos($username, '@')) 
    436       $username = strtolower($username); 
     436      $username = rc_strtolower($username); 
    437437 
    438438    // user already registered -> overwrite username 
  • program/js/app.js

    r06343d1 rec01712  
    289289         
    290290        if (this.env.action=='identities' || this.env.action=='edit-identity' || this.env.action=='add-identity') { 
    291           this.enable_command('add', 'delete', this.env.multiple_identities); 
    292           this.enable_command('edit', true); 
     291          this.enable_command('add', this.env.identities_level < 2); 
     292          this.enable_command('delete', 'edit', true); 
    293293        } 
    294294 
  • program/steps/settings/edit_identity.inc

    r106d057 rec01712  
    2020*/ 
    2121 
    22 $OUTPUT->set_pagetitle(rcube_label('identities')); 
     22define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0))); 
    2323 
     24// edit-identity 
    2425if (($_GET['_iid'] || $_POST['_iid']) && $RCMAIL->action=='edit-identity') { 
    2526  $IDENTITY_RECORD = $USER->get_identity(get_input_value('_iid', RCUBE_INPUT_GPC)); 
     
    2829    $OUTPUT->set_env('iid', $IDENTITY_RECORD['identity_id']); 
    2930} 
    30 else if (!$RCMAIL->config->get('multiple_identities', true)) { 
    31   $OUTPUT->show_message('opnotpermitted', 'error'); 
    32   // go to identities page 
    33   rcmail_overwrite_action('identities'); 
    34   return; 
     31// add-identity 
     32else { 
     33  if (IDENTITIES_LEVEL > 1) { 
     34    $OUTPUT->show_message('opnotpermitted', 'error'); 
     35    // go to identities page 
     36    rcmail_overwrite_action('identities'); 
     37    return; 
     38  } 
     39  else if (IDENTITIES_LEVEL == 1) 
     40    $IDENTITY_RECORD['email'] = rcmail_get_email(); 
    3541} 
    36  
    37 $OUTPUT->include_script('list.js'); 
    3842 
    3943 
     
    8690                       'standard'     => array('type' => 'checkbox', 'label' => 'setdefault')); 
    8791 
    88  
     92  // disable some field according to access level 
     93  if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) { 
     94    $a_show_cols['email']['disabled'] = true; 
     95    $a_show_cols['email']['class'] = 'disabled'; 
     96  } 
     97   
    8998  // a specific part is requested 
    9099  if ($attrib['part']) 
     
    132141  } 
    133142 
     143$OUTPUT->include_script('list.js'); 
    134144$OUTPUT->add_handler('identityform', 'rcube_identity_form'); 
     145$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); 
    135146 
    136147$OUTPUT->set_pagetitle(rcube_label(($RCMAIL->action=='add-identity' ? 'newidentity' : 'edititem'))); 
     
    140151 
    141152$OUTPUT->send('editidentity'); 
     153 
    142154?> 
  • program/steps/settings/func.inc

    r06343d1 rec01712  
    402402  } 
    403403 
    404 $OUTPUT->set_env('multiple_identities', $RCMAIL->config->get('multiple_identities', true)); 
     404 
     405function rcmail_get_email() 
     406  { 
     407  global $RCMAIL; 
     408   
     409  if (strpos($RCMAIL->user->data['username'], '@')) 
     410    return $RCMAIL->user->data['username']; 
     411  else { 
     412    if ($RCMAIL->config->get('virtuser_file')) 
     413      $user_email = rcube_user::user2email($RCMAIL->user->data['username']); 
     414 
     415    if ($user_email == '') 
     416      $user_email = sprintf('%s@%s', $RCMAIL->user->data['username'],  
     417            $RCMAIL->config->mail_domain($_SESSION['imap_host'])); 
     418 
     419    return $user_email; 
     420    }                  
     421  } 
    405422 
    406423// register UI objects 
  • program/steps/settings/identities.inc

    r95fcc33 rec01712  
    1919 
    2020*/ 
     21 
     22define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0))); 
    2123 
    2224$OUTPUT->set_pagetitle(rcube_label('identities')); 
     
    4143 
    4244$OUTPUT->add_handler('identityframe', 'rcmail_identity_frame'); 
     45$OUTPUT->set_env('identities_level', IDENTITIES_LEVEL); 
    4346 
    4447$OUTPUT->send('identities'); 
  • program/steps/settings/save_identity.inc

    r407dcf9 rec01712  
    2020*/ 
    2121 
     22define('IDENTITIES_LEVEL', intval($RCMAIL->config->get('identities_level', 0))); 
     23 
    2224$a_save_cols = array('name', 'email', 'organization', 'reply-to', 'bcc', 'standard', 'signature', 'html_signature'); 
    2325$a_html_cols = array('signature'); 
     
    2628 
    2729// check input 
    28 if (empty($_POST['_name']) || empty($_POST['_email'])) 
     30if (empty($_POST['_name']) || (empty($_POST['_email']) && IDENTITIES_LEVEL != 1 && IDENTITIES_LEVEL != 3)) 
    2931  { 
    3032  $OUTPUT->show_message('formincomplete', 'warning'); 
     
    5052    $save_data[$col] = 0; 
    5153} 
     54 
     55// unset email address if user has no rights to change it 
     56if (IDENTITIES_LEVEL == 1 || IDENTITIES_LEVEL == 3) 
     57  unset($save_data['email']); 
    5258 
    5359 
     
    7884 
    7985// insert a new identity record 
    80 else if ($RCMAIL->config->get('multiple_identities', true)) 
     86else if (IDENTITIES_LEVEL < 2) 
    8187{ 
    82   if ($insert_id = $USER->insert_identity($save_data)) 
     88  if (IDENTITIES_LEVEL == 1) 
     89    $save_data['email'] = rcmail_get_email(); 
     90 
     91  if ($save_data['email'] && ($insert_id = $USER->insert_identity($save_data))) 
    8392  { 
    8493    $OUTPUT->show_message('successfullysaved', 'confirmation'); 
  • skins/default/settings.css

    ref925ffe rec01712  
    160160  text-align: right; 
    161161  padding-right: 10px; 
     162} 
     163 
     164input.disabled 
     165{ 
     166  color: #999999; 
    162167} 
    163168 
  • skins/default/templates/editidentity.html

    r5f660cd rec01712  
    1818 
    1919<p id="listbuttons"> 
    20 <roundcube:button command="add" type="input" label="newidentity" class="button" condition="config:multiple_identities:true" /> 
     20<roundcube:button command="add" type="input" label="newidentity" class="button" condition="config:identities_level:0<2" /> 
    2121</p> 
    2222 
     
    2828 
    2929<p><br /> 
    30 <roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'&&config:multiple_identities:true" style="margin-right:0.5em" /> 
     30<roundcube:button command="delete" type="input" class="button" label="delete" condition="env:action=='edit-identity'" style="margin-right:0.5em" /> 
    3131<roundcube:button command="save" type="input" class="button mainaction" label="save" /> 
    3232</p> 
  • skins/default/templates/identities.html

    r5f660cd rec01712  
    1818 
    1919<p id="listbuttons"> 
    20 <roundcube:button command="add" type="input" label="newidentity" class="button" condition="config:multiple_identities:true" /> 
     20<roundcube:button command="add" type="input" label="newidentity" class="button" condition="config:identities_level:0<2" /> 
    2121</p> 
    2222 
Note: See TracChangeset for help on using the changeset viewer.