Guest User

Untitled

a guest
Feb 8th, 2019
202
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.92 KB | None | 0 0
  1. <?php
  2. require_once(Path::handlerClassPath() . "HandlerInterface.php");
  3. require_once(Path::handlerClassPath() . "Handler.php");
  4. require_once (Path::validationClassPath(). "NetWorkProfileHandler.php");
  5. class LoginHandler extends Handler implements HandlerInterface {
  6.  
  7. private $debugTest = false;
  8. private $profile;
  9.  
  10. public function init(){
  11. $this->profile = new NetWorkProfileHandler();
  12. }
  13. /**
  14. * Authenticates the username and password from dummydb.
  15. * @param String $username
  16. * @param String $password
  17. * @return <b>Boolean</b> - True if username/password match, otherwise false.
  18. */
  19. public function authenticate($username, $password) {
  20. if($this->debugTest){
  21. $stmt = $this->stmt;
  22. $query = "SELECT `username` FROM `dummydb` WHERE `username` = ? AND `password` = ?;";
  23. if($stmt = $this->mysqli->prepare($query)) {
  24. $stmt->bind_param("ss", $username, $password);
  25. $stmt->execute();
  26. $stmt->bind_result($usernameDB);
  27. $stmt->fetch();
  28. if(isset($usernameDB)) {
  29. return true;
  30. }
  31. }
  32. return false;
  33. }
  34. else{
  35. $this->profile->setUsername($username);
  36. $this->profile->setPassword($password);
  37. return $this->profile->IsConnected();
  38. }
  39. }
  40.  
  41. public function getStatus(){
  42. return $this->profile->getStatus();
  43. }
  44.  
  45. /**
  46. * Checks if the username exists in the system database.
  47. * @param String $username
  48. * @return <b>Boolean</b> - True if it exists, otherwise false.
  49. */
  50. public function checkIfUsernameExists($username) {
  51. $stmt = $this->stmt;
  52. $query = "SELECT `employee_username` FROM `employee` WHERE `employee_username` = ?;";
  53.  
  54. if($stmt = $this->mysqli->prepare($query)) {
  55. $stmt->bind_param("s", $username);
  56. $stmt->execute();
  57. $stmt->bind_result($usernameDB);
  58. $stmt->fetch();
  59. if(isset($usernameDB)) {
  60. return true;
  61. }
  62. }
  63. return false;
  64. }
  65. public function createDummyAccount($username, $password, $computerName){
  66. $stmt = $this->stmt;
  67. $query = "INSERT INTO dummydb (`username`, `password`, `computer_name`)
  68. VALUES ('".$username."', '".$password."', '".$computerName."');";
  69. if($stmt = $this->mysqli->prepare($query)) {
  70. $stmt->execute();
  71. return Status::INSERT_SUCCESS;
  72. }
  73. return Status::INSERT_FAIL;
  74. }
  75. }
  76. ?>
  77.  
  78. <?php
  79. class NetWorkProfileHandler{
  80. private $username;
  81. private $password;
  82. private $connected;
  83. private $statusMsg;
  84.  
  85. private function loginProfile(){
  86. if(isset($this->username,$this->password) && !empty($this->password) && !empty($this->username)){
  87. $authUser = $this->username.'@ma.global.ad';
  88. // connect to ldap server
  89. $ldapconn = ldap_connect("ma.global.ad",389) or die("Could not connect to LDAP server.");
  90. if ($ldapconn) {
  91. // binding to ldap server
  92. $ldapbind = @ldap_bind($ldapconn, $authUser, $this->password);
  93.  
  94. // verify binding
  95. if ($ldapbind)//LDAP binding successful
  96. {
  97. $this->connected = true;
  98. $this->statusMsg = 'Connected!';
  99. unset($this->username,$this->password);
  100.  
  101.  
  102.  
  103.  
  104. }
  105. else//LDAP binding failed
  106. {
  107. $this->connected = false;
  108. $this->statusMsg = 'Invalid user/password.';
  109. }
  110.  
  111. }
  112. else {
  113. $this->connected = false;
  114. $this->statusMsg = 'Failed to connect to server.';
  115. }
  116. }
  117. else
  118. {
  119. $this->connected = false;
  120. $this->statusMsg = 'Empty user/password.';
  121. }
  122. }
  123.  
  124.  
  125. public function getStatus()
  126. {
  127. return $this->statusMsg;
  128. }
  129.  
  130. public function IsConnected()
  131. {
  132. $this->loginProfile();
  133. return $this->connected;
  134. }
  135.  
  136. public function setUsername($username)
  137. {
  138. $this->username = $username;
  139. }
  140.  
  141. public function setPassword($password)
  142. {
  143. $this->password = $password;
  144. }
  145. }
  146. ?>
Add Comment
Please, Sign In to add comment