Ignore:
Timestamp:
08/14/08 11:45:39 (16 years ago)
Author:
niltonneto
Message:

Modificações referente a opção de configurar um ldap_master
no setup do Expresso, usado somente para escrita.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/inc/class.user.inc.php

    r379 r396  
    10591059                        } 
    10601060 
     1061                        // Check if the new_uid alrteady is in use.                      
     1062                        if ( ! $this->ldap_functions->check_rename_new_uid($params['new_uid']) ) 
     1063                        { 
     1064                                $return['status'] = false; 
     1065                                $return['msg'] = 'Novo login já está em uso.'; 
     1066                                return $return; 
     1067                        } 
     1068 
    10611069                        // Verifica o acesso do gerente 
    10621070                        if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'rename_users')) 
     
    10831091                        $tmp = split('v2.', $server_resp); 
    10841092                        $cyrus_version = '2' . $tmp[1][0]; 
    1085                                 //$is_cyrus22 = strpos($server_resp, "v2.2"); 
    1086                          
    1087                     if ($cyrus_version > '21') 
     1093                         
     1094                    if ($cyrus_version < '22') 
    10881095                { 
    1089                                         // Seta senha default 
    1090                                         $user_password = $this->ldap_functions->set_user_password($uid, $defaultUserPassword); 
    1091                          
    1092                                         // Renomeia UID no openldap 
    1093                                         $result = $this->ldap_functions->rename_uid($uid, $new_uid); 
    1094                                         $new_dn = $result['new_dn']; 
    1095                                         if (!$result['status']) 
     1096                                        $return['status'] = false; 
     1097                                        $return['msg'] = "A renomeação de usuários só permitida com o cyrus versão 2.2 ou superior,"; 
     1098                                        $return['msg'] .= "\ne com a opção 'allowusermoves: yes' configurado no imapd.conf."; 
     1099                                        return $return; 
     1100                        } 
     1101 
     1102                                // Renomeia UID no openldap 
     1103                                $result = $this->ldap_functions->rename_uid($uid, $new_uid); 
     1104                                if (!$result['status']) 
     1105                                { 
     1106                                        $return['status'] = false; 
     1107                                        $return['msg'] = "Erro ao renomear usuário no LDAP. Processo abortado."; 
     1108                                        return $return; 
     1109                                } 
     1110                                 
     1111                        //Renomeia mailbox 
     1112                        $result = $this->imap_functions->rename_mailbox($uid, $new_uid); 
     1113                                if (!$result['status']) 
     1114                                { 
     1115                                        // Back user uid. 
     1116                                        $result = $this->ldap_functions->rename_uid($new_uid, $uid); 
     1117                                         
     1118                                        $return['status'] = false; 
     1119                                        $return['msg'] = "Erro ao renomear usuário no Cyrus. Processo abortado."; 
     1120                                        return $return; 
     1121                                } 
     1122                                 
     1123 
     1124                                // Seta senha default 
     1125                                $user_password = $this->ldap_functions->set_user_password($new_uid, $defaultUserPassword); 
     1126 
     1127                        // Renomeia sieve script 
     1128                        include_once('sieve-php.lib.php'); 
     1129                        $sieve=new sieve($sieve_server, $sieve_port, $new_uid, $defaultUserPassword_plain); 
     1130                                 
     1131                                if ($sieve->sieve_login()) 
     1132                                { 
     1133                                        $sieve->sieve_listscripts(); 
     1134                                        $myactivescript=$sieve->response["ACTIVE"]; 
     1135                                        $sieve->sieve_getscript($myactivescript); 
     1136 
     1137                                        $script = ''; 
     1138                                        if (!empty($sieve->response)) 
     1139                                        { 
     1140                                                foreach($sieve->response as $result) 
     1141                                                { 
     1142                                                        $script .= $result; 
     1143                                                } 
     1144                                        } 
     1145 
     1146                                $scriptname = $new_uid; 
     1147                                        if($sieve->sieve_sendscript($new_uid,$script)) 
     1148                                        { 
     1149                                                if ($sieve->sieve_setactivescript($new_uid)) 
     1150                                                { 
     1151                                                        $sieve->sieve_deletescript($myactivescript); 
     1152                                                } 
     1153                                        } 
     1154                                        else  
    10961155                                        { 
    10971156                                                $return['status'] = false; 
    1098                                                 $return['msg'] .= "\n" . $result['msg']; 
    1099                                                 $return['msg'] .= "\nErro ao renomear usuário no LDAP. Processo abortado."; 
    1100                                                 return $return; 
    1101                                         } 
    1102                          
    1103                                         // Remove old UID do ldap 
    1104                                         $user_info_mod_remove['uid'] = $uid; 
    1105                                         $this->ldap_functions->remove_user_attributes($new_dn, $user_info_mod_remove); 
    1106                          
    1107                                 //Renomeia mailbox 
    1108                         $result = $this->imap_functions->rename_mailbox($uid, $new_uid); 
    1109                                         if (!$result['status']) 
    1110                                         { 
     1157                                                $return['msg'] .= $result['msg'] . "Erro ao renomear script sieve, falha no envio do novo script." . 
     1158                                                                                                                        "\nCaixa postal e login alterados."; 
     1159                                        } 
     1160                                        $sieve->sieve_logout(); 
     1161                                } 
     1162                                else 
     1163                                { 
    11111164                                                $return['status'] = false; 
    1112                                                 $return['msg'] .= "\n" . $result['msg']; 
    1113                                                 $return['msg'] .= "\nErro ao renomear usuário no Cyrus. Processo abortado."; 
    1114                                         } 
    1115                                  
    1116                                 // Renomeia sieve script 
    1117                                 include_once('sieve-php.lib.php'); 
    1118                                 $sieve=new sieve($sieve_server, $sieve_port, $new_uid, $defaultUserPassword_plain); 
    1119                                  
    1120                                         if ($sieve->sieve_login()) 
    1121                                         { 
    1122                                                 $sieve->sieve_listscripts(); 
    1123                                                 $myactivescript=$sieve->response["ACTIVE"]; 
    1124                                                 $sieve->sieve_getscript($myactivescript); 
    1125  
    1126                                                 $script = ''; 
    1127                                                 foreach($sieve->response as $result) 
    1128                                                 { 
    1129                                                         $script .= $result; 
    1130                                                 } 
    1131  
    1132                                         $scriptname = $new_uid; 
    1133                                                 if($sieve->sieve_sendscript($new_uid,$script)) 
    1134                                                 { 
    1135                                                         if ($sieve->sieve_setactivescript($new_uid)) 
    1136                                                         { 
    1137                                                                 $sieve->sieve_deletescript($myactivescript); 
    1138                                                         } 
    1139                                                 } 
    1140                                                 else  
    1141                                                 { 
    1142                                                         $return['status'] = false; 
    1143                                                         $return['msg'] .= $result['msg'] . "\nErro ao renomear script sieve, falha no envio do novo script."; 
    1144                                                 } 
    1145                                                 $sieve->sieve_logout(); 
    1146                                         } 
    1147                                         else 
    1148                                         { 
    1149                                                         $return['status'] = false; 
    1150                                                         $return['msg'] .= $result['msg'] . "\nErro ao renomear script sieve, falha no Login."; 
    1151                                         } 
    1152  
    1153                                         // Retorna senha do usuário 
    1154                                         $this->ldap_functions->set_user_password($new_uid, $user_password); 
    1155                          
    1156                                         $this->db_functions->write_log("renomeado login do usuario $uid para $new_uid.",'','','',''); 
    1157  
    1158                                         $return['exec_return'] = ""; 
    1159                     } 
    1160                         else 
    1161                         { 
    1162                                         $return['status'] = false; 
    1163                                         $return['msg'] .= "A renomeação de usuários só permitida com o cyrus versão 2.2 ou superior,"; 
    1164                                         $return['msg'] .= "\ne com a opção 'allowusermoves: yes' configurado no imapd.conf."; 
    1165                         } 
     1165                                                $return['msg'] .= $result['msg'] . "Erro ao renomear script sieve, falha no Login." . 
     1166                                                                                                                        "\nCaixa postal e login alterados."; 
     1167                                } 
     1168 
     1169                                // Back user password. 
     1170                                $this->ldap_functions->set_user_password($new_uid, $user_password); 
     1171                 
     1172                                $this->db_functions->write_log("renomeado login do usuario $uid para $new_uid.",'','','',''); 
     1173 
     1174                                $return['exec_return'] = ""; 
     1175 
    11661176                        return $return; 
    11671177                        } 
Note: See TracChangeset for help on using the changeset viewer.