Changeset 32
- Timestamp:
- 06/08/07 15:18:19 (17 years ago)
- Location:
- trunk
- Files:
-
- 24 added
- 1 deleted
- 37 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/admin/templates/default/config.tpl
r2 r32 195 195 196 196 <tr class="row_off"> 197 <td>{lang_How_many_letters_the_user_password_must_contain_(default_3)_?}:</td> 198 <td> 199 <input name="newsettings[num_letters_userpass]" value="{value_num_letters_userpass}" size="5"> 200 </td> 201 </tr> 202 203 <tr class="row_on"> 204 <td>{lang_How_many_special_letters_the_user_password_must_contain_(default_0)_?}:</td> 205 <td> 206 <input name="newsettings[num_special_letters_userpass]" value="{value_num_special_letters_userpass}" size="5"> 207 </td> 208 </tr> 209 210 <tr class="row_off"> 197 211 <td>{lang_Admin_email_addresses_(comma-separated)_to_be_notified_about_the_blocking_(empty_for_no_notify)}:</td> 198 212 <td> -
trunk/expressoAdmin1_2/docs/change_log.txt
r30 r32 62 62 29/05/2007 63 63 - Ao renomear um usuário, seu sieve script também é renomeado. 64 65 01/06/2007 66 - Corrigido bug ao editar usuários sem nenhum grupo. 67 - Retirado códigos de chamada a funão get_sectors (depreciada). 68 - Criado acl view_user (pode apenas ver informações, sem editar). 69 - Retirado códigos de chamada ao manage_wf_sectors (depreciado). 70 71 04/06/2007 72 - Permitido ocultar setores. -
trunk/expressoAdmin1_2/inc/class.bomanagers.inc.php
r27 r32 34 34 'delete_users' => $_POST['delete_users'], 35 35 'rename_users' => $_POST['rename_users'], 36 'view_users' => $_POST['view_users'], 36 37 'add_groups' => $_POST['add_groups'], 37 38 'edit_groups' => $_POST['edit_groups'], … … 50 51 'view_global_sessions' => $_POST['view_global_sessions'], 51 52 'view_logs' => $_POST['view_logs'], 52 'manage_wf_sectors' => $_POST['manage_wf_sectors'],53 53 'create_computers' => $_POST['create_computers'], 54 54 'edit_computers' => $_POST['edit_computers'], … … 59 59 // Soma os niveis de acesso criando uma ACL 60 60 $acl = 0; 61 $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] ;61 $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users']; 62 62 $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups']; 63 63 $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; 64 64 $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 65 65 $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; 66 $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager[' manage_wf_sectors'] + $manager['view_global_sessions'];66 $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions']; 67 67 $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; 68 68 $acl = $acl + $manager['view_logs']; … … 105 105 'delete_users' => $_POST['delete_users'], 106 106 'rename_users' => $_POST['rename_users'], 107 'view_users' => $_POST['view_users'], 107 108 'add_groups' => $_POST['add_groups'], 108 109 'edit_groups' => $_POST['edit_groups'], … … 121 122 'view_global_sessions' => $_POST['view_global_sessions'], 122 123 'view_logs' => $_POST['view_logs'], 123 'manage_wf_sectors' => $_POST['manage_wf_sectors'],124 124 'create_computers' => $_POST['create_computers'], 125 125 'edit_computers' => $_POST['edit_computers'], … … 130 130 // Soma os niveis de acesso criando uma ACL 131 131 $acl = 0; 132 $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] ;132 $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users']; 133 133 $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups']; 134 134 $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; 135 135 $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 136 136 $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; 137 $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager[' manage_wf_sectors'] + $manager['view_global_sessions'];137 $acl = $acl + $manager['create_sectors'] + $manager['edit_sectors'] + $manager['delete_sectors'] + $manager['view_global_sessions']; 138 138 $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; 139 139 $acl = $acl + $manager['view_logs']; -
trunk/expressoAdmin1_2/inc/class.bosectors.inc.php
r2 r32 45 45 $sector_info['objectClass'][0] = 'top'; 46 46 $sector_info['objectClass'][1] = 'organizationalUnit'; 47 $sector_info['objectClass'][2] = 'phpgwAccount'; 48 49 if ($_POST['sector_visible']) 50 $sector_info['phpgwaccountvisible'] = '-1'; 47 51 48 52 // Chama funcao para escrever no OpenLDAP, case de erro, volta com msg de erro. … … 61 65 $GLOBALS['phpgw']->redirect($url); 62 66 } 63 67 64 68 function save_sector() 65 69 { 70 $sector_info = $this->so->get_info($_POST['context']); 71 72 if (($_POST['sector_visible'] == 'on') && ($sector_info['phpgwaccountvisible'] != '-1')) 73 { 74 foreach ($sector_info[0]['objectclass'] as $objectClass) 75 { 76 if ($objectClass == 'phpgwAccount') 77 $phpgwAccount = true; 78 else 79 $phpgwAccount = false; 80 } 81 82 if (!$phpgwAccount) 83 { 84 $ldap_mod_add['objectClass'][] = 'phpgwAccount'; 85 } 86 87 $ldap_mod_add['phpgwaccountvisible'] = '-1'; 88 $this->so->add_attribute($sector_info[0]['dn'], $ldap_mod_add); 89 } 90 else 91 { 92 $ldap_mod_del['phpgwaccountvisible'] = array(); 93 $this->so->remove_attribute($sector_info[0]['dn'], $ldap_mod_del); 94 } 95 66 96 // Volta para o ListSectors 67 $url = ($GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors')); 68 $GLOBALS['phpgw']->redirect($url); 97 ExecMethod('expressoAdmin1_2.uisectors.list_sectors'); 69 98 } 70 99 71 100 function delete_sector() 72 101 { -
trunk/expressoAdmin1_2/inc/class.db_functions.inc.php
r27 r32 39 39 } 40 40 41 /* 41 42 function get_sectors($params) 42 43 { … … 55 56 return $result; 56 57 } 57 58 */ 59 58 60 function get_next_id() 59 61 { -
trunk/expressoAdmin1_2/inc/class.functions.inc.php
r27 r32 43 43 { 44 44 case list_users: 45 if ($array_acl[add_users] || $array_acl[edit_users] || $array_acl[delete_users] || $array_acl[change_users_password] || $array_acl[change_users_quote] || $array_acl[edit_sambausers_attributes] )45 if ($array_acl[add_users] || $array_acl[edit_users] || $array_acl[delete_users] || $array_acl[change_users_password] || $array_acl[change_users_quote] || $array_acl[edit_sambausers_attributes] || $array_acl[view_users]) 46 46 return true; 47 47 break; … … 62 62 return true; 63 63 break; 64 case view_users: 65 if ($array_acl[view_users]) 66 return true; 67 break; 64 68 case change_users_password: 65 69 if ($array_acl[change_users_password]) … … 134 138 break; 135 139 136 case manage_wf_sectors:137 if ($array_acl[manage_wf_sectors])138 return true;139 break;140 141 140 case view_global_sessions: 142 141 if ($array_acl[view_global_sessions]) … … 192 191 193 192 // Make a array read humam 193 // Last acl: 33.554.432 194 194 function make_array_acl($acl) 195 195 { … … 198 198 $array_acl['delete_users'] = $acl & 4; 199 199 $array_acl['rename_users'] = $acl & 8388608; 200 $array_acl['view_users'] = $acl & 33554432; 200 201 $array_acl['add_groups'] = $acl & 16; 201 202 $array_acl['edit_groups'] = $acl & 32; … … 430 431 { 431 432 $s = CreateObject('phpgwapi.sector_search_ldap'); 432 $sectors_info = $s->get_organizations($context, $selected, false, false);433 $sectors_info = $s->get_organizations($context, $selected, false, true); 433 434 return $sectors_info; 434 435 } 435 436 437 /* 436 438 function get_sectors($context, $selected='') 437 439 { … … 458 460 return false; 459 461 } 462 */ 460 463 461 464 // Get list of all levels, this function is used for sectors module. -
trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php
r27 r32 881 881 function gidnumbers2cn($gidnumbers, $context) 882 882 { 883 $result = array(); 883 884 if (count($gidnumbers)) 884 885 { -
trunk/expressoAdmin1_2/inc/class.sosectors.inc.php
r2 r32 98 98 return(ldap_delete($connection,$dn)); 99 99 } 100 101 function get_info($context) 102 { 103 $connection = $GLOBALS['phpgw']->common->ldapConnect(); 104 $filter="(objectClass=organizationalUnit)"; 105 $search=ldap_search($connection, $context, $filter); 106 $result = ldap_get_entries($connection, $search); 107 return $result; 108 } 109 110 function add_attribute($dn, $info) 111 { 112 $connection = $GLOBALS['phpgw']->common->ldapConnect(); 113 114 if (ldap_mod_add($connection, $dn, $info)) 115 { 116 ldap_close($connection); 117 return true; 118 } 119 else 120 { 121 echo 'Erro na escrita no LDAP, funcao add_attribute: ' . ldap_error($connection); 122 ldap_close($connection); 123 return false; 124 } 125 } 126 127 function remove_attribute($dn, $info) 128 { 129 $connection = $GLOBALS['phpgw']->common->ldapConnect(); 130 131 if (ldap_mod_del($connection, $dn, $info)) 132 { 133 ldap_close($connection); 134 return true; 135 } 136 else 137 { 138 echo 'Erro na escrita no LDAP, funcao remove_attribute: ' . ldap_error($connection); 139 ldap_close($connection); 140 return false; 141 } 142 } 143 100 144 } 101 145 ?> -
trunk/expressoAdmin1_2/inc/class.uiaccounts.inc.php
r27 r32 17 17 'add_users' => True, 18 18 'edit_user' => True, 19 'view_user' => True, 19 20 'show_photo' => True, 20 21 'show_access_log' => True, … … 132 133 ($this->functions->check_acl($account_lid,'change_users_quote'))) 133 134 $can_edit = True; 135 elseif ($this->functions->check_acl($account_lid,'view_users')) 136 $can_view = True; 134 137 if ($this->functions->check_acl($account_lid,'delete_users')) 135 138 $can_delete = True; … … 150 153 if ($can_edit) 151 154 $p->set_var('row_edit',$this->row_action('edit','user',$account['account_id'])); 155 elseif ($can_view) 156 $p->set_var('row_edit',$this->row_action('view','user',$account['account_id'])); 152 157 else 153 158 $p->set_var('row_edit',' '); … … 174 179 { 175 180 $GLOBALS['phpgw']->js->validate_file('jscode','users','expressoAdmin1_2'); 176 $GLOBALS['phpgw']->js->set_onload('get_sectors(document.forms[0].context.value);');181 //$GLOBALS['phpgw']->js->set_onload('get_sectors(document.forms[0].context.value);'); 177 182 $GLOBALS['phpgw']->js->set_onload('get_available_groups(document.forms[0].context.value);'); 178 183 $GLOBALS['phpgw']->js->set_onload('get_available_maillists(document.forms[0].context.value);'); … … 313 318 } 314 319 320 function view_user() 321 { 322 ExecMethod('expressoAdmin1_2.uiaccounts.edit_user'); 323 return; 324 } 325 315 326 function edit_user() 316 327 { … … 326 337 if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && 327 338 (!$this->functions->check_acl($manager_account_lid,'change_users_password')) && 328 (!$this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes'))) 339 (!$this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes')) && 340 (!$this->functions->check_acl($manager_account_lid,'view_users')) 341 ) 329 342 { 330 343 $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); -
trunk/expressoAdmin1_2/inc/class.uimanagers.inc.php
r27 r32 206 206 'lang_view_users' => lang('View user'), 207 207 'lang_rename_user' => lang('Rename users'), 208 'lang_view_user' => lang('View users'), 208 209 'lang_add_groups' => lang('Add groups'), 209 210 'lang_edit_groups' => lang('Edit groups'), … … 246 247 'edit_sectors' => $_POST['edit_sectors'] != '' ? 'checked' : '', 247 248 'delete_sectors' => $_POST['delete_sectors'] != '' ? 'checked' : '', 248 'manage_wf_sectors' => $_POST['manage_wf_sectors'] != '' ? 'checked' : '',249 249 'view_global_sessions' => $_POST['view_global_sessions'] != '' ? 'checked' : '', 250 250 'view_logs' => $_POST['view_logs'] != '' ? 'checked' : '', … … 333 333 $_POST['delete_users'] = $acl['delete_users']; 334 334 $_POST['rename_users'] = $acl['rename_users']; 335 $_POST['view_users'] = $acl['view_users']; 335 336 $_POST['add_groups'] = $acl['add_groups']; 336 337 $_POST['edit_groups'] = $acl['edit_groups']; … … 352 353 $_POST['view_global_sessions'] = $acl['view_global_sessions']; 353 354 $_POST['view_logs'] = $acl['view_logs']; 354 $_POST['manage_wf_sectors'] = $acl['manage_wf_sectors'];355 355 } 356 356 … … 450 450 'lang_view_users' => lang('View users'), 451 451 'lang_rename_user' => lang('Rename users'), 452 'lang_view_user' => lang('View users'), 452 453 'lang_add_groups' => lang('Add groups'), 453 454 'lang_edit_groups' => lang('Edit groups'), … … 478 479 'delete_users' => $_POST['delete_users'] != '' ? 'checked' : '', 479 480 'rename_users' => $_POST['rename_users'] != '' ? 'checked' : '', 481 'view_users' => $_POST['view_users'] != '' ? 'checked' : '', 480 482 'add_groups' => $_POST['add_groups'] != '' ? 'checked' : '', 481 483 'edit_groups' => $_POST['edit_groups'] != '' ? 'checked' : '', … … 498 500 'view_global_sessions' => $_POST['view_global_sessions'] != '' ? 'checked' : '', 499 501 'view_logs' => $_POST['view_logs'] != '' ? 'checked' : '', 500 'manage_wf_sectors' => $_POST['manage_wf_sectors'] != '' ? 'checked' : '',501 502 502 503 // Para o update no banco, preciso saber oq foi alterado e para que. -
trunk/expressoAdmin1_2/inc/class.uisectors.inc.php
r2 r32 17 17 'add_sector' => True, 18 18 'validate_data_sectors_add' => True, 19 'edit_sector' => True, 20 'validate_data_sectors_edit' => True, 19 21 'delete_sector' => True, 20 22 'css' => True … … 113 115 $p->set_var($var); 114 116 117 if ($can_edit) 118 { 119 $p->set_var('edit_link',$this->row_action('edit','sector',$sector->sector_context)); 120 } 121 else 122 { 123 $p->set_var('edit_link',' '); 124 } 125 115 126 if ($can_delete) 116 127 { … … 168 179 // Seta variaveis utilizadas pelo tpl. 169 180 $var = Array( 170 'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.validate_data_sectors_add'), 171 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'), 172 'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'], 173 'context' => $context == '' ? $manager_context : $context, 174 'sector' => $_POST['sector'], 181 'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.validate_data_sectors_add'), 182 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'), 183 'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'], 184 'context' => $context == '' ? $manager_context : $context, 185 'sector' => $_POST['sector'], 186 'sector_visible_checked'=> $_POST['sector_visible'] ? 'checked' : '', 175 187 176 'lang_add' 177 'lang_save' 178 'lang_back' 179 'lang_context' 188 'lang_add' => lang('Add'), 189 'lang_save' => lang('Save'), 190 'lang_back' => lang('Back'), 191 'lang_context' => lang('Context'), 180 192 'lang_sector_name' => lang('Sector name'), 181 'error_messages' => $_POST['error_messages'] == '' ? '' : "<script type='text/javascript'>alert('".$_POST['error_messages']."')</script>", 193 'lang_visible' => lang('Visible'), 194 'error_messages' => $_POST['error_messages'] == '' ? '' : "<script type='text/javascript'>alert('".$_POST['error_messages']."')</script>", 182 195 ); 183 196 $p->set_var($var); 184 197 185 198 $p->pfp('out','create_sector'); 199 } 200 201 function edit_sector() 202 { 203 //_debug_array($_POST); 204 205 $account_lid = $GLOBALS['phpgw']->accounts->data['account_lid']; 206 $acl = $this->functions->read_acl($account_lid); 207 $manager_context = $acl[0]['context']; 208 209 $context = $_GET['context']; 210 $a_tmp = explode(",", ldap_dn2ufn($context)); 211 $sector_name = $a_tmp[0]; 212 213 // Verifica se tem acesso a este modulo 214 if (!$this->functions->check_acl($account_lid,'edit_sectors')) 215 { 216 $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); 217 } 218 219 unset($GLOBALS['phpgw_info']['flags']['noheader']); 220 unset($GLOBALS['phpgw_info']['flags']['nonavbar']); 221 $GLOBALS['phpgw_info']['flags']['app_header'] = $GLOBALS['phpgw_info']['apps']['expressoAdmin1_2']['title'].' - '.lang('Edit Sector'); 222 $GLOBALS['phpgw']->common->phpgw_header(); 223 224 // Set o template 225 $p = CreateObject('phpgwapi.Template',PHPGW_APP_TPL); 226 $p->set_file(Array('edit_sector' => 'sectors_form.tpl')); 227 228 if (!$_POST) 229 { 230 $sector_info = $this->so->get_info($context); 231 $_POST['sector_visible'] = $sector_info[0]['phpgwaccountvisible'][0]; 232 } 233 234 // Seta variaveis utilizadas pelo tpl. 235 $var = Array( 236 'action' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.bosectors.save_sector'), 237 'back_url' => $GLOBALS['phpgw']->link('/index.php','menuaction=expressoAdmin1_2.uisectors.list_sectors'), 238 'th_bg' => $GLOBALS['phpgw_info']['theme']['th_bg'], 239 'context' => $context == '' ? $manager_context : $context, 240 'sector' => $_POST['sector'] == '' ? $sector_name : $_POST['sector'], 241 'sector_visible_checked'=> $_POST['sector_visible'] ? 'checked' : '', 242 243 'lang_add' => lang('Add'), 244 'disable' => 'disabled', 245 'lang_save' => lang('Save'), 246 'lang_back' => lang('Back'), 247 'lang_context' => lang('Context'), 248 'lang_sector_name' => lang('Sector name'), 249 'lang_occult_ou' => lang('Occult Sector'), 250 'error_messages' => $_POST['error_messages'] == '' ? '' : "<script type='text/javascript'>alert('".$_POST['error_messages']."')</script>", 251 ); 252 $p->set_var($var); 253 254 $p->pfp('out','edit_sector'); 186 255 } 187 256 … … 211 280 ExecMethod('expressoAdmin1_2.bosectors.create_sector'); 212 281 } 213 282 214 283 function delete_sector() 215 284 { … … 242 311 243 312 // Get users of sector 244 $sector_users 313 $sector_users = $this->so->get_sector_users($_GET['context']); 245 314 $sector_groups = $this->so->get_sector_groups($_GET['context']); 246 315 $sector_subsectors = $this->so->get_sector_subsectors($_GET['context']); -
trunk/expressoAdmin1_2/inc/class.user.inc.php
r30 r32 235 235 $diff = array_diff($new_values, $old_values); 236 236 237 $manager_account_lid = $_SESSION['phpgw_session']['session_lid']; 238 if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && 239 (!$this->functions->check_acl($manager_account_lid,'change_users_password')) && 240 (!$this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes')) 241 ) 242 { 243 $return['status'] = false; 244 $return['msg'] = 'Você não tem direito de editar informações de usuários.'; 245 return $return; 246 } 247 248 // Verifica o acesso do gerente 249 if (!$this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) 250 { 251 252 } 253 237 254 // Verifica o acesso do gerente 238 255 if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) -
trunk/expressoAdmin1_2/js/jscode/users.js
r27 r32 199 199 } 200 200 201 201 /* 202 202 function get_sectors(organization, user_context, user_sector) 203 203 { … … 246 246 cExecute ('$this.db_functions.get_sectors&organization='+organization, handler_get_sectors); 247 247 } 248 248 */ 249 249 250 function get_available_groups(context) 250 251 { -
trunk/expressoAdmin1_2/templates/default/accounts_form.tpl
r27 r32 42 42 <tr bgcolor={row_on}> 43 43 <td>{lang_organizations}:</td> 44 <td><select {disabled} id="ea_combo_org_info" name="context" onchange="javascript:sinc_combos_org(this.value); get_ sectors(this.value, '{user_context}','{departmentnumber}'); get_available_groups(this.value); get_available_maillists(this.value);">{sectors}</select></td>44 <td><select {disabled} id="ea_combo_org_info" name="context" onchange="javascript:sinc_combos_org(this.value); get_available_groups(this.value); get_available_maillists(this.value);">{sectors}</select></td> 45 45 </tr> 46 46 … … 85 85 <td rowspan="4" width="35%"> 86 86 <img align="center" src="{photo_bin}" id="ea_img_photo" border="0"> 87 <input type="file" id="ea_input_photo" name="photo" {disabled} size=20> 87 <input type="file" id="ea_input_photo" name="photo" {disabled} size=20><br> 88 88 <input type="checkbox" {disabled_delete_photo} {disabled} name="delete_photo" value="1">Deletar foto 89 89 </td> … … 316 316 </td> 317 317 <td width="10%" align="right" class="td_right" bgcolor="{color_bg1}"> 318 <input type="button" value="{lang_save}" onClick="javascript:validate_fields('{type}');">318 <input {disabled} type="button" value="{lang_save}" onClick="javascript:validate_fields('{type}');"> 319 319 </td> 320 320 </tr> -
trunk/expressoAdmin1_2/templates/default/index.tpl
r27 r32 35 35 <tr style={display_samba_suport}> 36 36 <td width="1%" align="center"> 37 <img src='./templates/default/images/ computer.png'>37 <img src='./templates/default/images/samba.png'> 38 38 </td> 39 39 <td> -
trunk/expressoAdmin1_2/templates/default/managers_form.tpl
r27 r32 74 74 </tr> 75 75 <tr bgcolor="{color_font1}" align='right'> 76 <td>{lang_view_user}:</td> 77 <td><input type="checkbox" name="view_users" value="33554432" {view_users}></td> 78 </tr> 79 <tr bgcolor="{color_font2}" align='right'> 76 80 <td>{lang_change_user_password}:</td> 77 81 <td><input type="checkbox" name="change_users_password" value="128" {change_users_password}></td> 78 82 </tr> 79 <tr bgcolor="{color_font 2}" align='right'>83 <tr bgcolor="{color_font1}" align='right'> 80 84 <td>{lang_change_users_quote}:</td> 81 85 <td><input type="checkbox" name="change_users_quote" value="262144" {change_users_quote}></td> 82 86 </tr> 83 <tr bgcolor="{color_font 1}" align='right'>87 <tr bgcolor="{color_font2}" align='right'> 84 88 <td>{lang_set_user_default_password}:</td> 85 89 <td><input type="checkbox" name="set_user_default_password" value="524288" {set_user_default_password}></td> -
trunk/expressoAdmin1_2/templates/default/sectors.tpl
r2 r32 21 21 <td>{header_name}</td> 22 22 <td>{lang_add_sub_sectors}</td> 23 <td>{header_edit}</td> 23 24 <td>{header_delete}</td> 24 25 </tr> … … 31 32 <td>{sector_name}</td> 32 33 <td width="25%">{add_link}</td> 34 <td width="5%">{edit_link}</td> 33 35 <td width="5%">{delete_link}</td> 34 36 </tr> -
trunk/expressoAdmin1_2/templates/default/sectors_form.tpl
r2 r32 10 10 <form method="POST" action="{action}"> 11 11 <tr> 12 <td align="right">12 <td> 13 13 {lang_sector_name}: 14 <input type="text" autocomplete="off" name="sector" value={sector}>15 14 </td> 16 <td align="left"> 15 <td> 16 <input type="text" {disable} autocomplete="off" name="sector" value={sector}> 17 </td> 18 </tr> 19 <tr> 20 <td> 21 {lang_occult_ou}: 22 </td> 23 <td> 24 <input type="checkbox" name="sector_visible" {sector_visible_checked}> 25 </td> 26 </tr> 27 <tr> 28 <td align="left" colspan="2"> 17 29 <input type="submit" name="button_submit" value={lang_save}> 18 30 <input type="button" value="{lang_back}" onClick="document.location.href='{back_url}'"> -
trunk/help/index.html
r29 r32 1 1 <html> 2 <head> 3 <title>Expresso Livre</title> 4 </head> 5 <body style="margin:0px;padding:0"> 6 <table width="100%"><tr><td align="right" background="images/fundo_topo.jpg"><a name="0"><img src="images/topo.jpg?1"></a></td></tr></table> 7 <div style="margin:10px"> 8 9 <font face="Arial" size="2"><center><b><u>Manual do usuário do Expresso</u></b></center></font><br> 10 <p align="center"><font face="Arial" size="2">Clique <b><a href="Manual_Usuario_Expresso.pdf">aqui</a></b> 11 para copiar o manual no formato PDF.</font></p><br> 12 <p><font face="Arial" size="2">No manual do usuário do Expresso você irá encontrar:<br><br><br> 13 <li>Guia de utilização do módulo <b>ExpressoMail 1.2</b>;<br><br> 14 <li>Guia de utilização do módulo <b>Agenda de Eventos</b>;<br><br> 15 <li>Guia de utilização do módulo <b>Catálogo de Endereços</b>;<br><br> 16 </font></p> 17 </div> 18 <div align="right" style="padding-right:10px"><font face="Arial" size="2"> 19 Equipe Expresso 20 <br><a href="http://www.celepar.pr.gov.br" target="_blank">Celepar Informática do Paraná</a></font></div> 21 </body> 2 <head> 3 <title>Ajuda - Expresso Livre</title> 4 <link rel='stylesheet' type='text/css' href='css/index.css'/> 5 </head> 6 <body style="margin:0px;padding:0px;"> 7 <table width='100%'> 8 <tr><td align='right' background="./templates/celepar/images/fundo_topo.jpg"> 9 <img src="./templates/celepar/images/topo.jpg" style="overflow:hidden;z-index:-1;"> 10 <p class='titulo' style="font-color:blue;text-align:center;position:absolute;top:20px;left:5px;z-index:0;">Ajuda</p> 11 </td></tr></table> 12 <iframe frameborder='0' width='100%' height='410px' src="content.html"></iframe> 13 </body> 22 14 </html> -
trunk/instant_messenger/docs/change_log.txt
r27 r32 15 15 23/05/2007 [0.001] 16 16 - Na tela de autorização do contato, é mostrado o nome, email e a foto do contato que estão no LDAP 17 - Correção na Hora que aparece ao lado da mensagem. -
trunk/instant_messenger/inc/class.Socket.inc.php
r20 r32 1 1 <?php 2 2 /************************************************************ 3 * Classe Jabber - Expresso *3 * Classe Jabber - Expresso * 4 4 * ------------------------------------------------------- * 5 * Com Autenticação no Servidor Jabber com Tls *6 * Rodrigo Souza - rodsouza@celepar.pr.gov.br *7 * 5 * Com Autenticação no Servidor Jabber com Tls * 6 * Rodrigo Souza - rodsouza@celepar.pr.gov.br * 7 * Alexandre Correia - alexandrecorreia@celepar.pr.gov.br * 8 8 ************************************************************/ 9 9 … … 12 12 private $socket; 13 13 14 protected final function open($pRemoteSocket, $pTimeOut = 1, $pBlockingMode = 0)14 protected final function open($pRemoteSocket, $pTimeOut = 1, $pBlockingMode = 1 ) 15 15 { 16 16 if ( ($this->socket = stream_socket_client($pRemoteSocket, $errno, $errstr)) ) … … 18 18 //$this->socket = stream_socket_client($pRemoteSocket, $errno, $errstr);//, 1, STREAM_CLIENT_CONNECT+STREAM_CLIENT_PERSISTENT); 19 19 //stream_set_write_buffer($this->socket, 0); 20 stream_set_blocking($this->socket, $pBlockingMode); 21 stream_set_timeout($this->socket, 1);//$pTimeOut); 20 stream_set_timeout( $this->socket, 1 );//$pTimeOut); 21 stream_set_blocking( $this->socket, true ); 22 22 23 return true; 23 24 } -
trunk/instant_messenger/inc/class.Ujabber.inc.php
r29 r32 22 22 23 23 private $jid = false; 24 private $email = ""; 25 private $contacts = ""; 24 26 25 27 private $log_error_file = 'erro.log'; … … 36 38 37 39 parent :: __construct($this->jid, $this->password, $this->port); 38 40 39 41 } 40 42 … … 59 61 60 62 // VCARD - PESSOAL 61 62 63 $VCARD_P = $this->getVcard($this->username."@".$this->server); 63 64 64 $group_nusers[0]['VCARD_FN'] = $VCARD_P['FN']; 65 $group_nusers[0]['VCARD_NICKNAME'] = $VCARD_P['NICKNAME']; 66 $group_nusers[0]['VCARD_ORGNAME'] = $VCARD_P['ORGNAME']; 67 $group_nusers[0]['VCARD_ORGUNIT'] = $VCARD_P['ORGUNIT']; 68 $group_nusers[0]['VCARD_ROLE'] = $VCARD_P['ROLE']; 69 $group_nusers[0]['VCARD_BDAY'] = $VCARD_P['BDAY']; 70 $group_nusers[0]['VCARD_DESC'] = $VCARD_P['DESC']; 71 $group_nusers[0]['VCARD_JID'] = $VCARD_P['JID']; 72 65 $group_nusers[0]['VCARD_FN'] = $VCARD_P[0]['FN']; 66 $group_nusers[0]['VCARD_NICKNAME'] = $VCARD_P[0]['NICKNAME']; 67 $group_nusers[0]['VCARD_ORGNAME'] = $VCARD_P[0]['ORGNAME']; 68 $group_nusers[0]['VCARD_ORGUNIT'] = $VCARD_P[0]['ORGUNIT']; 69 $group_nusers[0]['VCARD_ROLE'] = $VCARD_P[0]['ROLE']; 70 $group_nusers[0]['VCARD_BDAY'] = $VCARD_P[0]['BDAY']; 71 $group_nusers[0]['VCARD_DESC'] = $VCARD_P[0]['DESC']; 72 $group_nusers[0]['VCARD_JID'] = $VCARD_P[0]['JID']; 73 74 unset($VCARD_P); 73 75 natcasesort($group_users); 74 76 $i=1; … … 87 89 $VCARD_U = $this->getVcard($aux_jid[0]."@".$this->server); 88 90 89 $group_nusers[$i]['VCARD_FN'] = $VCARD_U['FN']; 90 $group_nusers[$i]['VCARD_NICKNAME'] = $VCARD_U['NICKNAME']; 91 $group_nusers[$i]['VCARD_ORGNAME'] = $VCARD_U['ORGNAME']; 92 $group_nusers[$i]['VCARD_ORGUNIT'] = $VCARD_U['ORGUNIT']; 93 $group_nusers[$i]['VCARD_ROLE'] = $VCARD_U['ROLE']; 94 $group_nusers[$i]['VCARD_BDAY'] = $VCARD_U['BDAY']; 95 $group_nusers[$i]['VCARD_DESC'] = $VCARD_U['DESC']; 96 $group_nusers[$i]['VCARD_JID'] = $VCARD_U['JID']; 97 91 $group_nusers[$i]['VCARD_FN'] = $VCARD_U[0]['FN']; 92 $group_nusers[$i]['VCARD_NICKNAME'] = $VCARD_U[0]['NICKNAME']; 93 $group_nusers[$i]['VCARD_ORGNAME'] = $VCARD_U[0]['ORGNAME']; 94 $group_nusers[$i]['VCARD_ORGUNIT'] = $VCARD_U[0]['ORGUNIT']; 95 $group_nusers[$i]['VCARD_ROLE'] = $VCARD_U[0]['ROLE']; 96 $group_nusers[$i]['VCARD_BDAY'] = $VCARD_U[0]['BDAY']; 97 $group_nusers[$i]['VCARD_DESC'] = $VCARD_U[0]['DESC']; 98 $group_nusers[$i]['VCARD_JID'] = $VCARD_U[0]['JID']; 99 100 unset($VCARD_U); 98 101 $i++; 99 102 } 100 103 101 104 return $group_nusers; 102 105 } … … 113 116 114 117 $this->sendIq('get', 'update1', NULL, NULL, 'jabber:iq:roster'); 115 118 usleep(50000); 116 119 $result = $this->readSocketFromServer(); 117 120 … … 240 243 241 244 /* 242 * GetVcard245 * Vcard 243 246 */ 244 247 … … 250 253 251 254 $this->sendIq('get',$id,$pJid,NULL,"vcard-temp","<vCard xmlns='vcard-temp'/>"); 252 usleep(50000); 253 $result = $this->readSocketFromServer(); 254 $arr = $result['iq'][0]['#']['vCard'][0]['#']; 255 256 // vCard 257 $array_vcard['FN'] = trim($arr['FN']['0']['#']) ? urldecode($arr['FN']['0']['#']): $id; 258 $array_vcard['NICKNAME'] = trim($arr['NICKNAME']['0']['#']) ? urldecode($arr['NICKNAME']['0']['#']) : $pJid; 259 $array_vcard['ORGNAME'] = trim($arr['ORG']['0']['#']['ORGNAME']['0']['#']) ? urldecode($arr['ORG']['0']['#']['ORGNAME']['0']['#']) : ""; 260 $array_vcard['ORGUNIT'] = trim($arr['ORG']['0']['#']['ORGUNIT']['0']['#']) ? urldecode($arr['ORG']['0']['#']['ORGUNIT']['0']['#']) : ""; 261 $array_vcard['ROLE'] = trim($arr['ROLE']['0']['#']) ? urldecode($arr['ROLE']['0']['#']) : ""; 262 $array_vcard['BDAY'] = trim($arr['BDAY']['0']['#']) ? urldecode($arr['BDAY']['0']['#']) : ""; 263 $array_vcard['DESC'] = trim($arr['DESC']['0']['#']) ? urldecode($arr['DESC']['0']['#']) : ""; 264 $array_vcard['JID'] = $pJid; 255 256 while(($result = $this->readSocketFromServer()) == NULL ){ 257 usleep(40); 258 } 259 260 if( trim($result['iq'][0]['@']['type']) === trim("result") ){ 261 262 $arr = $result['iq'][0]['#']['vCard'][0]['#']; 263 264 // vCard 265 $array_vcard[0]['FN'] = urldecode($arr['FN']['0']['#']); 266 $array_vcard[0]['NICKNAME'] = urldecode($arr['NICKNAME']['0']['#']); 267 $array_vcard[0]['ORGNAME'] = urldecode($arr['ORG']['0']['#']['ORGNAME']['0']['#']); 268 $array_vcard[0]['ORGUNIT'] = urldecode($arr['ORG']['0']['#']['ORGUNIT']['0']['#']); 269 $array_vcard[0]['ROLE'] = urldecode($arr['ROLE']['0']['#']); 270 $array_vcard[0]['BDAY'] = urldecode($arr['BDAY']['0']['#']); 271 $array_vcard[0]['DESC'] = urldecode($arr['DESC']['0']['#']); 272 $array_vcard[0]['JID'] = $pJid; 273 274 }else{ 275 $array_vcard[0]['FN'] = $pJid; 276 $array_vcard[0]['NICKNAME'] = $id; 277 $array_vcard[0]['ORGNAME'] = ""; 278 $array_vcard[0]['ORGUNIT'] = ""; 279 $array_vcard[0]['ROLE'] = ""; 280 $array_vcard[0]['BDAY'] = ""; 281 $array_vcard[0]['DESC'] = ""; 282 $array_vcard[0]['JID'] = $pJid; 283 } 284 265 285 return $array_vcard; 266 286 } … … 268 288 function newVcard($pVcard_User) 269 289 { 270 271 290 $pVcard = explode(";",$pVcard_User['vcard']); 272 291 $nid = explode("@",$this->jid); 273 292 $id = $nid[0]; 274 293 $xmlVcard = ""; 275 294 276 295 // Vcard 277 296 $xmlVcard = "<iq id='$id' type='set'>"; … … 326 345 function SendMessage($pSendMessage) 327 346 { 328 //$this->presence();329 347 $to = $pSendMessage['to']; 330 348 $type = "normal"; … … 392 410 $result = array(); 393 411 $this->sendIq('get',$id,$pJid,NULL,'jabber:iq:last'); 394 usleep(50000); 395 412 413 usleep(50000); 396 414 $result = $this->readSocketFromServer(); 397 415 398 416 $time_offline = $result['iq'][0]['#']['query'][0]['@']['seconds']; 399 417 return $this->time_off_line($time_offline); … … 457 475 return ($to) ? $this->presence("unsubscribe", $to) : FALSE; 458 476 } 477 459 478 // TESTE 460 479 -
trunk/instant_messenger/inc/class.contacts_im.inc.php
r27 r32 14 14 $this->db_user = new db_im(); 15 15 } 16 17 function set_session_ldap_users() 18 { 19 if(!isset($_SESSION['instant_messenger']['users_ldap'])) 20 $this->users_auth_im(); 21 22 } 23 24 function users_auth_im() 25 { 26 $db_acls = $this->db_user->get_accounts_acl(); 27 28 // UidNumbers db; 29 foreach($db_acls as $tmp) 30 $uid_users .= "(uidNumber=".$tmp['acl_account'].")"; 31 32 foreach($db_acls as $tmp) 33 $uid_groups .= "(gidNumber=".$tmp['acl_account'].")"; 34 35 // usuários; 36 $result_users = $this->ldap_users->list_users_ldap($uid_users); 37 38 // grupos; 39 $result_groups = $this->ldap_users->list_groups_ldap($uid_groups); 40 41 foreach($result_groups as $group_tmp){ 42 $tmp = $group_tmp['members']; 43 foreach($tmp as $value) 44 $uid_members_group .= "(uid=".$value.")"; 45 } 46 47 $uid_members = $this->ldap_users->list_users_ldap($uid_members_group); 48 $count = count($result_users); 49 50 for($i = 0; $i < count($uid_members); $i++){ 51 $result_users[$count] = $uid_members[$i]; 52 $count++; 53 } 54 55 foreach($result_users as $rs){ 56 $uid[] = $rs['cn'].";".$rs['mail'].";".$rs['ou']; 57 } 58 59 natsort($uid); 60 $uid_un = @array_values(@array_unique($uid)); 61 62 $t = 0; 63 foreach($uid_un as $utmp){ 64 $array = explode(";",$utmp); 65 $list_ldap[$t]['cn'] = $array[0]; 66 $list_ldap[$t]['mail'] = $array[1]; 67 $list_ldap[$t]['ou'] = $array[2]; 68 $t++; 69 } 70 71 $_SESSION['instant_messenger']['users_ldap'] = $list_ldap; 72 73 } 16 74 17 75 function list_contacts($param) 18 76 { 77 $result_users = array(); 19 78 $org_ldap = $param['ou']; 20 $array_db = $this->db_user->get_accounts_acl(); 21 $array_groups_ldap = array(); 22 $j = 0; 23 24 for($i=0 ; $i < count($array_db); $i++) 25 $array_1[] = $this->ldap_users->list_users_ldap($org_ldap,"uidNumber", $array_db[$i]['acl_account']); 26 27 for($i=0; $i < count($array_1); $i++){ 28 if(array_key_exists("count",$array_1[$i])){ 29 $array_groups_ldap[] = $array_1[$i]['uidnumber']; 30 } 31 } 79 $i = 0; 80 $this->set_session_ldap_users(); 32 81 33 for($i=0; $i < count($array_groups_ldap); $i++) 34 $array_2[]['members'] = $this->ldap_users->list_groups_ldap($org_ldap,$array_groups_ldap[$i]); 35 36 foreach($array_2 as $tmp){ 37 if($tmp['members'] > 0){ 38 foreach($tmp['members'] as $tmp1) 39 $array_3[] = $tmp1; 40 } 41 } 42 43 for($i=0; $i < count($array_1); $i++) 44 if($array_1[$i]['uid'] != "") 45 $array_3[] = $array_1[$i]['uid']; 46 47 @natsort($array_3); 48 49 $array_4 = @array_values(@array_unique($array_3)); 50 51 for($i=0; $i < count($array_4); $i++) 52 $array_5[] = $this->ldap_users->list_users_ldap($org_ldap,"uid", $array_4[$i]); 53 54 for($i=0 ; $i < count($array_5); $i++){ 55 if($array_5[$i]['phpgwAccountVisible'] != "-1"){ 56 $array_6[] = $array_5[$i]['cn'] . ";" . $array_5[$i]['mail']; 82 foreach($_SESSION['instant_messenger']['users_ldap'] as $users){ 83 if($users['ou'] == ("OU=".$org_ldap)){ 84 $result_users[$i]['cn'] = $users['cn']; 85 $result_users[$i]['mail'] = $users['mail']; 86 $i++; 57 87 } 58 88 } 59 89 60 sort($array_6); 61 62 for($i=0; $i < count($array_6); $i++){ 63 $aux = explode(";", $array_6[$i]); 64 $array_7[$j]['cn'] = $aux[0]; 65 $array_7[$j]['mail'] = $aux[1]; 66 $j++; 67 } 68 69 if(count($array_7) > 0) 70 return $array_7; 90 if(count($result_users) > 0) 91 return $result_users; 71 92 else 72 93 return 0; -
trunk/instant_messenger/inc/class.ldap_im.inc.php
r27 r32 14 14 $this->user = $_SESSION['phpgw_info']['instant_messenger']['user_ldap_jabber']; 15 15 $this->password = $_SESSION['phpgw_info']['instant_messenger']['password_ldap_jabber']; 16 $this->connect_ldap( false);16 $this->connect_ldap(true); 17 17 } 18 18 … … 28 28 ldap_set_option($this->conn, LDAP_OPT_REFERRALS, $refer); 29 29 if(trim($this->user) != "") 30 ldap_bind($this->conn,$this->user,$this->password);30 @ldap_bind($this->conn,$this->user,$this->password); 31 31 else 32 ldap_bind($this->conn);32 @ldap_bind($this->conn); 33 33 } 34 34 … … 72 72 } 73 73 74 function list_users_ldap($ orgLdap = false,$type,$uid)74 function list_users_ldap($filter) 75 75 { 76 $result_users = array(); 77 $i = 0; 78 79 if ($this->conn) { 80 $filter = $type ."=". $uid; 81 $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible"); 82 if($orgLdap) 83 $search = ldap_search($this->conn,"ou=".$orgLdap.",".$this->ldap_context, $filter, $justthese); 84 else 85 $search = ldap_search($this->conn,$this->ldap_context, $filter, $justthese); 86 $entry = ldap_get_entries($this->conn, $search); 76 77 if( $this->conn ){ 78 $filter = "(&(|".$filter.")(phpgwAccountType=u))"; 79 $justthese = array("uid","uidNumber","cn","mail","phpgwAccountVisible","dn"); 80 $search = ldap_search($this->conn,$this->ldap_context, $filter, $justthese); 81 $entry = ldap_get_entries($this->conn,$search); 82 } 83 84 if( $entry['count'] > 0){ 85 $i = 0; 86 foreach($entry as $tmp) 87 { 88 if($tmp['uidnumber'][0] != ""){ 89 $result_user[$i]['uidnumber'] = $tmp['uidnumber'][0]; 90 $result_user[$i]['mail'] = $tmp['mail'][0]; 91 $result_user[$i]['uid'] = $tmp['uid'][0]; 92 $result_user[$i]['cn'] = $tmp['cn'][0]; 93 $dn = explode(",dc=",$tmp['dn']); 94 $ou = explode(",",$dn[0]); 95 $result_user[$i]['ou'] = strtoupper(array_pop($ou)); 96 $i++; 97 } 98 } 99 return $result_user; 100 } 101 return 0; 102 } 103 104 function list_groups_ldap($filter) 105 { 106 107 if( $this->conn ){ 108 $filter = "(&(|".$filter.")(phpgwAccountType=g))"; 109 $justthese = array("gidnumber","cn","memberuid"); 110 $search = ldap_search($this->conn,$this->ldap_context, $filter, $justthese); 111 $entry = ldap_get_entries($this->conn,$search); 87 112 } 88 113 89 if($entry['count'] == 0){ 90 $result_users['count'] = 0; 91 $result_users['uidnumber'] = $uid; 92 return $result_users; 114 if( $entry['count'] > 0 ){ 115 $i = 0; 116 foreach($entry as $tmp) 117 { 118 if($tmp['gidnumber'][0] != ""){ 119 $result_groups[$i]['gidnumber'] = $tmp['gidnumber'][0]; 120 $org = explode(",",$tmp['dn']); 121 $result_groups[$i]['ou'] = strtoupper($org[1]); 122 array_shift($tmp['memberuid']); 123 foreach($tmp['memberuid'] as $mb) 124 $result_groups[$i]['members'][] = $mb; 125 $i++; 126 } 127 } 128 return $result_groups; 93 129 } 94 95 $result_users['uid'] = $entry[0]['uid'][0]; 96 $result_users['uidnumber'] = $entry[0]['uidnumber'][0]; 97 $result_users['cn'] = $entry[0]['cn'][0]; 98 $result_users['mail'] = $entry[0]['mail'][0]; 99 $result_users['phpgwAccountVisible'] = @$entry[0]['phpgwaccountvisible'][0]; 130 return 0; 100 131 101 return $result_users;102 }103 104 function list_groups_ldap($orgLdap, $gid)105 {106 $result_groups = "";107 $i = 0;108 109 if ($this->conn) {110 $filter="(&(gidNumber=".$gid.")(objectClass=posixGroup))";111 $justthese = array("gidnumber","cn","memberuid");112 $search = ldap_search($this->conn,"ou=".$orgLdap.",".$this->ldap_context, $filter, $justthese);113 $entry = ldap_get_entries($this->conn, $search);114 }115 116 if($entry['count'] == "1"){117 $result_groups = array_shift($entry[0]['memberuid']);118 return $entry[0]['memberuid'];119 }120 return false;121 132 } 122 133 … … 134 145 foreach($entry as $tmp){ 135 146 if($tmp['ou'][0] != ""){ 136 $result_org[$i] ['ou']= $tmp['ou'][0];147 $result_org[$i] = $tmp['ou'][0]; 137 148 $i++; 138 149 } 139 150 } 151 152 sort($result_org); 153 140 154 return $result_org; 141 155 } … … 144 158 { 145 159 $uid = $user['uid']; 160 $filter = "(uid=".$uid.")"; 146 161 $i= 0; 147 162 148 $entry = $this->list_users_ldap( false,"uid",$uid);163 $entry = $this->list_users_ldap($filter); 149 164 150 $result_users[0]['uid'] = $entry['uid']; 151 $result_users[0]['cn'] = $entry['cn']; 152 $result_users[0]['mail'] = $entry['mail']; 153 154 $_SESSION['debug'] = $result_users; 155 156 return $result_users; 157 165 if( count($entry) > 0 ){ 166 return $entry; 167 }else{ 168 return false; 169 } 158 170 } 159 171 } -
trunk/instant_messenger/index.php
r21 r32 21 21 22 22 // Session 23 $_SESSION['phpgw_info']['instant_messenger']['user'] = $GLOBALS['phpgw_info']['user']['account_lid']; 23 $_SESSION['phpgw_info']['instant_messenger']['user'] = $GLOBALS['phpgw_info']['user']['account_lid']; 24 $_SESSION['phpgw_info']['instant_messenger']['user_id'] = $GLOBALS['phpgw_info']['user']['account_id']; 24 25 $_SESSION['phpgw_info']['instant_messenger']['passwd'] = $GLOBALS['phpgw_info']['user']['passwd']; 26 $_SESSION['phpgw_info']['instant_messenger']['email'] = $GLOBALS['phpgw_info']['user']['email']; 25 27 $_SESSION['phpgw_info']['instant_messenger']['name_jabber'] = $GLOBALS['phpgw_info']['server']['name_jabber']; 26 28 $_SESSION['phpgw_info']['instant_messenger']['port_jabber'] = $GLOBALS['phpgw_info']['server']['port_jabber']; -
trunk/instant_messenger/index2.php
r27 r32 12 12 13 13 $_SESSION['phpgw_info']['instant_messenger']['user'] = $GLOBALS['phpgw_info']['user']['account_lid']; 14 $_SESSION['phpgw_info']['instant_messenger']['user_id'] = $GLOBALS['phpgw_info']['user']['account_id']; 14 15 $_SESSION['phpgw_info']['instant_messenger']['passwd'] = $GLOBALS['phpgw_info']['user']['passwd']; 16 $_SESSION['phpgw_info']['instant_messenger']['email'] = $GLOBALS['phpgw_info']['user']['email']; 15 17 $_SESSION['phpgw_info']['instant_messenger']['name_jabber'] = $GLOBALS['phpgw_info']['server']['name_jabber']; 16 18 $_SESSION['phpgw_info']['instant_messenger']['port_jabber'] = $GLOBALS['phpgw_info']['server']['port_jabber']; -
trunk/instant_messenger/js/im_functions.js
r27 r32 306 306 { 307 307 if( jid == IM.array_users[j].jid ){ 308 nickname = IM.array_users[j].VCARD_NICKNAME;308 nickname = decodeURI(IM.array_users[j].VCARD_NICKNAME); 309 309 } 310 310 } … … 312 312 if ( window_message ) 313 313 { 314 window_message.innerHTML += '<strong>' + '['+ TimeStamp +'] ' + nickname + ' fala:</strong><br/> ' + _this.emotions_icons(body_message) + '<br/><br/>';314 window_message.innerHTML += '<strong>' + '['+ TimeStamp +'] ' + nickname + '</strong> ' + IM.get_lang('speak') + ':<br/> ' + _this.emotions_icons(body_message) + '<br/><br/>'; 315 315 if ( windowItems[jid].state != WINDOW_STATE_REGULAR && windowItems[jid].state != WINDOW_STATE_MAXIMIZED ) 316 316 im_win.showWindowItem(jid); … … 320 320 im_win.open_chat(jid); 321 321 window_message = document.getElementById(jid + '_chatMessages'); 322 window_message.innerHTML += '<strong>' + '['+ TimeStamp +'] ' + nickname + ' fala:</strong><br/> ' + _this.emotions_icons(body_message) + '<br/><br/>';322 window_message.innerHTML += '<strong>' + '['+ TimeStamp +'] ' + nickname + '</strong> ' + IM.get_lang('speak') + ':<br/> ' + _this.emotions_icons(body_message) + '<br/><br/>'; 323 323 } 324 324 } … … 545 545 form_pref += "<dt><a href='javascript:void(0)' onclick='javascript:Preferences.vCardLoad()'>"; 546 546 form_pref += "<img src="+img_menu.src+"> "+IM.get_lang('Information')+"</a></dt>"; 547 form_pref += "<dt><a href='javascript:void(0)' onclick='javascript:Preferences.yourPreferences()'>"; 548 form_pref += "<img src="+img_menu.src+"> "+IM.get_lang('preferences')+"</a></dt>"; 547 549 form_pref += "</dl>"; 548 550 im_menu_action.menu(pElement, form_pref); -
trunk/instant_messenger/js/im_preferences.js
r27 r32 29 29 30 30 for(var i in data){ 31 var options = new Option(data[i] .ou, data[i].ou, false, true);31 var options = new Option(data[i], data[i], false, true); 32 32 select_org[select_org.length] = options; 33 33 } … … 62 62 if( data.length > 0 ){ 63 63 for(var i in data){ 64 var options = new Option(data[i].cn + " ( "+ data[i].mail + " )", data[i].mail, false, false); 65 select_contact[select_contact.length] = options; 64 if(data[i].cn != ""){ 65 var options = new Option(data[i].cn + " ( "+ data[i].mail + " )", data[i].mail, false, false); 66 select_contact[select_contact.length] = options; 67 } 66 68 } 67 69 } … … 388 390 389 391 /* 392 * Preferências do Usuário 393 */ 394 395 Preferences.prototype.yourPreferences = function() 396 { 397 398 //Templates.yourPreferences(); 399 400 } 401 402 /* 390 403 * Tela de permissão para novos contatos 391 404 */ -
trunk/instant_messenger/js/im_templates.js
r27 r32 365 365 } 366 366 367 /* 368 * Preferências do usuário 369 */ 370 Templates.prototype.yourPreferences = function() 371 { 372 /************* 373 Preferências 374 Marcação de tempo 375 Exibir amigos desconectados 376 Desativar aviso de novos contatos 377 Ativar aviso de mensagens recebidas 378 - Aviso Normal 379 - Aviso Médio 380 - Aviso Chato 381 Bloquear recebimento de mensagens 382 Cadastro de novos grupos; 383 /*************/ 384 385 var form_your_prefe = '<div style="margin-left:10px;margin-top:5px"><dl>' + 386 '<dt><input type="checkbox"> Mostar marcação de tempo </dt> ' + 387 '<dt><input type="checkbox"> Exibir amigos desconectados </dt> ' + 388 '<dt><input type="checkbox"> Desativar aviso de novos contatos </dt> ' + 389 '<dt><input type="checkbox"> Cadastro de novos grupos </dt> ' + 390 '<dl></div>' + 391 '<div style="margin-top:10px;margin-left:15px"> Ativar aviso de mensagens recebidas </div>' + 392 '<div style="margin-left:20px;margin-top:5px">' + 393 '<input type="radio" id="rd_normal" value="normal"> Modo Normal</br>' + 394 '<input type="radio" id="rd_medio" value="alerta"> Modo com Alertas</br>' + 395 '<input type="radio" id="rd_chato" value="chato"> Modo Chato' + 396 '</div>' ; 397 398 this.conf_form("divYourPrefe",340,200,form_your_prefe,":: " + IM.get_lang('Preferences') + " - Expresso ::"); 399 } 400 367 401 //Templates 368 402 var Templates = new Templates(); -
trunk/instant_messenger/js/im_win.js
r29 r32 905 905 else 906 906 document.title = "......................"; 907 907 908 //this.Mod_Notification(); 909 908 910 if ( newMessageTimer ) 909 911 clearTimeout(newMessageTimer); … … 915 917 } 916 918 919 }, 920 921 "Mod_Notification" : function() 922 { 923 /*var mode = ""; 924 925 switch(mode){ 926 927 case "normal" : 928 //alert('Modo Normal'); 929 break; 930 case "alerta" : 931 //alert('Modo Alerta'); 932 break; 933 case "chato" : 934 // Treme Tela 935 if(self.moveBy) 936 { 937 for(i=10;i>0;i--) 938 { 939 self.moveBy(i,0); 940 self.moveBy(-i,0); 941 } 942 } 943 break; 944 default : 945 }*/ 946 917 947 }, 918 948 -
trunk/phpgwapi/inc/class.auth_ldap.inc.php
r2 r32 155 155 return false; 156 156 } 157 $GLOBALS['phpgw']->session->appsession('password','phpgwapi', $new_passwd);158 return $ entry['userpassword'];157 $GLOBALS['phpgw']->session->appsession('password','phpgwapi',base64_encode($new_passwd)); 158 return $new_passwd; 159 159 } 160 160 -
trunk/preferences/changepassword.php
r2 r32 20 20 include('../header.inc.php'); 21 21 22 $a_passwd = $_POST['a_passwd']; 22 23 $n_passwd = $_POST['n_passwd']; 23 24 $n_passwd_2 = $_POST['n_passwd_2']; … … 32 33 'form' => 'changepassword.tpl' 33 34 )); 35 $GLOBALS['phpgw']->template->set_var('lang_enter_actual_password',lang('Enter your actual password')); 34 36 $GLOBALS['phpgw']->template->set_var('lang_enter_password',lang('Enter your new password')); 35 37 $GLOBALS['phpgw']->template->set_var('lang_reenter_password',lang('Re-enter your password')); … … 46 48 if ($_POST['change']) 47 49 { 50 if (! $GLOBALS['phpgw']->auth->authenticate($GLOBALS['phpgw_info']['user']['account_lid'], $a_passwd)) 51 { 52 $errors[] = lang('Your actual password is wrong'); 53 } 54 48 55 if ($n_passwd != $n_passwd_2) 49 56 { … … 55 62 $errors[] = lang('You must enter a password'); 56 63 } 64 65 // Default number of letters = 3 66 if (!$GLOBALS['phpgw_info']['server']['num_letters_userpass']) 67 $GLOBALS['phpgw_info']['server']['num_letters_userpass'] = 3; 68 // Default number of special letters = 0 69 if (!$GLOBALS['phpgw_info']['server']['num_special_letters_userpass']) 70 $GLOBALS['phpgw_info']['server']['num_special_letters_userpass'] = 0; 57 71 72 if ( strlen( $n_passwd ) < $GLOBALS['phpgw_info']['server']['num_letters_userpass'] ) 73 { 74 $errors[] = lang('Your password must contain %1 or more letters', $GLOBALS['phpgw_info']['server']['num_letters_userpass']); 75 } 76 77 # password that start with a-Z or 0-9 and contain _.-!@#$%&*+=| will be accepted. 78 if (! ereg ("^([-a-zA-Z0-9_.\-!@#$%&*+=|])*$", $n_passwd ) ) 79 { 80 $errors[] = lang('Your password contains characters not allowed'); 81 } 82 83 # password must contain 2 special letters, numbers or special characters 84 if (! ereg ("([0-9_.\-!@#$%&*+=|]){".$GLOBALS['phpgw_info']['server']['num_special_letters_userpass'].",}", $n_passwd ) ) 85 { 86 $errors[] = lang('Your password must contain at least %1 numbers or characters special', $GLOBALS['phpgw_info']['server']['num_special_letters_userpass']); 87 } 88 58 89 if(is_array($errors)) 59 90 { -
trunk/preferences/templates/default/changepassword.tpl
r2 r32 5 5 <form method="POST" action="{form_action}"> 6 6 <table border="0"> 7 <tr> 8 <td> 9 {lang_enter_actual_password} 10 </td> 11 <td> 12 <input type="password" name="a_passwd"> 13 </td> 14 </tr> 7 15 <tr> 8 16 <td>
Note: See TracChangeset
for help on using the changeset viewer.