Changeset 32


Ignore:
Timestamp:
06/08/07 15:18:19 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

Location:
trunk
Files:
24 added
1 deleted
37 edited

Legend:

Unmodified
Added
Removed
  • trunk/admin/templates/default/config.tpl

    r2 r32  
    195195    
    196196   <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"> 
    197211    <td>{lang_Admin_email_addresses_(comma-separated)_to_be_notified_about_the_blocking_(empty_for_no_notify)}:</td> 
    198212    <td> 
  • trunk/expressoAdmin1_2/docs/change_log.txt

    r30 r32  
    626229/05/2007 
    6363- Ao renomear um usuário, seu sieve script também é renomeado. 
     64 
     6501/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 
     7104/06/2007 
     72- Permitido ocultar setores. 
  • trunk/expressoAdmin1_2/inc/class.bomanagers.inc.php

    r27 r32  
    3434                        'delete_users'                          => $_POST['delete_users'], 
    3535                        'rename_users'                          => $_POST['rename_users'], 
     36                        'view_users'                            => $_POST['view_users'], 
    3637                        'add_groups'                            => $_POST['add_groups'], 
    3738                        'edit_groups'                           => $_POST['edit_groups'], 
     
    5051                        'view_global_sessions'          => $_POST['view_global_sessions'], 
    5152                        'view_logs'                                     => $_POST['view_logs'], 
    52                         'manage_wf_sectors'             => $_POST['manage_wf_sectors'], 
    5353                        'create_computers'                      => $_POST['create_computers'], 
    5454                        'edit_computers'                        => $_POST['edit_computers'], 
     
    5959                        // Soma os niveis de acesso criando uma ACL 
    6060                        $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']; 
    6262                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups']; 
    6363                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; 
    6464                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 
    6565                        $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']; 
    6767                        $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; 
    6868                        $acl = $acl + $manager['view_logs']; 
     
    105105                        'delete_users'                          => $_POST['delete_users'], 
    106106                        'rename_users'                          => $_POST['rename_users'], 
     107                        'view_users'                            => $_POST['view_users'], 
    107108                        'add_groups'                            => $_POST['add_groups'], 
    108109                        'edit_groups'                           => $_POST['edit_groups'], 
     
    121122                        'view_global_sessions'          => $_POST['view_global_sessions'], 
    122123                        'view_logs'                                     => $_POST['view_logs'], 
    123                         'manage_wf_sectors'                     => $_POST['manage_wf_sectors'], 
    124124                        'create_computers'                      => $_POST['create_computers'], 
    125125                        'edit_computers'                        => $_POST['edit_computers'], 
     
    130130                        // Soma os niveis de acesso criando uma ACL 
    131131                        $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']; 
    133133                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups']; 
    134134                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; 
    135135                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 
    136136                        $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']; 
    138138                        $acl = $acl + $manager['create_computers'] + $manager['edit_computers'] + $manager['delete_computers']; 
    139139                        $acl = $acl + $manager['view_logs']; 
  • trunk/expressoAdmin1_2/inc/class.bosectors.inc.php

    r2 r32  
    4545                        $sector_info['objectClass'][0]  = 'top'; 
    4646                        $sector_info['objectClass'][1]  = 'organizationalUnit'; 
     47                        $sector_info['objectClass'][2]  = 'phpgwAccount'; 
     48                         
     49                        if ($_POST['sector_visible']) 
     50                                $sector_info['phpgwaccountvisible'] = '-1'; 
    4751                         
    4852                        // Chama funcao para escrever no OpenLDAP, case de erro, volta com msg de erro. 
     
    6165                        $GLOBALS['phpgw']->redirect($url); 
    6266                } 
    63                  
     67 
    6468                function save_sector() 
    6569                { 
     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                                 
    6696                        // 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'); 
    6998                } 
    70                  
     99 
    71100                function delete_sector() 
    72101                { 
  • trunk/expressoAdmin1_2/inc/class.db_functions.inc.php

    r27 r32  
    3939        } 
    4040         
     41        /* 
    4142        function get_sectors($params) 
    4243        { 
     
    5556                return $result; 
    5657        } 
    57  
     58        */ 
     59         
    5860        function get_next_id() 
    5961        { 
  • trunk/expressoAdmin1_2/inc/class.functions.inc.php

    r27 r32  
    4343                        { 
    4444                                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]) 
    4646                                                return true; 
    4747                                        break; 
     
    6262                                                return true; 
    6363                                        break; 
     64                                case view_users: 
     65                                        if ($array_acl[view_users]) 
     66                                                return true; 
     67                                        break; 
    6468                                case change_users_password: 
    6569                                        if ($array_acl[change_users_password]) 
     
    134138                                        break; 
    135139 
    136                                 case manage_wf_sectors: 
    137                                         if ($array_acl[manage_wf_sectors]) 
    138                                                 return true; 
    139                                         break; 
    140                                  
    141140                                case view_global_sessions: 
    142141                                        if ($array_acl[view_global_sessions]) 
     
    192191                 
    193192                // Make a array read humam 
     193                // Last acl:    33.554.432 
    194194                function make_array_acl($acl) 
    195195                { 
     
    198198                        $array_acl['delete_users'] = $acl & 4; 
    199199                        $array_acl['rename_users'] = $acl & 8388608; 
     200                        $array_acl['view_users'] = $acl & 33554432; 
    200201                        $array_acl['add_groups'] = $acl & 16; 
    201202                        $array_acl['edit_groups'] = $acl & 32; 
     
    430431                { 
    431432                        $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); 
    433434                        return $sectors_info; 
    434435                }                
    435436                 
     437                /* 
    436438                function get_sectors($context, $selected='') 
    437439                { 
     
    458460                                return false; 
    459461                } 
     462                */ 
    460463                 
    461464                // Get list of all levels, this function is used for sectors module. 
  • trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r27 r32  
    881881        function gidnumbers2cn($gidnumbers, $context) 
    882882        { 
     883                $result = array(); 
    883884                if (count($gidnumbers)) 
    884885                { 
  • trunk/expressoAdmin1_2/inc/class.sosectors.inc.php

    r2 r32  
    9898                        return(ldap_delete($connection,$dn)); 
    9999                } 
     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 
    100144        } 
    101145?> 
  • trunk/expressoAdmin1_2/inc/class.uiaccounts.inc.php

    r27 r32  
    1717                        'add_users'                                     => True, 
    1818                        'edit_user'                                     => True, 
     19                        'view_user'                                     => True, 
    1920                        'show_photo'                            => True, 
    2021                        'show_access_log'                       => True, 
     
    132133                                        ($this->functions->check_acl($account_lid,'change_users_quote')))  
    133134                                        $can_edit = True; 
     135                                elseif ($this->functions->check_acl($account_lid,'view_users')) 
     136                                        $can_view = True; 
    134137                                if ($this->functions->check_acl($account_lid,'delete_users')) 
    135138                                        $can_delete = True; 
     
    150153                                        if ($can_edit) 
    151154                                                $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'])); 
    152157                                        else 
    153158                                                $p->set_var('row_edit','&nbsp;'); 
     
    174179                { 
    175180                        $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);'); 
    177182                        $GLOBALS['phpgw']->js->set_onload('get_available_groups(document.forms[0].context.value);'); 
    178183                        $GLOBALS['phpgw']->js->set_onload('get_available_maillists(document.forms[0].context.value);'); 
     
    313318                } 
    314319                 
     320                function view_user() 
     321                { 
     322                        ExecMethod('expressoAdmin1_2.uiaccounts.edit_user'); 
     323                        return; 
     324                } 
     325                 
    315326                function edit_user() 
    316327                { 
     
    326337                        if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && 
    327338                                (!$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                                ) 
    329342                        { 
    330343                                $GLOBALS['phpgw']->redirect($GLOBALS['phpgw']->link('/expressoAdmin1_2/inc/access_denied.php')); 
  • trunk/expressoAdmin1_2/inc/class.uimanagers.inc.php

    r27 r32  
    206206                                'lang_view_users'                               => lang('View user'), 
    207207                                'lang_rename_user'                              => lang('Rename users'), 
     208                                'lang_view_user'                                => lang('View users'), 
    208209                                'lang_add_groups'                               => lang('Add groups'), 
    209210                                'lang_edit_groups'                              => lang('Edit groups'), 
     
    246247                                'edit_sectors'                                  => $_POST['edit_sectors'] != '' ? 'checked' : '', 
    247248                                'delete_sectors'                                => $_POST['delete_sectors'] != '' ? 'checked' : '', 
    248                                 'manage_wf_sectors'                             => $_POST['manage_wf_sectors'] != '' ? 'checked' : '', 
    249249                                'view_global_sessions'                  => $_POST['view_global_sessions'] != '' ? 'checked' : '', 
    250250                                'view_logs'                                             => $_POST['view_logs'] != '' ? 'checked' : '', 
     
    333333                                $_POST['delete_users']                  = $acl['delete_users']; 
    334334                                $_POST['rename_users']                  = $acl['rename_users']; 
     335                                $_POST['view_users']                    = $acl['view_users']; 
    335336                                $_POST['add_groups']                    = $acl['add_groups']; 
    336337                                $_POST['edit_groups']                   = $acl['edit_groups']; 
     
    352353                                $_POST['view_global_sessions']  = $acl['view_global_sessions']; 
    353354                                $_POST['view_logs']                             = $acl['view_logs']; 
    354                                 $_POST['manage_wf_sectors']             = $acl['manage_wf_sectors']; 
    355355                        } 
    356356                         
     
    450450                                'lang_view_users'                               => lang('View users'), 
    451451                                'lang_rename_user'                              => lang('Rename users'), 
     452                                'lang_view_user'                                => lang('View users'), 
    452453                                'lang_add_groups'                               => lang('Add groups'), 
    453454                                'lang_edit_groups'                              => lang('Edit groups'), 
     
    478479                                'delete_users'                                  => $_POST['delete_users'] != '' ? 'checked' : '', 
    479480                                'rename_users'                                  => $_POST['rename_users'] != '' ? 'checked' : '', 
     481                                'view_users'                                    => $_POST['view_users'] != '' ? 'checked' : '', 
    480482                                'add_groups'                                    => $_POST['add_groups'] != '' ? 'checked' : '', 
    481483                                'edit_groups'                                   => $_POST['edit_groups'] != '' ? 'checked' : '', 
     
    498500                                'view_global_sessions'                  => $_POST['view_global_sessions'] != '' ? 'checked' : '', 
    499501                                'view_logs'                                             => $_POST['view_logs'] != '' ? 'checked' : '', 
    500                                 'manage_wf_sectors'                             => $_POST['manage_wf_sectors'] != '' ? 'checked' : '', 
    501502                                 
    502503                                // Para o update no banco, preciso saber oq foi alterado e para que. 
  • trunk/expressoAdmin1_2/inc/class.uisectors.inc.php

    r2 r32  
    1717                        'add_sector'                                    => True, 
    1818                        'validate_data_sectors_add'             => True, 
     19                        'edit_sector'                                   => True, 
     20                        'validate_data_sectors_edit'    => True, 
    1921                        'delete_sector'                                 => True, 
    2022                        'css'                                                   => True 
     
    113115                                        $p->set_var($var); 
    114116 
     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','&nbsp;'); 
     124                                        } 
     125 
    115126                                        if ($can_delete) 
    116127                                        { 
     
    168179                        // Seta variaveis utilizadas pelo tpl. 
    169180                        $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' : '', 
    175187                                 
    176                                 'lang_add'                                      => lang('Add'), 
    177                                 'lang_save'                             => lang('Save'), 
    178                                 'lang_back'                             => lang('Back'), 
    179                                 'lang_context'                  => lang('Context'), 
     188                                'lang_add'                      => lang('Add'), 
     189                                'lang_save'                     => lang('Save'), 
     190                                'lang_back'                     => lang('Back'), 
     191                                'lang_context'          => lang('Context'), 
    180192                                '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>", 
    182195                        ); 
    183196                        $p->set_var($var); 
    184197 
    185198                        $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'); 
    186255                } 
    187256                 
     
    211280                        ExecMethod('expressoAdmin1_2.bosectors.create_sector'); 
    212281                } 
    213                  
     282 
    214283                function delete_sector() 
    215284                { 
     
    242311                         
    243312                        // Get users of sector 
    244                         $sector_users                   = $this->so->get_sector_users($_GET['context']); 
     313                        $sector_users           = $this->so->get_sector_users($_GET['context']); 
    245314                        $sector_groups          = $this->so->get_sector_groups($_GET['context']); 
    246315                        $sector_subsectors      = $this->so->get_sector_subsectors($_GET['context']); 
  • trunk/expressoAdmin1_2/inc/class.user.inc.php

    r30 r32  
    235235                        $diff = array_diff($new_values, $old_values); 
    236236                         
     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                         
    237254                        // Verifica o acesso do gerente 
    238255                        if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) 
  • trunk/expressoAdmin1_2/js/jscode/users.js

    r27 r32  
    199199} 
    200200 
    201  
     201/* 
    202202function get_sectors(organization, user_context, user_sector) 
    203203{ 
     
    246246        cExecute ('$this.db_functions.get_sectors&organization='+organization, handler_get_sectors); 
    247247} 
    248          
     248*/ 
     249 
    249250function get_available_groups(context) 
    250251{ 
  • trunk/expressoAdmin1_2/templates/default/accounts_form.tpl

    r27 r32  
    4242                <tr bgcolor={row_on}> 
    4343                        <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> 
    4545                </tr> 
    4646                                                         
     
    8585                        <td rowspan="4" width="35%"> 
    8686                                <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> 
    8888                                <input type="checkbox" {disabled_delete_photo} {disabled} name="delete_photo" value="1">Deletar foto 
    8989                        </td> 
     
    316316                </td> 
    317317                <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}');"> 
    319319                </td> 
    320320        </tr> 
  • trunk/expressoAdmin1_2/templates/default/index.tpl

    r27 r32  
    3535        <tr style={display_samba_suport}> 
    3636                <td width="1%" align="center"> 
    37                         <img src='./templates/default/images/computer.png'> 
     37                        <img src='./templates/default/images/samba.png'> 
    3838                </td> 
    3939                <td> 
  • trunk/expressoAdmin1_2/templates/default/managers_form.tpl

    r27 r32  
    7474                                                </tr> 
    7575                                                <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'> 
    7680                                                        <td>{lang_change_user_password}:</td> 
    7781                                                        <td><input type="checkbox" name="change_users_password" value="128" {change_users_password}></td> 
    7882                                                </tr> 
    79                                                 <tr bgcolor="{color_font2}" align='right'> 
     83                                                <tr bgcolor="{color_font1}" align='right'> 
    8084                                                        <td>{lang_change_users_quote}:</td> 
    8185                                                        <td><input type="checkbox" name="change_users_quote" value="262144" {change_users_quote}></td> 
    8286                                                </tr> 
    83                                                 <tr bgcolor="{color_font1}" align='right'> 
     87                                                <tr bgcolor="{color_font2}" align='right'> 
    8488                                                        <td>{lang_set_user_default_password}:</td> 
    8589                                                        <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  
    2121   <td>{header_name}</td> 
    2222   <td>{lang_add_sub_sectors}</td> 
     23   <td>{header_edit}</td> 
    2324   <td>{header_delete}</td> 
    2425  </tr> 
     
    3132  <td>{sector_name}</td> 
    3233  <td width="25%">{add_link}</td> 
     34  <td width="5%">{edit_link}</td> 
    3335  <td width="5%">{delete_link}</td> 
    3436 </tr> 
  • trunk/expressoAdmin1_2/templates/default/sectors_form.tpl

    r2 r32  
    1010        <form method="POST" action="{action}"> 
    1111                <tr>   
    12                         <td align="right"> 
     12                        <td> 
    1313                                {lang_sector_name}: 
    14                         <input type="text" autocomplete="off" name="sector" value={sector}> 
    1514                        </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"> 
    1729                        <input type="submit" name="button_submit" value={lang_save}> 
    1830                        <input type="button" value="{lang_back}" onClick="document.location.href='{back_url}'"> 
  • trunk/help/index.html

    r29 r32  
    11<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> 
    2214</html> 
  • trunk/instant_messenger/docs/change_log.txt

    r27 r32  
    151523/05/2007 [0.001] 
    1616- 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  
    11<?php 
    22        /************************************************************ 
    3          *      Classe Jabber - Expresso                                                                * 
     3         *      Classe Jabber - Expresso                                                                                * 
    44         *  ------------------------------------------------------- *   
    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  * 
     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  * 
    88         ************************************************************/ 
    99 
     
    1212        private $socket; 
    1313                 
    14         protected final function open($pRemoteSocket, $pTimeOut = 1, $pBlockingMode = 0 ) 
     14        protected final function open($pRemoteSocket, $pTimeOut = 1, $pBlockingMode = 1 ) 
    1515        { 
    1616                if ( ($this->socket = stream_socket_client($pRemoteSocket, $errno, $errstr)) ) 
     
    1818         //$this->socket = stream_socket_client($pRemoteSocket, $errno, $errstr);//, 1, STREAM_CLIENT_CONNECT+STREAM_CLIENT_PERSISTENT); 
    1919         //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          
    2223         return true; 
    2324      } 
  • trunk/instant_messenger/inc/class.Ujabber.inc.php

    r29 r32  
    2222         
    2323        private $jid = false; 
     24        private $email = ""; 
     25        private $contacts = ""; 
    2426         
    2527        private $log_error_file = 'erro.log'; 
     
    3638                 
    3739                parent :: __construct($this->jid, $this->password, $this->port); 
    38  
     40                 
    3941        } 
    4042         
     
    5961         
    6062                // VCARD - PESSOAL 
    61  
    6263                $VCARD_P = $this->getVcard($this->username."@".$this->server); 
    6364                 
    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); 
    7375                natcasesort($group_users);               
    7476                $i=1; 
     
    8789                        $VCARD_U = $this->getVcard($aux_jid[0]."@".$this->server); 
    8890                 
    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); 
    98101                        $i++;                                                                            
    99102                } 
    100  
     103                 
    101104                return $group_nusers; 
    102105        } 
     
    113116 
    114117                $this->sendIq('get', 'update1', NULL, NULL, 'jabber:iq:roster'); 
    115         usleep(50000); 
     118                usleep(50000); 
    116119                $result = $this->readSocketFromServer(); 
    117120                 
     
    240243         
    241244        /* 
    242          * GetVcard 
     245         * Vcard 
    243246         */ 
    244247         
     
    250253 
    251254                $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         
    265285                return $array_vcard; 
    266286        } 
     
    268288        function newVcard($pVcard_User) 
    269289        { 
    270                  
    271290                $pVcard = explode(";",$pVcard_User['vcard']); 
    272291                $nid = explode("@",$this->jid); 
    273292                $id = $nid[0]; 
    274293                $xmlVcard = ""; 
    275                  
     294 
    276295                // Vcard                         
    277296                $xmlVcard  = "<iq id='$id' type='set'>"; 
     
    326345        function SendMessage($pSendMessage) 
    327346        { 
    328                 //$this->presence(); 
    329347                $to = $pSendMessage['to']; 
    330348                $type = "normal"; 
     
    392410        $result = array(); 
    393411                $this->sendIq('get',$id,$pJid,NULL,'jabber:iq:last'); 
    394         usleep(50000); 
    395  
     412                 
     413                usleep(50000); 
    396414                $result = $this->readSocketFromServer(); 
    397  
     415                 
    398416                $time_offline = $result['iq'][0]['#']['query'][0]['@']['seconds']; 
    399417                return $this->time_off_line($time_offline); 
     
    457475                return ($to) ? $this->presence("unsubscribe", $to) : FALSE; 
    458476        } 
     477 
    459478// TESTE  
    460479 
  • trunk/instant_messenger/inc/class.contacts_im.inc.php

    r27 r32  
    1414                $this->db_user = new db_im();            
    1515        } 
     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        } 
    1674                 
    1775        function list_contacts($param) 
    1876        { 
     77                $result_users = array(); 
    1978                $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(); 
    3281                 
    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++; 
    5787                        } 
    5888                } 
    5989 
    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; 
    7192                else 
    7293                        return 0; 
  • trunk/instant_messenger/inc/class.ldap_im.inc.php

    r27 r32  
    1414                $this->user             = $_SESSION['phpgw_info']['instant_messenger']['user_ldap_jabber']; 
    1515                $this->password         = $_SESSION['phpgw_info']['instant_messenger']['password_ldap_jabber']; 
    16                 $this->connect_ldap(false); 
     16                $this->connect_ldap(true); 
    1717        } 
    1818         
     
    2828                ldap_set_option($this->conn, LDAP_OPT_REFERRALS, $refer); 
    2929                if(trim($this->user) != "") 
    30                         ldap_bind($this->conn,$this->user,$this->password); 
     30                        @ldap_bind($this->conn,$this->user,$this->password); 
    3131                else             
    32                         ldap_bind($this->conn); 
     32                        @ldap_bind($this->conn); 
    3333        } 
    3434         
     
    7272        } 
    7373         
    74         function list_users_ldap($orgLdap = false,$type,$uid) 
     74        function list_users_ldap($filter) 
    7575        { 
    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); 
    87112                } 
    88113                 
    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; 
    93129                } 
    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; 
    100131 
    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; 
    121132        } 
    122133         
     
    134145                foreach($entry as $tmp){ 
    135146                        if($tmp['ou'][0] != ""){ 
    136                                 $result_org[$i]['ou'] = $tmp['ou'][0]; 
     147                                $result_org[$i] = $tmp['ou'][0]; 
    137148                                $i++; 
    138149                        } 
    139150                } 
     151                 
     152                sort($result_org); 
     153 
    140154                return $result_org; 
    141155        } 
     
    144158        { 
    145159                $uid = $user['uid']; 
     160                $filter = "(uid=".$uid.")"; 
    146161                $i= 0; 
    147162                 
    148                 $entry = $this->list_users_ldap(false,"uid",$uid); 
     163                $entry = $this->list_users_ldap($filter); 
    149164                 
    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                } 
    158170        } 
    159171} 
  • trunk/instant_messenger/index.php

    r21 r32  
    2121         
    2222        // 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']; 
    2425        $_SESSION['phpgw_info']['instant_messenger']['passwd']                        = $GLOBALS['phpgw_info']['user']['passwd']; 
     26        $_SESSION['phpgw_info']['instant_messenger']['email']                         = $GLOBALS['phpgw_info']['user']['email']; 
    2527        $_SESSION['phpgw_info']['instant_messenger']['name_jabber']           = $GLOBALS['phpgw_info']['server']['name_jabber']; 
    2628        $_SESSION['phpgw_info']['instant_messenger']['port_jabber']           = $GLOBALS['phpgw_info']['server']['port_jabber']; 
  • trunk/instant_messenger/index2.php

    r27 r32  
    1212 
    1313$_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']; 
    1415$_SESSION['phpgw_info']['instant_messenger']['passwd']                    = $GLOBALS['phpgw_info']['user']['passwd']; 
     16$_SESSION['phpgw_info']['instant_messenger']['email']                        = $GLOBALS['phpgw_info']['user']['email']; 
    1517$_SESSION['phpgw_info']['instant_messenger']['name_jabber']               = $GLOBALS['phpgw_info']['server']['name_jabber']; 
    1618$_SESSION['phpgw_info']['instant_messenger']['port_jabber']               = $GLOBALS['phpgw_info']['server']['port_jabber']; 
  • trunk/instant_messenger/js/im_functions.js

    r27 r32  
    306306                                        { 
    307307                                                if( jid == IM.array_users[j].jid ){ 
    308                                                         nickname = IM.array_users[j].VCARD_NICKNAME; 
     308                                                        nickname = decodeURI(IM.array_users[j].VCARD_NICKNAME); 
    309309                                                } 
    310310                                        } 
     
    312312                        if ( window_message ) 
    313313                        { 
    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>&nbsp;' + IM.get_lang('speak') + ':<br/> ' + _this.emotions_icons(body_message) + '<br/><br/>'; 
    315315                       if ( windowItems[jid].state != WINDOW_STATE_REGULAR && windowItems[jid].state != WINDOW_STATE_MAXIMIZED ) 
    316316                          im_win.showWindowItem(jid); 
     
    320320                           im_win.open_chat(jid); 
    321321                           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>&nbsp;' + IM.get_lang('speak') + ':<br/> ' + _this.emotions_icons(body_message) + '<br/><br/>'; 
    323323                        } 
    324324                                } 
     
    545545            form_pref += "<dt><a href='javascript:void(0)' onclick='javascript:Preferences.vCardLoad()'>"; 
    546546            form_pref += "<img src="+img_menu.src+">&nbsp;"+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+">&nbsp;"+IM.get_lang('preferences')+"</a></dt>"; 
    547549            form_pref += "</dl>"; 
    548550         im_menu_action.menu(pElement, form_pref); 
  • trunk/instant_messenger/js/im_preferences.js

    r27 r32  
    2929                         
    3030                        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); 
    3232                                select_org[select_org.length] = options; 
    3333                        } 
     
    6262                        if( data.length > 0 ){ 
    6363                                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                                        } 
    6668                                } 
    6769                        } 
     
    388390         
    389391   /* 
     392        * Preferências do Usuário 
     393        */ 
     394 
     395        Preferences.prototype.yourPreferences = function() 
     396        { 
     397 
     398                //Templates.yourPreferences(); 
     399         
     400        } 
     401         
     402   /* 
    390403    * Tela de permissão para novos contatos 
    391404    */   
  • trunk/instant_messenger/js/im_templates.js

    r27 r32  
    365365        }                
    366366         
     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 
    367401        //Templates 
    368402        var Templates = new Templates(); 
  • trunk/instant_messenger/js/im_win.js

    r29 r32  
    905905         else 
    906906            document.title = "......................"; 
    907  
     907          
     908         //this.Mod_Notification(); 
     909                  
    908910         if ( newMessageTimer ) 
    909911            clearTimeout(newMessageTimer); 
     
    915917      } 
    916918       
     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 
    917947   }, 
    918948 
  • trunk/phpgwapi/inc/class.auth_ldap.inc.php

    r2 r32  
    155155                                return false; 
    156156                        } 
    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; 
    159159                } 
    160160 
  • trunk/preferences/changepassword.php

    r2 r32  
    2020        include('../header.inc.php'); 
    2121 
     22        $a_passwd   = $_POST['a_passwd']; 
    2223        $n_passwd   = $_POST['n_passwd']; 
    2324        $n_passwd_2 = $_POST['n_passwd_2']; 
     
    3233                'form' => 'changepassword.tpl' 
    3334        )); 
     35        $GLOBALS['phpgw']->template->set_var('lang_enter_actual_password',lang('Enter your actual password')); 
    3436        $GLOBALS['phpgw']->template->set_var('lang_enter_password',lang('Enter your new password')); 
    3537        $GLOBALS['phpgw']->template->set_var('lang_reenter_password',lang('Re-enter your password')); 
     
    4648        if ($_POST['change']) 
    4749        { 
     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 
    4855                if ($n_passwd != $n_passwd_2) 
    4956                { 
     
    5562                        $errors[] = lang('You must enter a password'); 
    5663                } 
     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; 
    5771 
     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                 
    5889                if(is_array($errors)) 
    5990                { 
  • trunk/preferences/templates/default/changepassword.tpl

    r2 r32  
    55   <form method="POST" action="{form_action}"> 
    66    <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> 
    715     <tr> 
    816       <td> 
Note: See TracChangeset for help on using the changeset viewer.