| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- <?php
- class admin_login_model extends Model {
-
-
- public function logmein() {
- $data = $this->escapeArray($_REQUEST);
- if ($_REQUEST['email']!='' && $_REQUEST['pass']!='') {
- // Look the user up by identity only; the password is verified in PHP
- // so we can support hashed passwords (and legacy plaintext during migration).
- $result = $this->query("select * from azonics_admin_users where "
- . "admin_status='1' and "
- . "(admin_email='".$data['email']."' or admin_name='".$data['email']."');");
- if (sizeof($result)>0 && admin_utils::verifyPassword($_REQUEST['pass'], $result[0]->admin_pass)) {
- // Upgrade legacy plaintext passwords to a proper hash on first valid login.
- if (admin_utils::passwordNeedsRehash($result[0]->admin_pass)) {
- $newHash = admin_utils::hashPassword($_REQUEST['pass']);
- $this->execute("update azonics_admin_users set admin_pass='".$this->escapeString($newHash)."' where admin_id='".$result[0]->admin_id."';");
- $result[0]->admin_pass = $newHash;
- }
- $this->execute("update azonics_admin_users set admin_last_ip='".$_SERVER['REMOTE_ADDR']."' where admin_id='".$result[0]->admin_id."';");
- $_SESSION['admin_user'] = $result[0];
- $_SESSION['access_level'] = $result[0]->admin_access_level;
- return true;
- }
- else {
- return false;
- }
- }
- else {
- return false;
- }
- }
-
-
- public function logmeout() {
- $this->query("update azonics_admin_users set admin_status='1' where admin_id='".$_SESSION['admin_user']->admin_id."';");
- $_SESSION['admin_user'] = null;
- }
-
-
- public function passwordReminder() {
- $data = $this->escapeArray($_REQUEST);
- $result = $this->query("select * from azonics_admin_users where admin_email='".$data['email']."' and admin_status='1';");
- if (sizeof($result)>0) {
- // Passwords are stored hashed and can no longer be recovered, so we
- // generate a new temporary password, store it hashed, and return the
- // plaintext value so the caller can e-mail it to the user.
- $tempPass = bin2hex(random_bytes(6));
- $hash = admin_utils::hashPassword($tempPass);
- $this->execute("update azonics_admin_users set admin_pass='".$this->escapeString($hash)."' where admin_id='".$result[0]->admin_id."';");
- $result[0]->admin_pass = $tempPass;
- return $result[0];
- }
- else {
- return false;
- }
- }
-
-
- public function reloadProfile() {
- $result = $this->query("select * from azonics_admin_users where "
- . "admin_id='".$_SESSION['admin_user']->admin_id."' and "
- . "admin_status='1';");
- if (sizeof($result)>0) {
- $_SESSION['admin_user'] = $result[0];
- return true;
- }
- else {
- return false;
- }
- }
-
-
- }
|