PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/includes/user.php

https://bitbucket.org/afriyandi/reporting
PHP | 187 lines | 151 code | 34 blank | 2 comment | 32 complexity | 7d16040d05260417014309505de18ca3 MD5 | raw file
  1. <?php
  2. // copy justified APhe 2012
  3. ?>
  4. <?php
  5. class User extends Get {
  6. public $password;
  7. public $user;
  8. public function __construct() {
  9. parent::__construct();
  10. }
  11. function set_comp() {
  12. $set_comp = "select @mf:=" . $this->user;
  13. mysql_query($set_comp);
  14. }
  15. function get_comp() {
  16. }
  17. function login($user, $pwd, $comp) {
  18. $pwd = md5($pwd);
  19. parent::getLogin($user, $pwd, $comp);
  20. if ($this->user == TRUE) {
  21. parent::getCompFrom($comp, $user);
  22. } else {
  23. return $this->login_session = false;
  24. }
  25. $date = date("Y-m-d H:i:s");
  26. $sql = "insert into loginlog values ('" . $user . "', '" . $date . "' , 0, 0, 0)";
  27. mysql_query($sql) or die(mysql_error());
  28. if ($this->user == true) {
  29. parent::getLevel($user);
  30. $value = rand(strtotime($date), getrandmax());
  31. $session = serialize(array("user" => $user, "comp" => $comp));
  32. $_SESSION[Param::getDabase()["SESSION"]] = $session;
  33. if (isset($_POST["remember"])) {
  34. setcookie(Param::getDabase()["COOKIES"], $value, time() + 3600, $_SERVER["HTTP_HOST"]);
  35. } else {
  36. setcookie(Param::getDabase()["COOKIES"], $value, 0, $_SERVER["HTTP_HOST"]);
  37. }
  38. $sql = "update loginlog set authorize = '1', cookies = '" . $value . "', session = '" . $session . "' where timedate = '" . $date . "'";
  39. mysql_query($sql) or die(mysql_error());
  40. return $this->login_session = true;
  41. } else {
  42. return $this->login_session = false;
  43. }
  44. }
  45. function loged() {
  46. if (!isset($this->login_session)) {
  47. if (isset($_COOKIE[Param::getDabase()["COOKIES"]])) {
  48. $cookies = $_COOKIE[Param::getDabase()["COOKIES"]];
  49. parent::getSession($cookies);
  50. if ($this->login_session == true) {
  51. parent::getLevel($cookies);
  52. parent::getComp($cookies);
  53. }
  54. }
  55. } else {
  56. return $this->login_session;
  57. }
  58. }
  59. function check_uname() {
  60. if (isset($_COOKIE[Param::getDabase()["COOKIES"]])) {
  61. $cookies = $_COOKIE[Param::getDabase()["COOKIES"]];
  62. parent::getUname($cookies);
  63. }
  64. }
  65. function check_user($user) {
  66. foreach ($this->user as $index) {
  67. if ($index["user"] == $user)
  68. return TRUE;
  69. }
  70. return FALSE;
  71. }
  72. function check_available($uname) {
  73. $que = mysql_query("select * from login where login.user = '" . $uname . "' and login.profile = '" . $this->comp . "'");
  74. if (mysql_num_rows($que) != 0) {
  75. return FALSE;
  76. }
  77. return TRUE;
  78. }
  79. function check_password($user, $pwd, $comp) {
  80. parent::getLogin($user, $pwd, $comp);
  81. if ($this->user == 1) {
  82. return TRUE;
  83. } else {
  84. return FALSE;
  85. }
  86. }
  87. function check_newpass($new1, $new2) {
  88. $compare = strcmp(md5($new1), md5($new2));
  89. if ($compare == 0) {
  90. $this->combine($new1, $new2);
  91. if ($this->compare($this->password, $_POST["lpass"]))
  92. return FALSE;
  93. if (!$this->check_strength($this->password)) {
  94. return FALSE;
  95. }
  96. return TRUE;
  97. } else {
  98. return FALSE;
  99. }
  100. }
  101. function compare($new, $old) {
  102. $compare = strcmp($new, $old);
  103. if ($compare == 0) {
  104. return TRUE;
  105. }
  106. return FALSE;
  107. }
  108. function combine($new1, $new2) {
  109. $split = str_split($new1);
  110. $split_again = str_split($new2);
  111. $string = array_replace($split, $split_again);
  112. foreach ($string as $index) {
  113. $this->password = $this->password . $index;
  114. }
  115. return $this->password;
  116. }
  117. function create_user($uname, $pass) {
  118. $que = "INSERT INTO `login` (`user`, `pswd`, `level`, `profile`) VALUES ('" . $uname . "', '" . md5(pass) . "', 'user', " . $this->comp . ")";
  119. mysql_query($que) or die(mysql_error());
  120. }
  121. function changePass($new) {
  122. $que = "UPDATE login SET login.pswd = '" . md5($new) . "'WHERE login.profile = '" . $this->comp . "'";
  123. mysql_query($que) or die(mysql_error());
  124. }
  125. function check_strength($new) {
  126. if (strlen($new) < Param::getDabase()["PASS_LONG"]) {
  127. return FALSE;
  128. }
  129. if (preg_match("/[[:space:]]/", $new)) {
  130. return FALSE;
  131. }
  132. return TRUE;
  133. }
  134. function get_user() {
  135. $que = mysql_query("select login.user from login where login.profile = '" . $this->comp . "' and level <> 'administrator'") or die(mysql_error());
  136. $this->user = $this->fetch($que);
  137. }
  138. function delete_user($user) {
  139. $que = mysql_query("DELETE FROM `login` WHERE `user`='" . $user . "' AND `profile`=" . $this->comp . " LIMIT 1;") or die(mysql_error());
  140. }
  141. //too lazy to modified parent function :p
  142. private function fetch($query) {
  143. $random[] = rand(1, 9999999);
  144. while ($fetch = mysql_fetch_assoc($query)) {
  145. $array[] = $fetch;
  146. }
  147. if (!empty($array))
  148. return $array;
  149. else
  150. return $random;
  151. }
  152. }
  153. ?>