Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- * APIRESTFull::checkLDAPLogin()
- * Verifica se o utilizador existe no directório LDAP.
- * @param string $username nome do utilizador
- * @param string $password senha do utilizador
- * @return dados do utilizador, se existir, senão retorna false.
- **/
- private function checkLDAPLogin(){
- //Se não for do tipo POST dá erro
- if($this->get_request_method() != "POST")
- $this->response('',406);
- //Iniciar as classes necessárias para este método
- include('configuracoes.php');
- //Obter valores via POST ou GET
- $username=$ClassFuncoes->tornarSegura($this->_request['username']);
- $password=$this->_request['password'];
- $searchstring="(cn=".$username.")";
- $attnames=array("dn","surname","gn","uid","cn","description","telephonenumber","usercontainer","mobile","mail","givenname","title","labeleduri","personaltitle","generationqualifier");
- $registos = array();
- $registo=array();
- if(!empty($username) && !empty($password)){
- $ds=ldap_connect($server); //Ligar ao servidor
- //Se tivermos ligação
- if ($ds) {
- @$r=ldap_bind($ds, $dn, $pass);
- $r=ldap_search($ds,$basedn, $searchstring, $attnames);
- $entries = ldap_get_entries($ds, $r);
- if($entries["count"]>0){
- for ($i=0; $i<$entries["count"]; $i++) {
- foreach($attnames as $attname){
- if($attname=='dn'){
- $dnfinal=$entries[$i][$attname];
- @$ldapbind = ldap_bind($ds, $dnfinal,$password);
- if($ldapbind){
- $nip=explode(":",$entries[0]['labeleduri'][0]);
- $nip=$nip[1];
- $posto=utf8_encode($entries[0]['personaltitle'][0]);
- if($nip==""){
- $nip=utf8_encode($entries[0]['description'][0]);
- }
- if($posto==""){
- $posto=utf8_encode($entries[0]['title'][0]);
- }
- $registo = array('codigo'=>'200',
- 'mensagem'=>utf8_encode("Acesso concedido"),
- 'dn'=>$dnfinal,
- 'nip'=>utf8_encode($nip),
- 'posto_espec'=>utf8_encode($entries[0]['title'][0]),
- 'posto'=>$posto,
- 'nome'=>"".$entries[0]['givenname'][0]." ".$entries[0]['surname'][0]."",
- 'username'=>utf8_encode($entries[0]['cn'][0]),
- 'email'=>utf8_encode($entries[0]['mail'][0]),
- 'telefone'=>utf8_encode($entries[0]['telephonenumber'][0]));
- array_push($registos,$registo);
- //Tudo OK
- $this->response($this->json($registos), 200);
- }else{
- $registo = array('codigo'=>'401',
- 'mensagem'=>utf8_encode("Acesso negado. As credenciais do utilizador estão erradas"));
- array_push($registos,$registo);
- $this->response($this->json($registos),400);
- }
- }
- }
- }
- }else{
- $registo = array('codigo'=>'400',
- 'mensagem'=>utf8_encode("Não foram encontrados utilizadores com esse nome de utilizador"));
- array_push($registos,$registo);
- $this->response($this->json($registos),400);
- }
- ldap_close($ds);
- } else {
- $registo = array('codigo'=>'401',
- 'mensagem'=>utf8_encode("Acesso negado. Confirme os seus dados de acesso ao LDAP"));
- array_push($registos,$registo);
- $this->response($this->json($registos),400);
- }
- } else {
- $registo = array('codigo'=>'400',
- 'mensagem'=>utf8_encode("Todos os campos são de preenchimento obrigatório"));
- array_push($registos,$registo);
- $this->response($this->json($registos),400);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement