Advertisement
Guest User

Untitled

a guest
Nov 18th, 2016
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.21 KB | None | 0 0
  1. /**
  2. * APIRESTFull::checkLDAPLogin()
  3. * Verifica se o utilizador existe no directório LDAP.
  4. * @param string $username nome do utilizador
  5. * @param string $password senha do utilizador
  6. * @return dados do utilizador, se existir, senão retorna false.
  7. **/
  8. private function checkLDAPLogin(){
  9. //Se não for do tipo POST dá erro
  10. if($this->get_request_method() != "POST")
  11. $this->response('',406);
  12. //Iniciar as classes necessárias para este método
  13. include('configuracoes.php');
  14.  
  15. //Obter valores via POST ou GET
  16. $username=$ClassFuncoes->tornarSegura($this->_request['username']);
  17. $password=$this->_request['password'];
  18. $searchstring="(cn=".$username.")";
  19. $attnames=array("dn","surname","gn","uid","cn","description","telephonenumber","usercontainer","mobile","mail","givenname","title","labeleduri","personaltitle","generationqualifier");
  20.  
  21. $registos = array();
  22. $registo=array();
  23.  
  24. if(!empty($username) && !empty($password)){
  25.  
  26. $ds=ldap_connect($server); //Ligar ao servidor
  27.  
  28. //Se tivermos ligação
  29. if ($ds) {
  30. @$r=ldap_bind($ds, $dn, $pass);
  31. $r=ldap_search($ds,$basedn, $searchstring, $attnames);
  32. $entries = ldap_get_entries($ds, $r);
  33. if($entries["count"]>0){
  34. for ($i=0; $i<$entries["count"]; $i++) {
  35. foreach($attnames as $attname){
  36. if($attname=='dn'){
  37. $dnfinal=$entries[$i][$attname];
  38. @$ldapbind = ldap_bind($ds, $dnfinal,$password);
  39. if($ldapbind){
  40. $nip=explode(":",$entries[0]['labeleduri'][0]);
  41. $nip=$nip[1];
  42. $posto=utf8_encode($entries[0]['personaltitle'][0]);
  43. if($nip==""){
  44. $nip=utf8_encode($entries[0]['description'][0]);
  45. }
  46. if($posto==""){
  47. $posto=utf8_encode($entries[0]['title'][0]);
  48. }
  49. $registo = array('codigo'=>'200',
  50. 'mensagem'=>utf8_encode("Acesso concedido"),
  51. 'dn'=>$dnfinal,
  52. 'nip'=>utf8_encode($nip),
  53. 'posto_espec'=>utf8_encode($entries[0]['title'][0]),
  54. 'posto'=>$posto,
  55. 'nome'=>"".$entries[0]['givenname'][0]." ".$entries[0]['surname'][0]."",
  56. 'username'=>utf8_encode($entries[0]['cn'][0]),
  57. 'email'=>utf8_encode($entries[0]['mail'][0]),
  58. 'telefone'=>utf8_encode($entries[0]['telephonenumber'][0]));
  59. array_push($registos,$registo);
  60. //Tudo OK
  61. $this->response($this->json($registos), 200);
  62. }else{
  63. $registo = array('codigo'=>'401',
  64. 'mensagem'=>utf8_encode("Acesso negado. As credenciais do utilizador estão erradas"));
  65. array_push($registos,$registo);
  66. $this->response($this->json($registos),400);
  67. }
  68. }
  69. }
  70. }
  71. }else{
  72. $registo = array('codigo'=>'400',
  73. 'mensagem'=>utf8_encode("Não foram encontrados utilizadores com esse nome de utilizador"));
  74. array_push($registos,$registo);
  75. $this->response($this->json($registos),400);
  76. }
  77. ldap_close($ds);
  78.  
  79. } else {
  80. $registo = array('codigo'=>'401',
  81. 'mensagem'=>utf8_encode("Acesso negado. Confirme os seus dados de acesso ao LDAP"));
  82. array_push($registos,$registo);
  83. $this->response($this->json($registos),400);
  84. }
  85. } else {
  86. $registo = array('codigo'=>'400',
  87. 'mensagem'=>utf8_encode("Todos os campos são de preenchimento obrigatório"));
  88. array_push($registos,$registo);
  89. $this->response($this->json($registos),400);
  90. }
  91. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement