Changeset 62 for trunk/expressoAdmin1_2/inc/class.user.inc.php
- Timestamp:
- 08/23/07 11:40:39 (17 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/expressoAdmin1_2/inc/class.user.inc.php
r57 r62 117 117 if (($this->current_config['expressoAdmin_samba_support'] == 'true') && ($params['use_attrs_samba'] == 'on')) 118 118 { 119 // Verifica o acesso do gerente aos atributos samba 120 if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_sambausers_attributes')) 121 { 122 //Verifica se o binario para criar as senhas do samba exite. 123 if (!is_file('/home/expressolivre/mkntpwd')) 124 { 125 $return['status'] = false; 126 $return['msg'] .= "O arquivo binário /home/expressolivre/mkntpwd não exite.\\nEle é necessário para a criação das senhas usadas pelo SAMBA.\\nInforme o administrador ExpressoLivre sobre isto."; 127 } 128 else 129 { 130 $user_info['objectClass'][] = 'sambaSamAccount'; 131 $user_info['loginShell'] = '/bin/bash'; 132 133 $user_info['sambaSID'] = $params['sambadomain'] . '-' . ((2 * $id)+1000); 134 $user_info['sambaPrimaryGroupSID'] = $params['sambadomain'] . '-' . ((2 * $user_info['gidNumber'])+1001); 135 136 $user_info['sambaAcctFlags'] = $params['sambaacctflags']; 137 138 $user_info['sambaLogonScript'] = $params['sambalogonscript']; 139 $user_info['homeDirectory'] = $params['sambahomedirectory']; 140 141 $user_info['sambaLMPassword'] = exec('/home/expressolivre/mkntpwd -L '.$params['password1']); 142 $user_info['sambaNTPassword'] = exec('/home/expressolivre/mkntpwd -N '.$params['password1']); 143 $user_info['sambaPasswordHistory'] = '0000000000000000000000000000000000000000000000000000000000000000'; 144 145 $user_info['sambaPwdCanChange'] = strtotime("now"); 146 $user_info['sambaPwdLastSet'] = strtotime("now"); 147 $user_info['sambaPwdMustChange'] = '2147483647'; 148 } 149 } 150 } 151 152 // Verifica o acesso do gerente aos atributos corporativos 153 if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 154 { 155 foreach ($params as $atribute=>$value) 156 { 157 $pos = strrpos($atribute, 'corporative_information_'); 158 if ($pos !== false) 159 { 160 if ($params[$atribute]) 161 { 162 $ldap_atribute = str_replace("corporative_information_", "", $atribute); 163 $user_info[$ldap_atribute] = $params[$atribute]; 164 } 165 } 166 } 167 } 168 119 //Verifica se o binario para criar as senhas do samba exite. 120 if (!is_file('/home/expressolivre/mkntpwd')) 121 { 122 $return['status'] = false; 123 $return['msg'] .= "O arquivo binário /home/expressolivre/mkntpwd não exite.\\nEle é necessário para a criação das senhas usadas pelo SAMBA.\\nInforme o administrador ExpressoLivre sobre isto."; 124 } 125 else 126 { 127 $user_info['objectClass'][] = 'sambaSamAccount'; 128 $user_info['loginShell'] = '/bin/bash'; 129 130 $user_info['sambaSID'] = $params['sambadomain'] . '-' . ((2 * $id)+1000); 131 $user_info['sambaPrimaryGroupSID'] = $params['sambadomain'] . '-' . ((2 * $user_info['gidNumber'])+1001); 132 133 $user_info['sambaAcctFlags'] = $params['sambaacctflags']; 134 135 $user_info['sambaLogonScript'] = $params['sambalogonscript']; 136 $user_info['homeDirectory'] = $params['sambahomedirectory']; 137 138 $user_info['sambaLMPassword'] = exec('/home/expressolivre/mkntpwd -L '.$params['password1']); 139 $user_info['sambaNTPassword'] = exec('/home/expressolivre/mkntpwd -N '.$params['password1']); 140 $user_info['sambaPasswordHistory'] = '0000000000000000000000000000000000000000000000000000000000000000'; 141 142 $user_info['sambaPwdCanChange'] = strtotime("now"); 143 $user_info['sambaPwdLastSet'] = strtotime("now"); 144 $user_info['sambaPwdMustChange'] = '2147483647'; 145 } 146 } 169 147 $result = $this->ldap_functions->ldap_add_entry($dn, $user_info); 170 148 if (!$result['status']) … … 261 239 $old_values = $this->get_user_info($new_values['uidnumber'], $new_values['manager_context']); 262 240 $dn = 'uid=' . $old_values['uid'] . ',' . strtolower($old_values['context']); 263 241 264 242 $diff = array_diff($new_values, $old_values); 265 243 266 244 $manager_account_lid = $_SESSION['phpgw_session']['session_lid']; 267 245 if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && … … 276 254 277 255 // Verifica o acesso do gerente 256 if (!$this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) 257 { 258 259 } 260 261 // Verifica o acesso do gerente 278 262 if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) 279 263 { … … 309 293 $ldap_mod_replace['sn'] = $new_values['sn']; 310 294 $ldap_mod_replace['cn'] = $new_values['givenname'] . ' ' . $new_values['sn']; 311 $this->db_functions->write_log("altera $ldap_mod_do sn do usuario",'',$dn,'','');295 $this->db_functions->write_log("alterado sn do usuario",'',$dn,'',''); 312 296 } 313 297 if ($diff['mail']) … … 365 349 } 366 350 } 367 368 // REPLACE, ADD & REMOVE COPORATIVEs ATRIBUTES 369 // Verifica o acesso do gerente aos atributos corporativos 370 if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 371 { 372 foreach ($new_values as $atribute=>$value) 373 { 374 $pos = strrpos($atribute, 'corporative_information_'); 375 if ($pos !== false) 376 { 377 $ldap_atribute = str_replace("corporative_information_", "", $atribute); 378 // REPLACE ATTRS OF CORPORATIVE 379 if (($diff[$atribute]) && ($old_values[$atribute] != '')) 380 { 381 $ldap_atribute = str_replace("corporative_information_", "", $atribute); 382 $ldap_mod_replace[$ldap_atribute] = $new_values[$atribute]; 383 $this->db_functions->write_log("alterado $ldap_atribute do usuario",'',$dn,'',''); 384 } 385 //ADD ATTRS OF CORPORATIVE 386 elseif (($old_values[$atribute] == '') && ($new_values[$atribute] != '')) 387 { 388 $ldap_add[$ldap_atribute] = $new_values[$atribute]; 389 $this->db_functions->write_log("adicionado $ldap_atribute ao usuario",'',$dn,'',''); 390 } 391 //REMOVE ATTRS OF CORPORATIVE 392 elseif (($old_values[$atribute] != '') && ($new_values[$atribute] == '')) 393 { 394 $ldap_remove[$ldap_atribute] = array(); 395 $this->db_functions->write_log("removido $ldap_atribute do usuario",'',$dn,'',''); 396 } 397 } 398 } 399 } 400 351 401 352 //Suporte ao SAMBA 402 353 if ( ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) || … … 561 512 } 562 513 } 563 514 564 515 if ( ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) || 565 516 ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_sambausers_attributes')) ) … … 689 640 if (count($ldap_remove)) 690 641 { 642 691 643 $result = $this->ldap_functions->remove_user_attributes($dn, $ldap_remove); 692 644 if (!$result['status']) … … 775 727 return $return; 776 728 } 729 777 730 778 731 function get_user_info($uidnumber, $context) … … 1123 1076 } 1124 1077 } 1125 1126 function write_log_from_ajax($params)1127 {1128 $this->db_functions->write_log($params['_action'],'',$params['userinfo'],'','');1129 return true;1130 }1131 1078 } 1132 1079 ?>
Note: See TracChangeset
for help on using the changeset viewer.