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

* empty log message *

Location:
trunk/expressoAdmin1_2/inc
Files:
7 edited

Legend:

Unmodified
Added
Removed
  • 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?> 
Note: See TracChangeset for help on using the changeset viewer.