Changeset 63 for trunk/expressoAdmin1_2


Ignore:
Timestamp:
08/29/07 08:55:50 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

Location:
trunk/expressoAdmin1_2
Files:
12 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/docs/change_log.txt

    r62 r63  
    8787- Corrigido bug ao adicionar email em grupos 
    8888- Corrigido bug ao adicionar atributos samba a um usuários já existente. 
     89 
     9014/08/2007 
     91- Criado aba Informações Corporativas, com os campo employeeNumber, cpf, rg, rgUf 
     92- Melhorado classe user.inc.php. 
  • trunk/expressoAdmin1_2/inc/class.bomanagers.inc.php

    r62 r63  
    3030                        'lid'                                           => $_POST['manager_lid'], 
    3131                        'context'                                       => $_POST['context'], 
     32                         
    3233                        'add_users'                                     => $_POST['add_users'], 
    3334                        'edit_users'                            => $_POST['edit_users'], 
     
    3536                        'rename_users'                          => $_POST['rename_users'], 
    3637                        'view_users'                            => $_POST['view_users'], 
     38                        'manipulate_corporative_information' => $_POST['manipulate_corporative_information'], 
    3739                        'add_groups'                            => $_POST['add_groups'], 
    3840                        'edit_groups'                           => $_POST['edit_groups'], 
     
    4244                        'change_users_quote'            => $_POST['change_users_quote'], 
    4345                        'set_user_default_password'     => $_POST['set_user_default_password'], 
     46                        'empty_user_inbox'                      => $_POST['empty_user_inbox'], 
    4447                        'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'], 
    4548                        'edit_sambadomains'                     => $_POST['edit_sambadomains'], 
     
    5457                        'create_computers'                      => $_POST['create_computers'], 
    5558                        'edit_computers'                        => $_POST['edit_computers'], 
    56                         'delete_computers'                      => $_POST['delete_computers'],                   
     59                        'delete_computers'                      => $_POST['delete_computers'], 
     60                                         
    5761                        'apps'                                          => $_POST['applications_list'] 
    5862                        ); 
     
    6064                        // Soma os niveis de acesso criando uma ACL 
    6165                        $acl = 0; 
    62                         $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users']; 
     66                        $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'] + $manager['manipulate_corporative_information']; 
    6367                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups']; 
    64                         $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; 
     68                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'] + $manager['empty_user_inbox']; 
    6569                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 
    6670                        $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; 
     
    102106                        'lid'                                           => $_POST['manager_lid'], 
    103107                        'context'                                       => $_POST['context'], 
     108                         
    104109                        'add_users'                                     => $_POST['add_users'], 
    105110                        'edit_users'                            => $_POST['edit_users'], 
     
    107112                        'rename_users'                          => $_POST['rename_users'], 
    108113                        'view_users'                            => $_POST['view_users'], 
     114                        'manipulate_corporative_information' => $_POST['manipulate_corporative_information'], 
    109115                        'add_groups'                            => $_POST['add_groups'], 
    110116                        'edit_groups'                           => $_POST['edit_groups'], 
     
    114120                        'change_users_quote'            => $_POST['change_users_quote'], 
    115121                        'set_user_default_password'     => $_POST['set_user_default_password'], 
     122                        'empty_user_inbox'                      => $_POST['empty_user_inbox'], 
    116123                        'edit_sambausers_attributes'=> $_POST['edit_sambausers_attributes'], 
    117124                        'edit_sambadomains'                     => $_POST['edit_sambadomains'], 
     
    127134                        'edit_computers'                        => $_POST['edit_computers'], 
    128135                        'delete_computers'                      => $_POST['delete_computers'], 
     136                         
    129137                        'apps'                                          => $_POST['applications_list'] 
    130138                        ); 
     
    132140                        // Soma os niveis de acesso criando uma ACL 
    133141                        $acl = 0; 
    134                         $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users']; 
     142                        $acl = $acl + $manager['add_users'] + $manager['edit_users'] + $manager['delete_users'] + $manager['rename_users'] + $manager['view_users'] + $manager['manipulate_corporative_information']; 
    135143                        $acl = $acl + $manager['add_groups'] + $manager['edit_groups'] + $manager['delete_groups'] + $manager['edit_email_groups']; 
    136                         $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password']; 
     144                        $acl = $acl + $manager['change_users_password'] + $manager['change_users_quote'] + $manager['set_user_default_password'] + $manager['empty_user_inbox']; 
    137145                        $acl = $acl + $manager['edit_sambausers_attributes'] + $manager['edit_sambadomains']; 
    138146                        $acl = $acl + $manager['add_email_lists'] + $manager['edit_email_lists'] + $manager['delete_email_lists']; 
  • trunk/expressoAdmin1_2/inc/class.functions.inc.php

    r62 r63  
    6666                                                return true; 
    6767                                        break; 
     68                                case manipulate_corporative_information: 
     69                                        if ($array_acl[manipulate_corporative_information]) 
     70                                                return true; 
     71                                        break; 
    6872                                case change_users_password: 
    6973                                        if ($array_acl[change_users_password]) 
     
    7680                                case set_user_default_password: 
    7781                                        if ($array_acl[set_user_default_password]) 
     82                                                return true; 
     83                                        break; 
     84                                case empty_user_inbox: 
     85                                        if (($array_acl[empty_user_inbox]) && ($array_acl[edit_users])) 
    7886                                                return true; 
    7987                                        break; 
     
    186194                 
    187195                // Make a array read humam 
    188                 // Last acl:    33.554.432, 67.108.864 
     196                // Last acl:    33.554.432, 67.108.864, 134.217.728, 134.217.728, 268.435.456 
    189197                function make_array_acl($acl) 
    190198                { 
     
    194202                        $array_acl['rename_users'] = $acl & 8388608; 
    195203                        $array_acl['view_users'] = $acl & 33554432; 
     204                        $array_acl['manipulate_corporative_information'] = $acl & 268435456; 
    196205                        $array_acl['add_groups'] = $acl & 16; 
    197206                        $array_acl['edit_groups'] = $acl & 32; 
     
    201210                        $array_acl['change_users_quote'] = $acl & 262144; 
    202211                        $array_acl['set_user_default_password'] = $acl & 524288; 
     212                        $array_acl['empty_user_inbox'] = $acl & 134217728; 
    203213                        $array_acl['edit_sambausers_attributes'] = $acl & 32768; 
    204214                        $array_acl['edit_sambadomains'] = $acl & 16777216; 
  • trunk/expressoAdmin1_2/inc/class.imap_functions.inc.php

    r62 r63  
    11<?php 
     2 
     3include_once('class.functions.inc.php'); 
    24 
    35class imap_functions 
    46{ 
     7        var $functions; 
    58        var $imap; 
    69        var $imapDelimiter; 
     
    1720                $this->imapDelimiter= $_SESSION['phpgw_info']['expresso']['email_server']['imapDelimiter']; 
    1821                $this->imap             = imap_open('{'.$this->imap_server.':'.$this->imap_port.'/novalidate-cert}', $this->imap_admin, $this->imap_passwd, OP_HALFOPEN); 
     22                $this->functions        = new functions; 
    1923        } 
    2024         
     
    7276                else 
    7377                { 
    74                         $quota['mailquota'] = ($get_quota['limit'] / 1024); 
    75                         $quota['mailquota_used'] = ($get_quota['usage'] / 1024); 
     78                        $quota['mailquota'] = round (($get_quota['limit'] / 1024), 2); 
     79                        $quota['mailquota_used'] = round (($get_quota['usage'] / 1024), 2); 
    7680                } 
    7781                         
     
    116120                return $result; 
    117121        } 
     122         
     123        function empty_inbox($params) 
     124        { 
     125                // Verifica o acesso do gerente 
     126                if (!$this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'empty_user_inbox')) 
     127                { 
     128                        $result['status'] = false; 
     129                        $result['msg'] = 'Você não tem acesso para executar esta operação.'; 
     130                        return $result; 
     131                } 
     132                 
     133                if ($_SESSION['phpgw_info']['expressomail']['email_server']['imapTLSEncryption'] == 'yes') 
     134                { 
     135                        $imap_options = '/tls/novalidate-cert'; 
     136                } 
     137                else 
     138                { 
     139                        $imap_options = '/notls/novalidate-cert'; 
     140                } 
     141 
     142                 
     143                $result['status'] = true; 
     144                $uid = $params['uid']; 
     145                 
     146                $return_setacl = imap_setacl($this->imap, "user" . $this->imapDelimiter . $uid, $this->imap_admin, 'lrswipcda'); 
     147                 
     148                if ($return_setacl) 
     149                { 
     150                        //$mbox_stream = imap_open('{'.$this->imap_server.':'.$this->imap_port.$imap_options.'/user="'.$uid.'"}', $this->imap_admin, $this->imap_passwd); 
     151                        $mbox_stream = imap_open('{'.$this->imap_server.':'.$this->imap_port.$imap_options .'}user'. $this->imapDelimiter . $uid, $this->imap_admin, $this->imap_passwd); 
     152                         
     153                        $check = imap_mailboxmsginfo($mbox_stream); 
     154                        $inbox_size = (string)(round ((($check->Size)/(1024*1024)), 2)); 
     155                         
     156                        $return_imap_delete = imap_delete($mbox_stream,'1:*'); 
     157                        imap_close($mbox_stream, CL_EXPUNGE); 
     158                         
     159                        imap_setacl ($this->imap, "user" . $this->imapDelimiter . $uid, $this->imap_admin, ''); 
     160                         
     161                        if ($return_imap_delete) 
     162                        { 
     163                                $result['inbox_size'] = $inbox_size; 
     164                                 
     165                                $get_user_quota = @imap_get_quotaroot($this->imap,"user" . $this->imapDelimiter . $uid); 
     166                                $result['mailquota_used'] = (string)(round(($get_user_quota['usage']/1024), 2)); 
     167                        } 
     168                        else 
     169                        { 
     170                                $result['status'] = false; 
     171                                $result['msg'] = "Nao foi possivel esvaziar a caixa postal do usuario:\n" . imap_last_error(); 
     172                        } 
     173                } 
     174                else 
     175                { 
     176                        $result['status'] = false; 
     177                        $result['msg'] = "Nao foi possivel modificar a acl do usuario:\n" . imap_last_error(); 
     178                } 
     179                return $result; 
     180        } 
    118181} 
  • trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r62 r63  
    33define('PHPGW_API_INC','../phpgwapi/inc');       
    44include_once(PHPGW_API_INC.'/class.common.inc.php'); 
     5include_once('class.functions.inc.php'); 
    56 
    67class ldap_functions 
     
    89        var $ldap; 
    910        var $current_config; 
     11        var $functions; 
    1012         
    1113        function ldap_functions(){ 
     
    1416                $common = new common(); 
    1517                $this->ldap = $common->ldapConnect(); 
     18                $this->functions = new functions; 
    1619        } 
    1720         
    1821        function validate_fields($params) 
    1922        { 
     23                $result['status'] = true; 
    2024                $params = unserialize($params['attributes']); 
    2125                $type = $params['type']; 
     
    2428                $mail = $params['mail']; 
    2529                $mailalternateaddress = $params['mailalternateaddress']; 
    26  
    27                 $result['status'] = true; 
    28                  
     30                                 
    2931                if ($_SESSION['phpgw_info']['expresso']['global_denied_users'][$uid]) 
    3032                { 
     
    657659                        array_pop($a_tmp); 
    658660                        $result['sambasid'] = implode("-", $a_tmp); 
     661                } 
     662 
     663                // Verifica o acesso do gerente aos atributos corporativos 
     664                if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 
     665                { 
     666                        $result['corporative_information_employeenumber']= $entry[0]['employeenumber'][0]; 
     667                        $result['corporative_information_cpf']                  = $entry[0]['cpf'][0]; 
     668                        $result['corporative_information_rg']                   = $entry[0]['rg'][0]; 
     669                        $result['corporative_information_rguf']                 = $entry[0]['rguf'][0]; 
    659670                } 
    660671                 
  • trunk/expressoAdmin1_2/inc/class.uiaccounts.inc.php

    r62 r63  
    242242                                'display_spam_uid'                              => 'display:none', 
    243243                                'lang_general_information'              => lang('General Information'), 
     244                                'lang_corporative_information'  => lang('Corporative Information'), 
    244245                                'lang_email_config'                             => lang('Email Config'), 
    245246                                'lang_groups_permission'                => lang('Groups Permission'), 
     
    274275                                'ldap_context'                                  => ldap_dn2ufn($GLOBALS['phpgw_info']['server']['ldap_context']), 
    275276                                 
     277                                // Corporative Information 
     278                                'display_corporative_information' => $this->functions->check_acl($manager_lid,'manipulate_corporative_information') ? '' : 'none', 
     279                                'lang_employeenumber'                   => lang('Employee number'), 
     280                                'lang_cpf'                                              => lang('cpf'), 
     281                                'lang_rg'                                               => lang('rg'), 
     282                                'lang_rguf'                                             => lang('rguf'), 
     283                                 
    276284                                //MAIL 
    277285                                'lang_activeemailaccount'               => lang('Active email account'), 
     
    305313                                 
    306314                                //SAMBA ABA 
     315                                'display_samba_suport'                          => $this->functions->check_acl($manager_lid,'edit_sambausers_attributes') ? '' : 'none', 
    307316                                'lang_samba_config'                                     => lang('Samba Config'), 
    308317                                'lang_use_attrs_samba'                          => lang('Use samba attributes'), 
     
    536545                                'display_input_account_lid'             => 'display:none', 
    537546                                'lang_general_information'              => lang('General Information'), 
     547                                'lang_corporative_information'  => lang('Corporative Information'), 
    538548                                'lang_email_config'                             => lang('Email Config'), 
    539549                                'lang_groups_permission'                => lang('Groups Permission'), 
     
    572582                                'phpgwaccountvisible_checked'   => $user_info['phpgwaccountvisible'] == '-1' ? 'CHECKED' : '', 
    573583 
    574                                 //MAIL BORD 
     584                                // Corporative Information 
     585                                'display_corporative_information'=> $this->functions->check_acl($manager_account_lid,'edit_sambausers_attributes') ? '' : 'none', 
     586                                'lang_employeenumber'                   => lang('Employee number'), 
     587                                'lang_cpf'                                              => lang('cpf'), 
     588                                'lang_rg'                                               => lang('rg'), 
     589                                'lang_rguf'                                             => lang('rguf'), 
     590                                'corporative_information_employeenumber' => $user_info['corporative_information_employeenumber'], 
     591                                'corporative_information_cpf'                   => $user_info['corporative_information_cpf'], 
     592                                'corporative_information_rg'                    => $user_info['corporative_information_rg'], 
     593                                'corporative_information_rguf'                  => $user_info['corporative_information_rguf'], 
     594                                 
     595                                //MAIL 
    575596                                'disabled_quota_used'                   => 'disabled', 
    576597                                'lang_activeemailaccount'               => lang('Active email account'), 
  • trunk/expressoAdmin1_2/inc/class.uimanagers.inc.php

    r62 r63  
    207207                                'lang_rename_user'                              => lang('Rename users'), 
    208208                                'lang_view_user'                                => lang('View users'), 
     209                                'lang_manipulate_corporative_information' => lang('Manipulate corporative information'), 
    209210                                'lang_add_groups'                               => lang('Add groups'), 
    210211                                'lang_edit_groups'                              => lang('Edit groups'), 
     
    214215                                'lang_change_users_quote'               => lang('Change users quote'), 
    215216                                'lang_set_user_default_password'=> lang('Set default users password'), 
     217                                'lang_empty_user_inbox'                 => lang('Empty user inbox'), 
    216218                                'lang_edit_sambausers_attributes'=> lang('Edit SAMBA users attributes'), 
    217219                                'lang_edit_sambadomains'                => lang('Edit SAMBA domains'), 
     
    233235                                'add_users'                                     => $_POST['add_users'] != '' ? 'checked' : '', 
    234236                                'edit_users'                                    => $_POST['edit_users'] != '' ? 'checked' : '', 
     237                                'view_users'                                    => $_POST['view_users'] != '' ? 'checked' : '', 
     238                                'manipulate_corporative_information' => $_POST['manipulate_corporative_information'] != '' ? 'checked' : '', 
    235239                                'delete_users'                                  => $_POST['delete_users'] != '' ? 'checked' : '', 
    236240                                'add_groups'                                    => $_POST['add_groups'] != '' ? 'checked' : '', 
     
    335339                                $_POST['rename_users']                  = $acl['rename_users']; 
    336340                                $_POST['view_users']                    = $acl['view_users']; 
     341                                $_POST['manipulate_corporative_information'] = $acl['manipulate_corporative_information']; 
    337342                                $_POST['add_groups']                    = $acl['add_groups']; 
    338343                                $_POST['edit_groups']                   = $acl['edit_groups']; 
     
    342347                                $_POST['change_users_quote']    = $acl['change_users_quote']; 
    343348                                $_POST['set_user_default_password']     = $acl['set_user_default_password']; 
     349                                $_POST['empty_user_inbox']              = $acl['empty_user_inbox']; 
    344350                                $_POST['edit_sambausers_attributes'] = $acl['edit_sambausers_attributes']; 
    345351                                $_POST['edit_sambadomains']     = $acl['edit_sambadomains']; 
     
    453459                                'lang_rename_user'                              => lang('Rename users'), 
    454460                                'lang_view_user'                                => lang('View users'), 
     461                                'lang_manipulate_corporative_information' => lang('Manipulate corporative information'), 
    455462                                'lang_add_groups'                               => lang('Add groups'), 
    456463                                'lang_edit_groups'                              => lang('Edit groups'), 
     
    460467                                'lang_change_users_quote'               => lang('Change users quote'), 
    461468                                'lang_set_user_default_password'=> lang('Set default user password'), 
     469                                'lang_empty_user_inbox'                 => lang('Empty user inbox'), 
    462470                                'lang_edit_sambausers_attributes'=> lang('Edit SAMBA users attributes'), 
    463471                                'lang_edit_sambadomains'                => lang('Edit SAMBA domains'), 
     
    483491                                'rename_users'                                  => $_POST['rename_users'] != '' ? 'checked' : '', 
    484492                                'view_users'                                    => $_POST['view_users'] != '' ? 'checked' : '', 
     493                                'manipulate_corporative_information' => $_POST['manipulate_corporative_information'] != '' ? 'checked' : '', 
    485494                                'add_groups'                                    => $_POST['add_groups'] != '' ? 'checked' : '', 
    486495                                'edit_groups'                                   => $_POST['edit_groups'] != '' ? 'checked' : '', 
     
    490499                                'change_users_quote'                    => $_POST['change_users_quote'] != '' ? 'checked' : '', 
    491500                                'set_user_default_password'             => $_POST['set_user_default_password'] != '' ? 'checked' : '', 
     501                                'empty_user_inbox'                              => $_POST['empty_user_inbox'] != '' ? 'checked' : '', 
    492502                                'edit_sambausers_attributes'    => $_POST['edit_sambausers_attributes'] != '' ? 'checked' : '', 
    493503                                'edit_sambadomains'                             => $_POST['edit_sambadomains'] != '' ? 'checked' : '', 
  • trunk/expressoAdmin1_2/inc/class.user.inc.php

    r62 r63  
    117117                                if (($this->current_config['expressoAdmin_samba_support'] == 'true') && ($params['use_attrs_samba'] == 'on')) 
    118118                                { 
    119                                         //Verifica se o binario para criar as senhas do samba exite. 
    120                                         if (!is_file('/home/expressolivre/mkntpwd')) 
    121                                         { 
    122                                                 $return['status'] = false; 
    123                                                 $return['msg'] .= "O arquivo  binário /home/expressolivre/mkntpwd não exite.\\nEle é necessário para a criação das senhas usadas pelo SAMBA.\\nInforme o administrador ExpressoLivre sobre isto."; 
    124                                         } 
    125                                         else 
    126                                         { 
    127                                                 $user_info['objectClass'][]             = 'sambaSamAccount'; 
    128                                                 $user_info['loginShell']                        = '/bin/bash'; 
    129  
    130                                                 $user_info['sambaSID']                          = $params['sambadomain'] . '-' . ((2 * $id)+1000); 
    131                                                 $user_info['sambaPrimaryGroupSID']      = $params['sambadomain'] . '-' . ((2 * $user_info['gidNumber'])+1001); 
    132  
    133                                                 $user_info['sambaAcctFlags']            = $params['sambaacctflags']; 
    134                          
    135                                                 $user_info['sambaLogonScript']          = $params['sambalogonscript']; 
    136                                                 $user_info['homeDirectory']                     = $params['sambahomedirectory']; 
    137                          
    138                                                 $user_info['sambaLMPassword']           = exec('/home/expressolivre/mkntpwd -L '.$params['password1']); 
    139                                                 $user_info['sambaNTPassword']           = exec('/home/expressolivre/mkntpwd -N '.$params['password1']); 
    140                                                 $user_info['sambaPasswordHistory']      = '0000000000000000000000000000000000000000000000000000000000000000'; 
    141                          
    142                                                 $user_info['sambaPwdCanChange']         = strtotime("now"); 
    143                                                 $user_info['sambaPwdLastSet']           = strtotime("now"); 
    144                                                 $user_info['sambaPwdMustChange']        = '2147483647'; 
    145                                         } 
    146                                 } 
     119                                        // Verifica o acesso do gerente aos atributos samba 
     120                                        if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_sambausers_attributes')) 
     121                                        { 
     122                                                //Verifica se o binario para criar as senhas do samba exite. 
     123                                                if (!is_file('/home/expressolivre/mkntpwd')) 
     124                                                { 
     125                                                        $return['status'] = false; 
     126                                                        $return['msg'] .= "O arquivo  binário /home/expressolivre/mkntpwd não exite.\\nEle é necessário para a criação das senhas usadas pelo SAMBA.\\nInforme o administrador ExpressoLivre sobre isto."; 
     127                                                } 
     128                                                else 
     129                                                { 
     130                                                        $user_info['objectClass'][]             = 'sambaSamAccount'; 
     131                                                        $user_info['loginShell']                        = '/bin/bash'; 
     132         
     133                                                        $user_info['sambaSID']                          = $params['sambadomain'] . '-' . ((2 * $id)+1000); 
     134                                                        $user_info['sambaPrimaryGroupSID']      = $params['sambadomain'] . '-' . ((2 * $user_info['gidNumber'])+1001); 
     135 
     136                                                        $user_info['sambaAcctFlags']            = $params['sambaacctflags']; 
     137                         
     138                                                        $user_info['sambaLogonScript']          = $params['sambalogonscript']; 
     139                                                        $user_info['homeDirectory']                     = $params['sambahomedirectory']; 
     140                         
     141                                                        $user_info['sambaLMPassword']           = exec('/home/expressolivre/mkntpwd -L '.$params['password1']); 
     142                                                        $user_info['sambaNTPassword']           = exec('/home/expressolivre/mkntpwd -N '.$params['password1']); 
     143                                                        $user_info['sambaPasswordHistory']      = '0000000000000000000000000000000000000000000000000000000000000000'; 
     144                         
     145                                                        $user_info['sambaPwdCanChange']         = strtotime("now"); 
     146                                                        $user_info['sambaPwdLastSet']           = strtotime("now"); 
     147                                                        $user_info['sambaPwdMustChange']        = '2147483647'; 
     148                                                } 
     149                                        } 
     150                                } 
     151                                 
     152                                // Verifica o acesso do gerente aos atributos corporativos 
     153                                if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 
     154                                { 
     155                                        foreach ($params as $atribute=>$value) 
     156                                        { 
     157                                                $pos = strrpos($atribute, 'corporative_information_'); 
     158                                                if ($pos !== false) 
     159                                                { 
     160                                                        if ($params[$atribute]) 
     161                                                        { 
     162                                                                $ldap_atribute = str_replace("corporative_information_", "", $atribute); 
     163                                                                $user_info[$ldap_atribute] = $params[$atribute]; 
     164                                                        } 
     165                                                } 
     166                                        } 
     167                                } 
     168                                 
    147169                                $result = $this->ldap_functions->ldap_add_entry($dn, $user_info); 
    148170                                if (!$result['status']) 
     
    239261                        $old_values = $this->get_user_info($new_values['uidnumber'], $new_values['manager_context']); 
    240262                        $dn = 'uid=' . $old_values['uid'] . ',' . strtolower($old_values['context']); 
    241                          
     263 
    242264                        $diff = array_diff($new_values, $old_values); 
    243                          
     265 
    244266                        $manager_account_lid = $_SESSION['phpgw_session']['session_lid']; 
    245267                        if ((!$this->functions->check_acl($manager_account_lid,'edit_users')) && 
     
    254276 
    255277                        // Verifica o acesso do gerente 
    256                         if (!$this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) 
    257                         { 
    258                                  
    259                         } 
    260                          
    261                         // Verifica o acesso do gerente 
    262278                        if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) 
    263279                        { 
     
    293309                                        $ldap_mod_replace['sn'] = $new_values['sn']; 
    294310                                        $ldap_mod_replace['cn'] = $new_values['givenname'] . ' ' . $new_values['sn']; 
    295                                         $this->db_functions->write_log("alterado sn do usuario",'',$dn,'',''); 
     311                                        $this->db_functions->write_log("altera$ldap_mod_do sn do usuario",'',$dn,'',''); 
    296312                                } 
    297313                                if ($diff['mail']) 
     
    349365                                } 
    350366                        } 
    351  
     367                         
     368                        // REPLACE, ADD & REMOVE COPORATIVEs ATRIBUTES 
     369                        // Verifica o acesso do gerente aos atributos corporativos 
     370                        if ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'manipulate_corporative_information')) 
     371                        { 
     372                                foreach ($new_values as $atribute=>$value) 
     373                                { 
     374                                        $pos = strrpos($atribute, 'corporative_information_'); 
     375                                        if ($pos !== false) 
     376                                        { 
     377                                                $ldap_atribute = str_replace("corporative_information_", "", $atribute); 
     378                                                // REPLACE ATTRS OF CORPORATIVE 
     379                                                if (($diff[$atribute]) && ($old_values[$atribute] != '')) 
     380                                                { 
     381                                                        $ldap_atribute = str_replace("corporative_information_", "", $atribute); 
     382                                                        $ldap_mod_replace[$ldap_atribute] = $new_values[$atribute]; 
     383                                                        $this->db_functions->write_log("alterado $ldap_atribute do usuario",'',$dn,'',''); 
     384                                                } 
     385                                                //ADD ATTRS OF CORPORATIVE 
     386                                                elseif (($old_values[$atribute] == '') && ($new_values[$atribute] != '')) 
     387                                                { 
     388                                                        $ldap_add[$ldap_atribute] = $new_values[$atribute]; 
     389                                                        $this->db_functions->write_log("adicionado $ldap_atribute ao usuario",'',$dn,'',''); 
     390                                                } 
     391                                                //REMOVE ATTRS OF CORPORATIVE 
     392                                                elseif (($old_values[$atribute] != '') && ($new_values[$atribute] == '')) 
     393                                                { 
     394                                                        $ldap_remove[$ldap_atribute] = array(); 
     395                                                        $this->db_functions->write_log("removido $ldap_atribute do usuario",'',$dn,'','');       
     396                                                } 
     397                                        } 
     398                                } 
     399                        } 
     400                         
    352401                        //Suporte ao SAMBA 
    353402                        if ( ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) ||  
     
    512561                                } 
    513562                        } 
    514                          
     563 
    515564                        if ( ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_users')) ||  
    516565                             ($this->functions->check_acl($_SESSION['phpgw_session']['session_lid'], 'edit_sambausers_attributes')) ) 
     
    640689                        if (count($ldap_remove)) 
    641690                        { 
    642                                  
    643691                                $result = $this->ldap_functions->remove_user_attributes($dn, $ldap_remove); 
    644692                                if (!$result['status']) 
     
    727775                        return $return; 
    728776                }                
    729                  
    730777                 
    731778                function get_user_info($uidnumber, $context) 
     
    10761123                        } 
    10771124                } 
     1125                 
     1126                function write_log_from_ajax($params) 
     1127                { 
     1128                        $this->db_functions->write_log($params['_action'],'',$params['userinfo'],'',''); 
     1129                        return true; 
     1130                } 
    10781131        } 
    10791132?> 
  • trunk/expressoAdmin1_2/js/jscode/users.js

    r62 r63  
    4141                return; 
    4242        } 
    43  
     43         
     44        // Corporative Information 
     45        if (document.forms[0].corporative_information_employeenumber.value != "") 
     46        { 
     47                var re_employeenumber = /^([0-9])+$/; 
     48                 
     49                if(!re_employeenumber.test(document.forms[0].corporative_information_employeenumber.value)) 
     50                { 
     51                        alert('Campo matrícula contém caracteres não permitidos. Somente números são permitidos.'); 
     52                        document.forms[0].corporative_information_employeenumber.focus(); 
     53                        return; 
     54                } 
     55        } 
     56 
     57        if (document.forms[0].corporative_information_cpf.value != "") 
     58        { 
     59                var re_cpf = /^([0-9])+$/; 
     60 
     61                if(!re_cpf.test(document.forms[0].corporative_information_cpf.value)) 
     62                { 
     63                        alert('Campo cpf contém caracteres não permitidos. Somente números são permitidos'); 
     64                        document.forms[0].corporative_information_employeenumber.focus(); 
     65                        return; 
     66                } 
     67         
     68                if (! validarCPF(document.forms[0].corporative_information_cpf.value) ) 
     69                { 
     70                        alert("Campo CPF invalido."); 
     71                        document.forms[0].corporative_information_cpf.focus(); 
     72                        return; 
     73                } 
     74        } 
     75         
    4476        //MAIL 
    4577        document.forms[0].mail.value = document.forms[0].mail.value.toLowerCase(); 
     
    606638        } 
    607639} 
     640 
     641function empty_inbox(uid) 
     642{ 
     643        var action = "Limpado INBOX do usuario"; 
     644        var handler_write_log = function(){} 
     645        var handler_empty_inbox = function(data) 
     646        { 
     647                if (!data.status) 
     648                        alert(data.msg); 
     649                else{ 
     650                        cExecute ('$this.user.write_log_from_ajax&_action='+action+'&userinfo='+uid, handler_write_log); 
     651                        alert("Esvaziados '" + data.inbox_size + "' MB da caixa postal do usuário"); 
     652                        document.getElementById('mailquota_used').value = data.mailquota_used; 
     653                } 
     654        } 
     655        cExecute ('$this.imap_functions.empty_inbox&uid='+uid, handler_empty_inbox); 
     656} 
     657 
     658function validarCPF(cpf) 
     659{ 
     660        if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || 
     661                cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || 
     662                cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || 
     663                cpf == "88888888888" || cpf == "99999999999"){ 
     664          return false; 
     665   } 
     666 
     667        soma = 0; 
     668        for(i = 0; i < 9; i++) 
     669                soma += parseInt(cpf.charAt(i)) * (10 - i); 
     670        resto = 11 - (soma % 11); 
     671        if(resto == 10 || resto == 11) 
     672                resto = 0; 
     673        if(resto != parseInt(cpf.charAt(9))) 
     674        { 
     675                return false; 
     676        } 
     677         
     678        soma = 0; 
     679        for(i = 0; i < 10; i ++) 
     680                soma += parseInt(cpf.charAt(i)) * (11 - i); 
     681        resto = 11 - (soma % 11); 
     682        if(resto == 10 || resto == 11) 
     683                resto = 0; 
     684        if(resto != parseInt(cpf.charAt(10))){ 
     685                return false; 
     686        } 
     687        return true; 
     688} 
  • trunk/expressoAdmin1_2/templates/default/accounts_form.tpl

    r62 r63  
    22 
    33<script type="text/javascript"> 
    4 var tab = new Tabs(6,'activetab','inactivetab','tab','tabcontent','','','tabpage'); 
     4var tab = new Tabs(7,'activetab','inactivetab','tab','tabcontent','','','tabpage'); 
    55function initAll() 
    66{ 
     
    2828        <tr> 
    2929                <th id="tab1" class="activetab" onclick="javascript:tab.display(1);"><a href="#" tabindex="0" accesskey="1" onfocus="tab.display(1);" onclick="tab.display(1); return(false);">{lang_general_information}</a></th> 
    30                 <th id="tab2" class="activetab" onclick="javascript:tab.display(2);"><a href="#" tabindex="0" accesskey="2" onfocus="tab.display(2);" onclick="tab.display(2); return(false);">{lang_email_config}</a></th> 
    31                 <th id="tab3" class="activetab" onclick="javascript:tab.display(3);"><a href="#" tabindex="0" accesskey="3" onfocus="tab.display(3);" onclick="tab.display(3); return(false);">{lang_groups_permission}</a></th> 
    32                 <th id="tab4" class="activetab" onclick="javascript:tab.display(4);"><a href="#" tabindex="0" accesskey="4" onfocus="tab.display(4);" onclick="tab.display(4); return(false);">{lang_lists_permission}</a></th> 
    33                 <th id="tab5" class="activetab" onclick="javascript:tab.display(5);"><a href="#" tabindex="0" accesskey="5" onfocus="tab.display(5);" onclick="tab.display(5); return(false);">{lang_aplication_permission}</a></th> 
    34                 <th style="{display_samba_suport}" id="tab6" class="activetab" onclick="javascript:tab.display(6);"><a href="#" tabindex="0" accesskey="6" onfocus="tab.display(6);" onclick="tab.display(6); return(false);">{lang_samba_config}</a></th> 
     30                <th id="tab2" class="activetab" style="display:{display_corporative_information}"onclick="javascript:tab.display(2);"><a href="#" tabindex="0" accesskey="2" onfocus="tab.display(2);" onclick="tab.display(2); return(false);">{lang_corporative_information}</a></th> 
     31                <th id="tab3" class="activetab" onclick="javascript:tab.display(3);"><a href="#" tabindex="0" accesskey="3" onfocus="tab.display(3);" onclick="tab.display(3); return(false);">{lang_email_config}</a></th> 
     32                <th id="tab4" class="activetab" onclick="javascript:tab.display(4);"><a href="#" tabindex="0" accesskey="4" onfocus="tab.display(4);" onclick="tab.display(4); return(false);">{lang_groups_permission}</a></th> 
     33                <th id="tab5" class="activetab" onclick="javascript:tab.display(5);"><a href="#" tabindex="0" accesskey="5" onfocus="tab.display(5);" onclick="tab.display(5); return(false);">{lang_lists_permission}</a></th> 
     34                <th id="tab6" class="activetab" onclick="javascript:tab.display(6);"><a href="#" tabindex="0" accesskey="6" onfocus="tab.display(6);" onclick="tab.display(6); return(false);">{lang_aplication_permission}</a></th> 
     35                <th id="tab7" class="activetab" style="display:{display_samba_suport}" onclick="javascript:tab.display(7);"><a href="#" tabindex="0" accesskey="7" onfocus="tab.display(7);" onclick="tab.display(7); return(false);">{lang_samba_config}</a></th> 
    3536        </tr> 
    3637</table> 
     
    111112</div> 
    112113 
     114<!-- The code for Corporative Information --> 
     115<div id="tabcontent2" class="inactivetab"> 
     116        <table width="60%" border="0" cellspacing="4" cellpading="0"> 
     117                <tr bgcolor={row_on}> 
     118                        <td>{lang_employeenumber}:</td> 
     119                        <td><input type="text" name="corporative_information_employeenumber" autocomplete="off" value="{corporative_information_employeenumber}" size="30"></td> 
     120                </tr> 
     121                <tr bgcolor={row_off}> 
     122                        <td>{lang_cpf}:</td> 
     123                        <td><input type="text" name="corporative_information_cpf" autocomplete="off" value="{corporative_information_cpf}" size="30"></td> 
     124                </tr> 
     125                <tr bgcolor={row_on}> 
     126                        <td>{lang_rg}:</td> 
     127                        <td><input type="text" name="corporative_information_rg" autocomplete="off" value="{corporative_information_rg}" size="30"></td> 
     128                </tr> 
     129                <tr bgcolor={row_off}> 
     130                        <td>{lang_rguf}:</td> 
     131                        <td><input type="text" name="corporative_information_rguf" autocomplete="off" value="{corporative_information_rguf}" size="30"></td> 
     132                </tr> 
     133        </table> 
     134</div> 
     135 
    113136<!-- The code for Email Config --> 
    114 <div id="tabcontent2" class="inactivetab"> 
     137<div id="tabcontent3" class="inactivetab"> 
    115138        <table width="60%" border="0" cellspacing="4" cellpading="0"> 
    116139                <tr bgcolor={row_off}> 
     
    146169                <tr bgcolor={row_off}> 
    147170                        <td>{lang_email_quota_used}:</td> 
    148                         <td><input type="text" name="mailquota_used" value="{mailquota_used}" disabled size=10></td> 
    149                 </tr> 
    150                                  
     171                        <td><input type="text" name="mailquota_used" id="mailquota_used" value="{mailquota_used}" disabled size=10></td> 
     172                </tr> 
     173 
     174                <tr bgcolor={row_on}> 
     175                        <td><input type='button' {disabled} {disabled_empty_inbox} value='Limpar INBOX do usuário' onclick="javascript:empty_inbox(uid.value);"></td> 
     176                </tr> 
     177 
    151178        </table> 
    152179</div> 
    153180 
    154181<!-- The code for Group --> 
    155 <div id="tabcontent3" class="inactivetab"> 
     182<div id="tabcontent4" class="inactivetab"> 
    156183        <table width="60%" border="0" cellspacing="4" cellpading="0"> 
    157184                <tr bgcolor={row_on}> 
     
    213240 
    214241<!-- The code for lists Email --> 
    215 <div id="tabcontent4" class="inactivetab"> 
     242<div id="tabcontent5" class="inactivetab"> 
    216243        <table width="60%" border="0" cellspacing="4" cellpading="0"> 
    217244                <tr bgcolor={row_on}> 
     
    265292 
    266293<!-- The code for Apps Tab --> 
    267 <div id="tabcontent5" class="inactivetab"> 
     294<div id="tabcontent6" class="inactivetab"> 
    268295        <table id="ea_table_apps" width="80%" border="0" cellspacing="2" cellpading="0"> 
    269296                {apps} 
     
    272299 
    273300<!-- The code for SAMBA --> 
    274 <div id="tabcontent6" class="inactivetab" style="{display_samba_suport}"> 
     301<!--<div id="tabcontent7" class="inactivetab" style="{display_samba_suport}">--> 
     302<div id="tabcontent7" class="inactivetab"> 
    275303        <table width="60%" border="0" cellspacing="4" cellpading="0"> 
    276304                <tr bgcolor={row_on}> 
  • trunk/expressoAdmin1_2/templates/default/managers_form.tpl

    r62 r63  
    7676                                                </tr> 
    7777                                                <tr bgcolor="{color_font1}" align='right'> 
     78                                                        <td>{lang_manipulate_corporative_information}:</td> 
     79                                                        <td><input type="checkbox" name="manipulate_corporative_information" value="268435456" {manipulate_corporative_information}></td> 
     80                                                </tr> 
     81                                                <tr bgcolor="{color_font1}" align='right'> 
    7882                                                        <td>{lang_view_user}:</td> 
    7983                                                        <td><input type="checkbox" name="view_users" value="33554432" {view_users}></td> 
     
    9094                                                        <td>{lang_set_user_default_password}:</td> 
    9195                                                        <td><input type="checkbox" name="set_user_default_password" value="524288" {set_user_default_password}></td> 
     96                                                </tr> 
     97                                                <tr bgcolor="{color_font1}" align='right'> 
     98                                                        <td>{lang_empty_user_inbox}:</td> 
     99                                                        <td><input type="checkbox" name="empty_user_inbox" value="134217728" {empty_user_inbox}></td> 
    92100                                                </tr> 
    93101                                                 
Note: See TracChangeset for help on using the changeset viewer.