Changeset 1349

Show
Ignore:
Timestamp:
09/14/08 23:31:35 (3 months ago)
Author:
scitech
Message:

Encrypt email password in database. Encrypt sql password in database. Fixed #1535: Wrong error text in user Email creation. Fixed #1396: Wordwrap in ticket system. Fixed #1533 Hardcoded FTP sepparator

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/CHANGELOG

    r1348 r1349  
    11ispCP ω 1.0.0 Changelog 
    22~~~~~~~~~~~~~~~~~~~~~~~~~~~ 
     32008-08-26 Daniel Andreca 
     4        - GUI: 
     5                * encript email password in database 
     6                * encript sql password in database 
     7                * Fixed #1535: Wrong error text in user Email creation 
     8                * Fixed #1396: Wordwrap in ticket system 
     9                * Fixed #1533 Hardcoded FTP sepparator 
     10 
    3112008-09-10 Daniel Andreca 
    412        - LANGUAGES: 
  • trunk/engine/ispcp-mbox-mngr

    r1333 r1349  
    18351835    my $mail_autorespond = @$mbox_data[8]; 
    18361836 
    1837  
    18381837    my $virtual_mail_dir = $main::cfg{'MTA_VIRTUAL_MAIL_DIR'}; 
    18391838 
     
    18421841    my $mbox_gid = $main::cfg{'MTA_MAILBOX_GID'}; 
    18431842 
    1844  
    18451843    my $conf_dir = $main::cfg{'CONF_DIR'}; 
    18461844 
     
    18491847    my $cmd_makeuserdb = $main::cfg{'CMD_MAKEUSERDB'}; 
    18501848 
    1851  
    18521849    my $working_dir = "$conf_dir/courier/working"; 
    18531850 
     
    18641861    my $userdb_backup_cfg = "$backup_dir/userdb.$timestamp"; 
    18651862 
     1863    if ($mail_type=~ /.*normal_mail.*/ || $mail_type=~ /.*subdom_mail.*/ || $mail_type=~ /.*alias_mail.*/){ 
     1864 
     1865        $mail_pass=decrypt_db_password($mail_pass); 
     1866 
     1867    } 
     1868 
    18661869    ($rs, $sys) = get_file($userdb_cfg); 
    18671870 
     
    19861989    my $mail_autorespond = @$mbox_data[8]; 
    19871990 
    1988  
    19891991    my $virtual_mail_dir = $main::cfg{'MTA_VIRTUAL_MAIL_DIR'}; 
    19901992 
     
    19931995    my $mbox_gid = $main::cfg{'MTA_MAILBOX_GID'}; 
    19941996 
    1995  
    19961997    my $conf_dir = $main::cfg{'CONF_DIR'}; 
    19971998 
     
    20002001    my $cmd_makeuserdb = $main::cfg{'CMD_MAKEUSERDB'}; 
    20012002 
    2002  
    20032003    my $working_dir = "$conf_dir/courier/working"; 
    20042004 
     
    20152015    my $userdb_backup_cfg = "$backup_dir/userdb.$timestamp"; 
    20162016 
     2017    if ($mail_type=~ /.*normal_mail.*/ || $mail_type=~ /.*subdom_mail.*/ || $mail_type=~ /.*alias_mail.*/){ 
     2018 
     2019        $mail_pass=decrypt_db_password($mail_pass); 
     2020 
     2021   } 
     2022 
    20172023    ($rs, $sys) = get_file($userdb_cfg); 
    20182024 
     
    21782184 
    21792185    my $check_user = undef; 
     2186 
     2187    if ($mail_type=~ /.*normal_mail.*/ || $mail_type=~ /.*subdom_mail.*/ || $mail_type=~ /.*alias_mail.*/){ 
     2188 
     2189        $mail_pass=decrypt_db_password($mail_pass); 
     2190 
     2191    } 
    21802192 
    21812193    do { 
     
    23512363 
    23522364    my $check_user = undef; 
     2365 
     2366    if ($mail_type=~ /.*normal_mail.*/ || $mail_type=~ /.*subdom_mail.*/ || $mail_type=~ /.*alias_mail.*/){ 
     2367 
     2368        $mail_pass=decrypt_db_password($mail_pass); 
     2369 
     2370    } 
    23532371 
    23542372    do { 
  • trunk/gui/admin/index.php

    r1327 r1349  
    3333$tpl->define_dynamic('update_message', 'page'); 
    3434$tpl->define_dynamic('database_update_message', 'page'); 
     35$tpl->define_dynamic('critical_update_message', 'page'); 
    3536$tpl->define_dynamic('traff_warn', 'page'); 
    3637 
     
    3839        $user_id = $_SESSION['user_id']; 
    3940 
    40         $query = <<<SQL_QUERY 
    41         select 
    42             count(ticket_id) as cnum 
    43         from 
    44             tickets 
    45         where 
    46             ticket_to = ? 
    47           and 
    48             (ticket_status = '2' or ticket_status = '5') 
    49           and 
    50             ticket_reply = 0 
    51 SQL_QUERY
     41        $query = " 
     42                SELECT 
     43                       count(`ticket_id`) as cnum 
     44                FROM 
     45                        `tickets` 
     46                WHERE 
     47                       `ticket_to` = ? 
     48                AND 
     49                       (`ticket_status` = '2' or `ticket_status` = '5') 
     50                AND 
     51                       `ticket_reply` = 0 
     52       "
    5253 
    5354        $rs = exec_query($sql, $query, array($user_id)); 
     
    113114                $tpl->assign(array('DATABASE_UPDATE_MESSAGE' => '')); 
    114115        } 
     116        if (checkNewCriticalRevisionExists()) { 
     117                executeCriticalUpdates(); 
     118                $tpl->assign(array('CRITICAL_MESSAGE' => 'Critical update has been performed')); 
     119                $tpl->parse('CRITICAL_UPDATE_MESSAGE', 'critical_update_message'); 
     120        } 
     121        else { 
     122                $tpl->assign(array('CRITICAL_UPDATE_MESSAGE' => '')); 
     123        } 
    115124} 
    116125 
    117126function gen_server_trafic(&$tpl, &$sql) { 
    118         $query = <<<SQL_QUERY 
    119         select 
    120             straff_max,straff_warn 
    121         from 
    122             straff_settings 
    123 SQL_QUERY; 
     127        $query = "SELECT `straff_max`, `straff_warn` FROM `straff_settings`"; 
    124128 
    125129        $rs = exec_query($sql, $query, array()); 
     
    131135        $ldofmnth = mktime(1, 0, 0, date("m") + 1, 0, date("Y")); 
    132136 
    133         $query = <<<SQL_QUERY 
    134         select 
    135             IFNULL((sum(bytes_in) + sum(bytes_out)), 0)  as traffic 
    136         from 
    137             server_traffic 
    138         where 
    139             traff_time > ? 
    140           and 
    141             traff_time < ? 
    142 SQL_QUERY
     137        $query = " 
     138                SELECT 
     139                       IFNULL((sum(`bytes_in`) + sum(`bytes_out`)), 0) AS traffic 
     140                FROM 
     141                        `server_traffic` 
     142                WHERE 
     143                       `traff_time` > ? 
     144                AND 
     145                       `traff_time` < ? 
     146       "
    143147 
    144148        $rs1 = exec_query($sql, $query, array($fdofmnth, $ldofmnth)); 
     
    171175 
    172176        $tpl->assign( 
    173                 array('TRAFFIC_WARNING' => $traff_msg, 
     177                array( 
     178                        'TRAFFIC_WARNING' => $traff_msg, 
    174179                        'BAR_VALUE' => $bar_value, 
    175                        
    176                ); 
     180               
     181        ); 
    177182} 
    178183 
  • trunk/gui/client/mail_add.php

    r1346 r1349  
    4040 
    4141function gen_page_form_data(&$tpl, $dmn_name, $post_check) { 
    42     $dmn_name = decode_idna($dmn_name); 
    43  
    44     if ($post_check === 'no') { 
    45  
    46         $tpl->assign(array('USERNAME' => "", 
    47                 'DOMAIN_NAME' => $dmn_name, 
    48                 'MAIL_DMN_CHECKED' => "checked=\"checked\"", 
    49                 'MAIL_ALS_CHECKED' => "", 
    50                 'MAIL_SUB_CHECKED' => "", 
    51                 'NORMAL_MAIL_CHECKED' => "checked=\"checked\"", 
    52                 'FORWARD_MAIL_CHECKED' => "", 
    53                 'FORWARD_LIST' => "")); 
    54  
    55     } else { 
    56             if (!isset($_POST['forward_list'])) { 
    57                 $f_list = ''; 
    58             } else { 
    59                 $f_list = $_POST['forward_list']; 
    60            
    61  
    62             $tpl->assign( 
     42       $dmn_name = decode_idna($dmn_name); 
     43 
     44       if ($post_check === 'no') { 
     45 
     46               $tpl->assign(array('USERNAME' => "", 
     47                               'DOMAIN_NAME' => $dmn_name, 
     48                               'MAIL_DMN_CHECKED' => "checked=\"checked\"", 
     49                               'MAIL_ALS_CHECKED' => "", 
     50                               'MAIL_SUB_CHECKED' => "", 
     51                               'NORMAL_MAIL_CHECKED' => "checked=\"checked\"", 
     52                               'FORWARD_MAIL_CHECKED' => "", 
     53                               'FORWARD_LIST' => "")); 
     54 
     55       } else { 
     56                       if (!isset($_POST['forward_list'])) { 
     57                               $f_list = ''; 
     58                       } else { 
     59                               $f_list = $_POST['forward_list']; 
     60                       
     61 
     62                       $tpl->assign( 
    6363                                        array( 
    6464                                                'USERNAME' => clean_input($_POST['username']), 
    65                             'DOMAIN_NAME' => $dmn_name, 
    66                             'MAIL_DMN_CHECKED' => ($_POST['dmn_type'] === 'dmn') ? "checked=\"checked\"" : "", 
    67                             'MAIL_ALS_CHECKED' => ($_POST['dmn_type'] === 'als') ? "checked=\"checked\"" : "", 
    68                             'MAIL_SUB_CHECKED' => ($_POST['dmn_type'] === 'sub') ? "checked=\"checked\"" : "", 
    69                             'NORMAL_MAIL_CHECKED' => (isset($_POST['mail_type_normal'])) ? "checked=\"checked\"" : "", 
    70                             'FORWARD_MAIL_CHECKED' => (isset($_POST['mail_type_forward'])) ? "checked=\"checked\"" : "", 
    71                             'FORWARD_LIST' => $f_list 
     65                                               'DOMAIN_NAME' => $dmn_name, 
     66                                               'MAIL_DMN_CHECKED' => ($_POST['dmn_type'] === 'dmn') ? "checked=\"checked\"" : "", 
     67                                               'MAIL_ALS_CHECKED' => ($_POST['dmn_type'] === 'als') ? "checked=\"checked\"" : "", 
     68                                               'MAIL_SUB_CHECKED' => ($_POST['dmn_type'] === 'sub') ? "checked=\"checked\"" : "", 
     69                                               'NORMAL_MAIL_CHECKED' => (isset($_POST['mail_type_normal'])) ? "checked=\"checked\"" : "", 
     70                                               'FORWARD_MAIL_CHECKED' => (isset($_POST['mail_type_forward'])) ? "checked=\"checked\"" : "", 
     71                                               'FORWARD_LIST' => $f_list 
    7272                                                ) 
    7373                                        ); 
    74    
     74       
    7575} 
    7676 
    7777function gen_dmn_als_list(&$tpl, &$sql, $dmn_id, $post_check) { 
    78     $ok_status = Config::get('ITEM_OK_STATUS'); 
    79  
    80     $query = <<<SQL_QUERY 
    81         SELECT 
    82           alias_id, alias_name 
    83         FROM 
    84           domain_aliasses 
    85         WHERE 
    86           domain_id = ? 
    87         AND 
    88           alias_status = ? 
    89         ORDER BY 
    90           alias_name 
    91 SQL_QUERY
    92  
    93     $rs = exec_query($sql, $query, array($dmn_id, $ok_status)); 
    94     if ($rs->RecordCount() == 0) { 
    95         $tpl->assign( 
    96                                array( 
    97                                        'ALS_ID' => '0', 
    98                         'ALS_SELECTED' => 'selected', 
    99                         'ALS_NAME' => tr('Empty list') 
    100                                        
    101                                ); 
    102         $tpl->parse('ALS_LIST', 'als_list'); 
    103         $tpl->assign('TO_ALIAS_DOMAIN', ''); 
    104         $_SESSION['alias_count'] = "no"; 
    105     } else { 
    106         $first_passed = false; 
    107         while (!$rs->EOF) { 
    108             if ($post_check === 'yes') { 
    109                 if (!isset($_POST['als_id'])) { 
    110                     $als_id = ""; 
    111                 } else { 
    112                     $als_id = $_POST['als_id']; 
    113                
    114  
    115                 if ($als_id == $rs->fields['alias_id']) { 
    116                     $als_selected = 'selected'; 
    117                 } else { 
    118                     $als_selected = ''; 
    119                
    120             } else { 
    121                 if (!$first_passed) { 
    122                     $als_selected = 'selected'; 
    123                 } else { 
    124                     $als_selected = ''; 
    125                
    126            
    127  
    128             $alias_name = decode_idna($rs->fields['alias_name']); 
    129             $tpl->assign(array('ALS_ID' => $rs->fields['alias_id'], 
    130                     'ALS_SELECTED' => $als_selected, 
    131                     'ALS_NAME' => $alias_name)); 
    132             $tpl->parse('ALS_LIST', '.als_list'); 
    133             $rs->MoveNext(); 
    134  
    135             if (!$first_passed) 
     78       $ok_status = Config::get('ITEM_OK_STATUS'); 
     79 
     80        $query = " 
     81               SELECT 
     82                        `alias_id`, `alias_name` 
     83               FROM 
     84                        `domain_aliasses` 
     85               WHERE 
     86                       `domain_id` = ? 
     87               AND 
     88                       `alias_status` = ? 
     89               ORDER BY 
     90                        `alias_name` 
     91       "
     92 
     93       $rs = exec_query($sql, $query, array($dmn_id, $ok_status)); 
     94       if ($rs->RecordCount() == 0) { 
     95               $tpl->assign( 
     96                        array( 
     97                                'ALS_ID' => '0', 
     98                               'ALS_SELECTED' => 'selected', 
     99                               'ALS_NAME' => tr('Empty list') 
     100                       
     101                ); 
     102               $tpl->parse('ALS_LIST', 'als_list'); 
     103               $tpl->assign('TO_ALIAS_DOMAIN', ''); 
     104               $_SESSION['alias_count'] = "no"; 
     105       } else { 
     106               $first_passed = false; 
     107               while (!$rs->EOF) { 
     108                       if ($post_check === 'yes') { 
     109                               if (!isset($_POST['als_id'])) { 
     110                                       $als_id = ""; 
     111                               } else { 
     112                                       $als_id = $_POST['als_id']; 
     113                               
     114 
     115                               if ($als_id == $rs->fields['alias_id']) { 
     116                                       $als_selected = 'selected'; 
     117                               } else { 
     118                                       $als_selected = ''; 
     119                               
     120                       } else { 
     121                               if (!$first_passed) { 
     122                                       $als_selected = 'selected'; 
     123                               } else { 
     124                                       $als_selected = ''; 
     125                               
     126                       
     127 
     128                       $alias_name = decode_idna($rs->fields['alias_name']); 
     129                       $tpl->assign(array('ALS_ID' => $rs->fields['alias_id'], 
     130                                       'ALS_SELECTED' => $als_selected, 
     131                                       'ALS_NAME' => $alias_name)); 
     132                       $tpl->parse('ALS_LIST', '.als_list'); 
     133                       $rs->MoveNext(); 
     134 
     135                       if (!$first_passed) 
    136136                                $first_passed = true; 
    137        
    138    
     137               
     138       
    139139} 
    140140 
    141141function gen_dmn_sub_list(&$tpl, &$sql, $dmn_id, $dmn_name, $post_check) { 
    142     $ok_status = Config::get('ITEM_OK_STATUS'); 
    143  
    144     $query = <<<SQL_QUERY 
    145         SELECT 
    146             subdomain_id as sub_id, subdomain_name as sub_name 
    147         FROM 
    148             subdomain 
    149         WHERE 
    150             domain_id = ? 
    151         AND 
    152             subdomain_status = ? 
    153         ORDER BY 
    154             subdomain_name 
    155 SQL_QUERY; 
    156  
    157     $rs = exec_query($sql, $query, array($dmn_id, $ok_status)); 
    158  
    159     if ($rs->RecordCount() == 0) { 
    160         $tpl->assign(array('SUB_ID' => '0', 
    161                 'SUB_SELECTED' => 'selected', 
    162                 'SUB_NAME' => tr('Empty list'))); 
    163         $tpl->parse('SUB_LIST', 'sub_list'); 
    164         $tpl->assign('TO_SUBDOMAIN', ''); 
    165         $_SESSION['subdomain_count'] = "no"; 
    166     } else { 
    167         $first_passed = false; 
    168  
    169         while (!$rs->EOF) { 
    170             if ($post_check === 'yes') { 
    171                 if (!isset($_POST['sub_id'])) { 
    172                     $sub_id = ""; 
    173                 } else { 
    174                     $sub_id = $_POST['sub_id']; 
    175                 } 
    176  
    177                 if ($sub_id == $rs->fields['sub_id']) { 
    178                     $sub_selected = 'selected'; 
    179                 } else { 
    180                     $sub_selected = ''; 
    181                 } 
    182             } else { 
    183                 if (!$first_passed) { 
    184                     $sub_selected = 'selected'; 
    185                 } else { 
    186                     $sub_selected = ''; 
    187                 } 
    188             } 
    189  
    190             $sub_name = decode_idna($rs->fields['sub_name']); 
    191             $dmn_name = decode_idna($dmn_name); 
    192             $tpl->assign( 
     142        $ok_status = Config::get('ITEM_OK_STATUS'); 
     143 
     144        $query = " 
     145                SELECT 
     146                        `subdomain_id` as sub_id, `subdomain_name` as sub_name 
     147                FROM 
     148                        `subdomain` 
     149                WHERE 
     150                        `domain_id` = ? 
     151                AND 
     152                        `subdomain_status` = ? 
     153                ORDER BY 
     154                        `subdomain_name` 
     155"; 
     156 
     157        $rs = exec_query($sql, $query, array($dmn_id, $ok_status)); 
     158 
     159        if ($rs->RecordCount() == 0) { 
     160                $tpl->assign( 
     161                        array( 
     162                                'SUB_ID' => '0', 
     163                                'SUB_SELECTED' => 'selected', 
     164                                'SUB_NAME' => tr('Empty list') 
     165                        ) 
     166                ); 
     167                $tpl->parse('SUB_LIST', 'sub_list'); 
     168                $tpl->assign('TO_SUBDOMAIN', ''); 
     169                $_SESSION['subdomain_count'] = "no"; 
     170        } else { 
     171                $first_passed = false; 
     172 
     173                while (!$rs->EOF) { 
     174                        if ($post_check === 'yes') { 
     175                                if (!isset($_POST['sub_id'])) { 
     176                                        $sub_id = ""; 
     177                                } else { 
     178                                        $sub_id = $_POST['sub_id']; 
     179                                } 
     180 
     181                                if ($sub_id == $rs->fields['sub_id']) { 
     182                                        $sub_selected = 'selected'; 
     183                                } else { 
     184                                        $sub_selected = ''; 
     185                                } 
     186                        } else { 
     187                                if (!$first_passed) { 
     188                                        $sub_selected = 'selected'; 
     189                                } else { 
     190                                        $sub_selected = ''; 
     191                                } 
     192                        } 
     193 
     194                        $sub_name = decode_idna($rs->fields['sub_name']); 
     195                        $dmn_name = decode_idna($dmn_name); 
     196                        $tpl->assign( 
    193197                                        array( 
    194198                                                'SUB_ID' => $rs->fields['sub_id'], 
    195                       'SUB_SELECTED' => $sub_selected, 
    196                       'SUB_NAME' => $sub_name . '.' . $dmn_name 
     199                                              'SUB_SELECTED' => $sub_selected, 
     200                                              'SUB_NAME' => $sub_name . '.' . $dmn_name 
    197201                                                ) 
    198202                                        ); 
    199             $tpl->parse('SUB_LIST', '.sub_list'); 
    200             $rs->MoveNext(); 
    201  
    202             if (!$first_passed) 
     203                       $tpl->parse('SUB_LIST', '.sub_list'); 
     204                       $rs->MoveNext(); 
     205 
     206                       if (!$first_passed) 
    203207                                $first_passed = true; 
    204        
    205    
     208               
     209       
    206210} 
    207211 
    208212function schedule_mail_account(&$sql, $domain_id, $dmn_name) { 
    209     // 20080218: added support for the mail_addr field: complete mail address in the db 
    210  
    211     // standard whithout encoding 
    212     // $mail_acc = $_POST['username']; 
    213     // lets encode the mail ??? only crazy ones encode the local_part 
    214     $mail_acc_tmp = strtolower(clean_input($_POST['username'])); 
    215     if (ispcp_check_local_part($mail_acc_tmp) == "0") { 
    216         set_page_message(tr("Invalid Mail Localpart Format used!")); 
    217         return; 
    218     } else { 
    219         $mail_acc = $mail_acc_tmp; 
    220    
    221     $mail_auto_respond = false; 
    222     $mail_auto_respond_text = ''; 
    223     $mail_addr = ''; 
    224  
    225     if ($_POST['mail_type_normal'] || $_POST['mail_type_forward']) { 
     213       // 20080218: added support for the mail_addr field: complete mail address in the db 
     214 
     215       // standard whithout encoding 
     216       // $mail_acc = $_POST['username']; 
     217       // lets encode the mail ??? only crazy ones encode the local_part 
     218       $mail_acc_tmp = strtolower(clean_input($_POST['username'])); 
     219       if (ispcp_check_local_part($mail_acc_tmp) == "0") { 
     220               set_page_message(tr("Invalid Mail Localpart Format used!")); 
     221               return; 
     222       } else { 
     223               $mail_acc = $mail_acc_tmp; 
     224       
     225       $mail_auto_respond = false; 
     226       $mail_auto_respond_text = ''; 
     227       $mail_addr = ''; 
     228 
     229       if ($_POST['mail_type_normal'] || $_POST['mail_type_forward']) { 
    226230                if ($_POST['mail_type_normal']) { 
    227231                        if ($_POST['dmn_type'] === 'dmn') { 
     
    237241                                $sub_id = $_POST['sub_id']; 
    238242                                // search the complete address 
    239                                 $query = <<<SQL_QUERY 
     243                                $query = " 
    240244                                        SELECT 
    241245                                                `subdomain_name` 
     
    244248                                        WHERE 
    245249                                                `subdomain_id` = ? 
    246 SQL_QUERY
    247                     $rs = exec_query($sql, $query, array($sub_id)); 
    248                     $mail_addr = $mail_acc.'@'.decode_idna($rs->fields['subdomain_name']).'.'.$dmn_name; // the complete address 
    249                 } else if ($_POST['dmn_type'] === 'als') { 
     250                               "
     251                       $rs = exec_query($sql, $query, array($sub_id)); 
     252                       $mail_addr = $mail_acc.'@'.decode_idna($rs->fields['subdomain_name']).'.'.$dmn_name; // the complete address 
     253                       } else if ($_POST['dmn_type'] === 'als') { 
    250254                                $mail_pass = $_POST['pass']; 
    251255                                $mail_forward = '_no_'; 
     
    253257                                $sub_id = $_POST['als_id']; 
    254258                                // search the complete address 
    255                                 $query = <<<SQL_QUERY 
     259                                $query = " 
    256260                                        SELECT 
    257261                                                `alias_name` 
     
    260264                                        WHERE 
    261265                                                `alias_id` = ? 
    262 SQL_QUERY
     266                               "
    263267                                $rs = exec_query($sql, $query, array($sub_id)); 
    264268                                $mail_addr = $mail_acc.'@'.decode_idna($rs->fields['alias_name']); // the complete address 
     
    304308                                $mail_accs[] = $value; 
    305309                        } 
    306                      $mail_forward = implode(',', $mail_accs); 
     310                      $mail_forward = implode(',', $mail_accs); 
    307311                } 
    308312 
     
    310314                list($dmn_type, $type) = split('_', $mail_type, 2); 
    311315 
    312                 $check_acc_query = <<<SQL_QUERY 
     316                $check_acc_query = " 
    313317                        SELECT 
    314318                                COUNT(mail_id) AS cnt 
     
    323327                                AND 
    324328                                LEFT (`mail_type`, LOCATE('_', `mail_type`)-1) = ? 
    325 SQL_QUERY; 
    326  
    327         $rs = exec_query($sql, $check_acc_query, array($mail_acc, $domain_id, $sub_id, $dmn_type)); 
    328     } 
    329  
    330     if ($rs->fields['cnt'] > 0) { 
    331         set_page_message(tr('Mail account already exists!')); 
    332         return false; 
    333     } 
    334  
    335     check_for_lock_file(); 
    336  
    337     $query = <<<SQL_QUERY 
    338         INSERT INTO mail_users 
    339             (mail_acc, 
    340              mail_pass, 
    341              mail_forward, 
    342              domain_id, 
    343              mail_type, 
    344              sub_id, 
    345              status, 
    346              mail_auto_respond, 
    347              mail_auto_respond_text, 
    348              mail_addr) 
    349         VALUES 
    350             (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
    351 SQL_QUERY; 
    352  
    353     $rs = exec_query($sql, $query, array($mail_acc, 
    354             $mail_pass, 
    355             $mail_forward, 
    356             $domain_id, 
    357             $mail_type, 
    358             $sub_id, 
    359             Config::get('ITEM_ADD_STATUS'), 
    360             $mail_auto_respond, 
    361             $mail_auto_respond_text, 
    362             $mail_addr)); 
    363  
    364     write_log($_SESSION['user_logged'] . ": adds new mail account: " . (isset($mail_addr) ? $mail_addr : $mail_acc)); 
    365     set_page_message(tr('Mail account scheduled for addition!')); 
    366     send_request(); 
    367     header("Location: mail_accounts.php"); 
    368     exit(0); 
     329                "; 
     330 
     331                $rs = exec_query($sql, $check_acc_query, array($mail_acc, $domain_id, $sub_id, $dmn_type)); 
     332        } 
     333 
     334        if ($rs->fields['cnt'] > 0) { 
     335                set_page_message(tr('Mail account already exists!')); 
     336                return false; 
     337        } 
     338 
     339        if (preg_match("/^normal_mail/",$mail_type)||preg_match("/^alias_mail/",$mail_type)||preg_match("/^subdom_mail/",$mail_type)){ 
     340                $mail_pass=encrypt_db_password($mail_pass); 
     341        } 
     342 
     343        check_for_lock_file(); 
     344 
     345        $query = " 
     346                INSERT INTO mail_users ( 
     347                        mail_acc, 
     348                        mail_pass, 
     349                        mail_forward, 
     350                        domain_id, 
     351                        mail_type, 
     352                        sub_id, 
     353                        status, 
     354                        mail_auto_respond, 
     355                        mail_auto_respond_text, 
     356                        mail_addr 
     357                ) VALUES 
     358                        (?, ?, ?, ?, ?, ?, ?, ?, ?, ?) 
     359        "; 
     360 
     361        $rs = exec_query($sql, $query, array($mail_acc, 
     362                        $mail_pass, 
     363                        $mail_forward, 
     364                        $domain_id, 
     365                        $mail_type, 
     366                        $sub_id, 
     367                        Config::get('ITEM_ADD_STATUS'), 
     368                        $mail_auto_respond, 
     369                        $mail_auto_respond_text, 
     370                        $mail_addr)); 
     371 
     372        write_log($_SESSION['user_logged'] . ": adds new mail account: " . (isset($mail_addr) ? $mail_addr : $mail_acc)); 
     373        set_page_message(tr('Mail account scheduled for addition!')); 
     374        send_request(); 
     375        header("Location: mail_accounts.php"); 
     376        exit(0); 
    369377} 
    370378 
     
    379387        } 
    380388 
    381     if ($mail_type_normal) { 
    382         $pass = clean_input($_POST['pass']); 
    383         $pass_rep = clean_input($_POST['pass_rep']); 
    384    
    385  
    386     if (!isset($_POST['username']) || $_POST['username'] === '') { 
    387         set_page_message(tr('Please enter mail account username!')); 
    388         return false; 
    389    
    390  
    391     if ($mail_type_normal) { 
    392         if (trim($pass) === '' || trim($pass_rep) === '') { 
    393             set_page_message(tr('Password data is missing!')); 
    394             return false; 
    395         } else if ($pass !== $pass_rep) { 
    396             set_page_message(tr('Entered passwords differ!')); 
    397             return false; 
    398         } else if (!chk_password($pass, 50, "/[`\xb4'\"\\\\\x01-\x1f\015\012|<>^$]/i")) { 
    399               // Not permitted chars 
    400             set_page_message(tr('Password data is shorter than %s signs or includes not permitted signs!', Config::get('PASSWD_CHARS'))); 
    401             return false; 
    402        
    403    
    404  
    405     if ($_POST['dmn_type'] === 'sub' && !isset($_POST['sub_id'])) { 
    406         set_page_message(tr('Subdomain list is empty! You cannot add mail accounts!')); 
    407         return false; 
    408    
    409  
    410     if ($_POST['dmn_type'] === 'als' && !isset($_POST['als_id'])) { 
    411         set_page_message(tr('Alias list is empty! You cannot add mail accounts!')); 
    412         return false; 
    413    
    414  
    415     if ($mail_type_forward && empty($_POST['forward_list'])) { 
    416         set_page_message(tr('Forward list is empty!')); 
    417         return false; 
    418    
    419  
    420     schedule_mail_account($sql, $dmn_id, $dmn_name); 
     389       if ($mail_type_normal) { 
     390               $pass = clean_input($_POST['pass']); 
     391               $pass_rep = clean_input($_POST['pass_rep']); 
     392       
     393 
     394       if (!isset($_POST['username']) || $_POST['username'] === '') { 
     395               set_page_message(tr('Please enter mail account username!')); 
     396               return false; 
     397       
     398 
     399       if ($mail_type_normal) { 
     400               if (trim($pass) === '' || trim($pass_rep) === '') { 
     401                       set_page_message(tr('Password data is missing!')); 
     402                       return false; 
     403               } else if ($pass !== $pass_rep) { 
     404                       set_page_message(tr('Entered passwords differ!')); 
     405                       return false; 
     406               } else if (!chk_password($pass, 50, "/[`\xb4'\"\\\\\x01-\x1f\015\012|<>^$]/i")) { 
     407                      // Not permitted chars 
     408                       set_page_message(tr('Password data is shorter than %s signs or includes not permitted signs!', Config::get('PASSWD_CHARS'))); 
     409                       return false; 
     410               
     411       
     412 
     413       if ($_POST['dmn_type'] === 'sub' && !isset($_POST['sub_id'])) { 
     414               set_page_message(tr('Subdomain list is empty! You cannot add mail accounts!')); 
     415               return false; 
     416       
     417 
     418       if ($_POST['dmn_type'] === 'als' && !isset($_POST['als_id'])) { 
     419               set_page_message(tr('Alias list is empty! You cannot add mail accounts!')); 
     420               return false; 
     421       
     422 
     423       if ($mail_type_forward && empty($_POST['forward_list'])) { 
     424               set_page_message(tr('Forward list is empty!')); 
     425               return false; 
     426       
     427 
     428       schedule_mail_account($sql, $dmn_id, $dmn_name); 
    421429} 
    422430 
    423431function gen_page_mail_acc_props(&$tpl, &$sql, $user_id) { 
    424     list($dmn_id, 
    425         $dmn_name, 
    426         $dmn_gid, 
    427         $dmn_uid, 
    428         $dmn_created_id, 
    429         $dmn_created, 
    430         $dmn_last_modified, 
    431         $dmn_mailacc_limit, 
    432         $dmn_ftpacc_limit, 
    433         $dmn_traff_limit, 
    434         $dmn_sqld_limit, 
    435         $dmn_sqlu_limit, 
    436         $dmn_status, 
    437         $dmn_als_limit, 
    438         $dmn_subd_limit, 
    439         $dmn_ip_id, 
    440         $dmn_disk_limit, 
    441         $dmn_disk_usage, 
    442         $dmn_php, 
    443         $dmn_cgi) = get_domain_default_props($sql, $user_id); 
    444  
    445     list($mail_acc_cnt, 
    446         $dmn_mail_acc_cnt, 
    447         $sub_mail_acc_cnt, 
    448         $als_mail_acc_cnt) = get_domain_running_mail_acc_cnt($sql, $dmn_id); 
    449  
    450     if ($dmn_mailacc_limit != 0 && $mail_acc_cnt >= $dmn_mailacc_limit) { 
    451         set_page_message(tr('Mail accounts limit reached!')); 
    452         header("Location: mail_accounts.php"); 
    453         die(); 
    454     } else { 
    455         if (!isset($_POST['uaction'])) { 
    456             gen_page_form_data($tpl, $dmn_name, 'no'); 
    457             gen_dmn_als_list($tpl, $sql, $dmn_id, 'no'); 
    458             gen_dmn_sub_list($tpl, $sql, $dmn_id, $dmn_name, 'no'); 
    459             gen_page_js($tpl); 
    460         } else if (isset($_POST['uaction']) && $_POST['uaction'] === 'add_user') { 
    461             gen_page_form_data($tpl, $dmn_name, 'yes'); 
    462             gen_dmn_als_list($tpl, $sql, $dmn_id, 'yes'); 
    463             gen_dmn_sub_list($tpl, $sql, $dmn_id, $dmn_name, 'yes'); 
    464             check_mail_acc_data($sql, $dmn_id, $dmn_name); 
    465        
    466    
     432       list($dmn_id, 
     433               $dmn_name, 
     434               $dmn_gid, 
     435               $dmn_uid, 
     436            &nbs