Ignore:
Timestamp:
05/07/07 15:06:04 (17 years ago)
Author:
niltonneto
Message:

* empty log message *

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/expressoAdmin1_2/inc/class.ldap_functions.inc.php

    r16 r23  
    2626 
    2727                $result['status'] = true; 
     28                 
     29                if ($_SESSION['phpgw_info']['expresso']['global_denied_users'][$uid]) 
     30                { 
     31                        $result['status'] = false; 
     32                        $result['msg'] = 'Este LOGIN não pode ser usado pois é uma conta de sistema.'; 
     33                        return $result; 
     34                } 
    2835                 
    2936                if (($type == 'create_user') || ($type == 'rename_user'))  
     
    130137                $result['status'] = true; 
    131138                 
     139                if ($_SESSION['phpgw_info']['expresso']['global_denied_groups'][$cn]) 
     140                { 
     141                        $result['status'] = false; 
     142                        $result['msg'] = 'Este nome de grupo não pode ser usado pois é um grupo de sistema.'; 
     143                        return $result; 
     144                } 
     145                 
    132146                // CN 
    133147                $filter = "(&(phpgwAccountType=g)(cn=$cn))"; 
     
    163177                $mail = $params['mail']; 
    164178                $result['status'] = true; 
     179                 
     180                if ($_SESSION['phpgw_info']['expresso']['global_denied_users'][$uid]) 
     181                { 
     182                        $result['status'] = false; 
     183                        $result['msg'] = 'Este LOGIN não pode ser usado pois é uma conta de sistema.'; 
     184                        return $result; 
     185                } 
    165186                 
    166187                // UID 
     
    230251 
    231252        //Busca usuários de um contexto e já retorna as options do select; 
     253        /* 
    232254        function get_available_users_and_maillist($params) 
    233255        { 
     
    264286 
    265287        return $options; 
     288        } 
     289        */ 
     290 
     291        //Busca usuários e listas de um contexto e já retorna as options do select; 
     292        function get_available_users_and_maillist($params) 
     293        { 
     294                $context = $params['context']; 
     295                $recursive = $params['recursive']; 
     296                 
     297                //Usado para retirar a própria lista das possibilidades de inclusão. 
     298                $denied_uidnumber = $params['denied_uidnumber']; 
     299                 
     300                $justthese = array("cn", "uidNumber"); 
     301                $users_filter="(&(phpgwAccountType=u)(!(phpgwAccountVisible=-1)))"; 
     302                $lists_filter = $denied_uidnumber == '' ? "(phpgwAccountType=l)" : "(&(phpgwAccountType=l)(!(uidnumber=$denied_uidnumber)))"; 
     303                 
     304                $users = Array(); 
     305                $lists = Array();                
     306 
     307                if ($recursive == 'true') 
     308                { 
     309                        $lists_search = ldap_search($this->ldap, $context, $lists_filter, $justthese); 
     310                        $users_search = ldap_search($this->ldap, $context, $users_filter, $justthese); 
     311                } 
     312                else 
     313                { 
     314                        $lists_search = ldap_list($this->ldap, $context, $lists_filter, $justthese); 
     315                        $users_search = ldap_list($this->ldap, $context, $users_filter, $justthese); 
     316                } 
     317                 
     318                $lists_entries = ldap_get_entries($this->ldap, $lists_search); 
     319                for ($i=0; $i<$lists_entries["count"]; $i++) 
     320                { 
     321                        $l_tmp[$lists_entries[$i]["uidnumber"][0]] = $lists_entries[$i]["cn"][0]; 
     322                } 
     323                         
     324                if (count($l_tmp)) 
     325                        natcasesort($l_tmp); 
     326                         
     327                $i = 0; 
     328                $lists = array(); 
     329                 
     330                $options .= '<option  value="-1" disabled>------------------------------&nbsp;&nbsp;&nbsp;&nbsp;Listas&nbsp;&nbsp;&nbsp;&nbsp;------------------------------ </option>'."\n";    
     331                if (count($l_tmp)) 
     332                { 
     333                        foreach ($l_tmp as $uidnumber => $cn) 
     334                        { 
     335                                $options .= "<option value=$uidnumber>$cn</option>"; 
     336                        } 
     337                        unset($l_tmp); 
     338                } 
     339                 
     340                $users_entries = ldap_get_entries($this->ldap, $users_search); 
     341                for ($i=0; $i<$users_entries["count"]; $i++) 
     342                { 
     343                        $u_tmp[$users_entries[$i]["uidnumber"][0]] = $users_entries[$i]["cn"][0]; 
     344                } 
     345                         
     346                if (count($u_tmp)) 
     347                        natcasesort($u_tmp); 
     348                         
     349                $i = 0; 
     350                $users = array(); 
     351                 
     352                $options .= '<option  value="-1" disabled>-----------------------------&nbsp;&nbsp;&nbsp;&nbsp;Usuários&nbsp;&nbsp;&nbsp;&nbsp;---------------------------- </option>'."\n";     
     353                if (count($u_tmp)) 
     354                { 
     355                        foreach ($u_tmp as $uidnumber => $cn) 
     356                        { 
     357                                $options .= "<option value=$uidnumber class='line-above'>$cn</option>"; 
     358                        } 
     359                        unset($u_tmp); 
     360                } 
     361                         
     362                return $options; 
    266363        } 
    267364 
     
    322419                { 
    323420                        $result['status'] = false; 
    324                         $result['msg'] = "Erro na funcao ldap_functions->ldap_save_photo ($dn).\\nRetorno do servidor:" . ldap_error($this->ldap); 
     421                        $result['msg'] = "Erro na funcao ldap_functions->ldap_save_photo ($dn).\nRetorno do servidor:" . ldap_error($this->ldap); 
    325422                } 
    326423                 
     
    340437                { 
    341438                        $result['status'] = false; 
    342                         $result['msg'] = "Erro na funcao ldap_functions->ldap_remove_photo ($dn).\\nRetorno do servidor:" . ldap_error($this->ldap); 
     439                        $result['msg'] = "Erro na funcao ldap_functions->ldap_remove_photo ($dn).\nRetorno do servidor:" . ldap_error($this->ldap); 
    343440                } 
    344441                 
     
    365462                { 
    366463                        $result['status'] = false; 
    367                         $result['msg'] = "Erro na funcao ldap_functions->add_user2group ($memberUid).\\nRetorno do servidor:" . ldap_error($this->ldap); 
     464                        $result['msg'] = "Erro na funcao ldap_functions->add_user2group ($memberUid).\nRetorno do servidor:" . ldap_error($this->ldap); 
    368465                } 
    369466                return $result; 
     
    391488                { 
    392489                        $result['status'] = false; 
    393                         $result['msg'] = "Erro na funcao ldap_functions->remove_user2group ($memberUid).\\nRetorno do servidor:" . ldap_error($this->ldap); 
     490                        $result['msg'] = "Erro na funcao ldap_functions->remove_user2group ($memberUid).\nRetorno do servidor:" . ldap_error($this->ldap); 
    394491                } 
    395492                return $result; 
     
    413510                { 
    414511                        $result['status'] = false; 
    415                         $result['msg'] = "Erro na funcao ldap_functions->add_user2maillist ($mail).\\nRetorno do servidor:" . ldap_error($this->ldap); 
    416                 } 
    417                 return $result; 
    418         } 
     512                        $result['msg'] = "Erro na funcao ldap_functions->add_user2maillist ($mail).\nRetorno do servidor:" . ldap_error($this->ldap); 
     513                } 
     514                return $result; 
     515        } 
     516         
     517        function add_user2maillist_scl($dn, $array_emails) 
     518        { 
     519                $attrs['mailSenderAddress'] = $array_emails; 
     520                $res = @ldap_mod_add($this->ldap, $dn, $attrs); 
     521                 
     522                if ($res) 
     523                { 
     524                        $result['status'] = true; 
     525                } 
     526                else 
     527                { 
     528                        $result['status'] = false; 
     529                        $result['msg'] = "Erro na funcao ldap_functions->add_user2maillist_scp ($dn).\n\nRetorno do servidor:" . ldap_error($this->ldap); 
     530                } 
     531                return $result; 
     532        } 
     533 
    419534        function remove_user2maillist($uidNumber, $mail) 
    420535        { 
     
    434549                { 
    435550                        $result['status'] = false; 
    436                         $result['msg'] = "Erro na funcao ldap_functions->remove_user2maillist ($mail).\\nRetorno do servidor:" . ldap_error($this->ldap); 
    437                 } 
    438                 return $result; 
    439         } 
     551                        $result['msg'] = "Erro na funcao ldap_functions->remove_user2maillist ($mail).\n\nRetorno do servidor:" . ldap_error($this->ldap); 
     552                } 
     553                return $result; 
     554        } 
     555 
     556        function remove_user2maillist_scl($dn, $array_emails) 
     557        { 
     558                $attrs['mailSenderAddress'] = $array_emails; 
     559                $res = @ldap_mod_del($this->ldap, $dn, $attrs); 
     560                 
     561                if ($res) 
     562                { 
     563                        $result['status'] = true; 
     564                } 
     565                else 
     566                { 
     567                        $result['status'] = false; 
     568                        $result['msg'] = "Erro na funcao ldap_functions->remove_user2maillist_scp ($dn).\n\nRetorno do servidor:" . ldap_error($this->ldap); 
     569                } 
     570                return $result; 
     571        } 
     572 
    440573        function replace_user2maillists($new_mail, $old_mail) 
    441574        { 
     
    455588                        { 
    456589                                $result['status'] = false; 
    457                                 $result['msg'] = "Erro na funcao ldap_functions->replace_user2maillists ($old_mail).\\nRetorno do servidor:" . ldap_error($this->ldap); 
     590                                $result['msg'] = "Erro na funcao ldap_functions->replace_user2maillists ($old_mail).\nRetorno do servidor:" . ldap_error($this->ldap); 
    458591                        } 
    459592                } 
     
    555688                $result['description']                  = $entry[0]['description'][0]; 
    556689                $result['gidnumber']                    = $entry[0]['gidnumber'][0]; 
     690                $result['phpgwaccountvisible']  = $entry[0]['phpgwaccountvisible'][0]; 
    557691                 
    558692                //MemberUid 
     
    606740                $result['cn']                                   = $entry[0]['cn'][0]; 
    607741                $result['mail']                                 = $entry[0]['mail'][0]; 
    608                 $result['mail']                                 = $entry[0]['mail'][0]; 
    609742                $result['accountStatus']                = $entry[0]['accountstatus'][0]; 
    610743                $result['phpgwAccountVisible']  = $entry[0]['phpgwaccountvisible'][0]; 
     
    613746                for ($i=0; $i<$entry[0]['mailforwardingaddress']['count']; $i++) 
    614747                { 
    615                         $justthese = array("cn", "uidnumber", "uid"); 
     748                        $justthese = array("cn", "uidnumber", "uid", "phpgwaccounttype"); 
    616749                        $filter="(&(|(phpgwAccountType=u)(phpgwAccountType=l))(mail=".$entry[0]['mailforwardingaddress'][$i]."))"; 
    617750                        $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
     
    622755                                $result['members_info'][$user_entry[0]['uidnumber'][0]]['uid'] = $user_entry[0]['uid'][0]; 
    623756                                $result['members_info'][$user_entry[0]['uidnumber'][0]]['cn'] = $user_entry[0]['cn'][0]; 
     757                                $result['members_info'][$user_entry[0]['uidnumber'][0]]['type'] = $user_entry[0]['phpgwaccounttype'][0]; 
    624758                                $result['members_info'][$user_entry[0]['uidnumber'][0]]['mailforwardingaddress'] = $entry[0]['mailforwardingaddress'][$i]; 
    625759                                $result['members'][] = $user_entry[0]['uidnumber'][0]; 
     
    634768                } 
    635769                 
     770                return $result; 
     771        }        
     772 
     773        function get_maillist_scl_info($uidnumber, $context) 
     774        { 
     775                $filter="(&(phpgwAccountType=l)(uidNumber=".$uidnumber."))"; 
     776                $search = ldap_search($this->ldap, $context, $filter); 
     777                $entry = ldap_get_entries($this->ldap, $search); 
     778 
     779                //Pega o dn do setor do usuario. 
     780                $entry[0]['dn'] = strtolower($entry[0]['dn']); 
     781                $sector_dn_array = explode(",", $entry[0]['dn']); 
     782                for($i=1; $i<count($sector_dn_array); $i++) 
     783                        $sector_dn .= $sector_dn_array[$i] . ','; 
     784                //Retira ultimo pipe. 
     785                $sector_dn = substr($sector_dn,0,(strlen($sector_dn) - 1)); 
     786                 
     787                $result['dn']                                           = $entry[0]['dn']; 
     788                $result['context']                                      = $sector_dn; 
     789                $result['uidnumber']                            = $entry[0]['uidnumber'][0]; 
     790                $result['uid']                                          = $entry[0]['uid'][0]; 
     791                $result['cn']                                           = $entry[0]['cn'][0]; 
     792                $result['mail']                                         = $entry[0]['mail'][0]; 
     793                $result['accountStatus']                        = $entry[0]['accountstatus'][0]; 
     794                $result['phpgwAccountVisible']          = $entry[0]['phpgwaccountvisible'][0]; 
     795                $result['accountRestrictive']           = $entry[0]['accountrestrictive'][0]; 
     796                $result['participantCanSendMail']       = $entry[0]['participantcansendmail'][0]; 
     797                 
     798                //Senders 
     799                for ($i=0; $i<$entry[0]['mailsenderaddress']['count']; $i++) 
     800                { 
     801                        $justthese = array("cn", "uidnumber", "uid", "mail"); 
     802                        $filter="(&(phpgwAccountType=u)(mail=".$entry[0]['mailsenderaddress'][$i]."))"; 
     803                        $search = ldap_search($this->ldap, $GLOBALS['phpgw_info']['server']['ldap_context'], $filter, $justthese); 
     804                        $user_entry = ldap_get_entries($this->ldap, $search); 
     805                         
     806                        $result['senders_info'][$user_entry[0]['uidnumber'][0]]['uid'] = $user_entry[0]['uid'][0]; 
     807                        $result['senders_info'][$user_entry[0]['uidnumber'][0]]['cn'] = $user_entry[0]['cn'][0]; 
     808                        $result['senders_info'][$user_entry[0]['uidnumber'][0]]['mail'] = $user_entry[0]['mail'][0]; 
     809                        $result['members'][] = $user_entry[0]['uidnumber'][0]; 
     810                } 
     811 
    636812                return $result; 
    637813        }        
Note: See TracChangeset for help on using the changeset viewer.