Ignore:
Timestamp:
10/24/08 14:52:37 (16 years ago)
Author:
eduardoalex
Message:

Adição da funcionalidade Geração automática de login.

Ao criar um usuário, existe a opção de o login ser criado automaticamente
pelo expresso, a partir de um algoritmo existente. Esses algoritmos deverão
estar descritos em classes que implementem a interface login do módulo
expressoAdmin. O nome das classes deverão também possuir a seguinte
estrutura: “class.”+”login_”+nome do algoritmo + “.inc.php”.

File:
1 edited

Legend:

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

    r509 r540  
    369369        } 
    370370         
     371        function gera_login($params) { 
     372                $params = unserialize($params['attributes']); 
     373                $context = $GLOBALS['phpgw_info']['server']['ldap_context']; 
     374                $justthese = array("uid"); 
     375                $i=1; 
     376                $login = array("status" => False,"msg" => "Gerador de logins desabilitado"); 
     377                 
     378                if( (isset($this->current_config['expressoAdmin_loginGenScript'])) &&  
     379                                ($this->current_config['expressoAdmin_loginGenScript']!="nenhum")) { 
     380                         
     381                        include_once "if.login.inc.php"; 
     382                        include_once "class.".$this->current_config['expressoAdmin_loginGenScript']. 
     383                                        ".inc.php"; 
     384 
     385                        $classe = new ReflectionClass($this->current_config['expressoAdmin_loginGenScript']); 
     386                                         
     387                        if(!$classe->implementsInterface('login')) { 
     388                                return array("status" => False, "msg" => "A classe geradora de logins não implementa a interface login (Se você for um usuário, contacte o suporte)"); 
     389                        } 
     390 
     391                        $gerador = $classe->newInstance(); 
     392 
     393                        $login = $gerador->gera_login($params["first_name"],$params["second_name"],$this->ldap); 
     394                         
     395                        /* 
     396                                Se o algoritmo gerar um login que já existe, colocamos um número no final do  
     397                                login gerado, resultando em um login não existente 
     398                        */ 
     399                        while(true) { 
     400                                $filter = "(uid=$login)";                
     401                                $search = ldap_search($this->ldap, $context, $filter, $justthese); 
     402                                $entries = ldap_count_entries($this->ldap,$search); 
     403                                if($entries==0) 
     404                                        break; 
     405                                else { 
     406                                        $login.=$i; 
     407                                        $i++; 
     408                                } 
     409                        } 
     410                } 
     411                 
     412                return array('status'=>true,'msg' => $login); 
     413        } 
    371414        function validate_fields_group($params) 
    372415        { 
Note: See TracChangeset for help on using the changeset viewer.