summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGeekologist <Conver@users.noreply.github.com>2016-07-10 16:22:39 +0200
committerGitHub <noreply@github.com>2016-07-10 16:22:39 +0200
commit16388306ed31e98af142eceab5575516fcbdaae7 (patch)
treecf75e7ab7ed2038cee5d2f1ad81f751d09331190
parenta141c41ba2a94ee67ff689aa4eb688d77b41d48a (diff)
parente66a42418632ebd06ffe258a5c22e4d5229dd7f5 (diff)
downloadPHPAuth-16388306ed31e98af142eceab5575516fcbdaae7.zip
PHPAuth-16388306ed31e98af142eceab5575516fcbdaae7.tar.gz
PHPAuth-16388306ed31e98af142eceab5575516fcbdaae7.tar.bz2
Merge pull request #195 from RocketIP/master
Clean code style
-rw-r--r--[-rwxr-xr-x]Auth.php1988
-rw-r--r--[-rwxr-xr-x]Config.php39
-rw-r--r--files/password.php2
-rw-r--r--languages/da_DK.php140
-rw-r--r--languages/de_DE.php1
-rw-r--r--[-rwxr-xr-x]languages/en_GB.php1
-rw-r--r--languages/fa_IR.php3
-rw-r--r--[-rwxr-xr-x]languages/fr_FR.php1
-rw-r--r--languages/gr_GR.php141
-rw-r--r--languages/it_IT.php1
-rw-r--r--languages/nl_BE.php1
-rw-r--r--languages/nl_NL.php1
-rw-r--r--languages/no_NB.php1
-rw-r--r--languages/pt_BR.php1
-rw-r--r--languages/ru_RU.php143
-rw-r--r--[-rwxr-xr-x]languages/se_SE.php1
-rw-r--r--tests/AuthTest.php322
17 files changed, 1407 insertions, 1380 deletions
diff --git a/Auth.php b/Auth.php
index 5dcbcca..ea311df 100755..100644
--- a/Auth.php
+++ b/Auth.php
@@ -5,1243 +5,1291 @@ namespace PHPAuth;
use ZxcvbnPhp\Zxcvbn;
use PHPMailer\PHPMailer\PHPMailer;
-/***
-* Auth class
-* Required PHP 5.4 and above.
-*/
+/**
+ * Auth class
+ * Required PHP 5.4 and above.
+ */
class Auth
{
- protected $dbh;
- public $config;
- public $lang;
+ protected $dbh;
+ public $config;
+ public $lang;
- /***
- * Initiates database connection
- */
-
- public function __construct(\PDO $dbh, $config, $language = "en_GB")
- {
- $this->dbh = $dbh;
- $this->config = $config;
+ /**
+ * Initiates database connection
+ */
+ public function __construct(\PDO $dbh, $config, $language = "en_GB")
+ {
+ $this->dbh = $dbh;
+ $this->config = $config;
if (version_compare(phpversion(), '5.4.0', '<')) {
die('PHP 5.4.0 required for PHPAuth engine!');
}
- if (version_compare(phpversion(), '5.5.0', '<')) {
- require("files/password.php");
- }
-
- // Load language
- require "languages/{$language}.php";
- $this->lang = $lang;
+ if (version_compare(phpversion(), '5.5.0', '<')) {
+ require("files/password.php");
+ }
- date_default_timezone_set($this->config->site_timezone);
- }
+ // Load language
+ require "languages/{$language}.php";
+ $this->lang = $lang;
- /***
- * Logs a user in
- * @param string $email
- * @param string $password
- * @param int $remember
- * @param string $captcha = NULL
- * @return array $return
- */
+ date_default_timezone_set($this->config->site_timezone);
+ }
- public function login($email, $password, $remember = 0, $captcha = NULL)
- {
- $return['error'] = true;
+ /**
+ * Logs a user in
+ * @param string $email
+ * @param string $password
+ * @param int $remember
+ * @param string $captcha = NULL
+ * @return array $return
+ */
+ public function login($email, $password, $remember = 0, $captcha = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
- if($block_status == "verify")
- {
- if($this->checkCaptcha($captcha) == false)
- {
+
+ if ($block_status == "verify") {
+ if ($this->checkCaptcha($captcha) == false) {
$return['message'] = $this->lang["user_verify_failed"];
+
return $return;
}
}
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return $return;
}
- $validateEmail = $this->validateEmail($email);
- $validatePassword = $this->validatePassword($password);
+ $validateEmail = $this->validateEmail($email);
+ $validatePassword = $this->validatePassword($password);
+
+ if ($validateEmail['error'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["email_password_invalid"];
- if ($validateEmail['error'] == 1) {
- $this->addAttempt();
+ return $return;
+ } elseif ($validatePassword['error'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["email_password_invalid"];
- $return['message'] = $this->lang["email_password_invalid"];
- return $return;
- } elseif($validatePassword['error'] == 1) {
- $this->addAttempt();
+ return $return;
+ } elseif ($remember != 0 && $remember != 1) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["remember_me_invalid"];
- $return['message'] = $this->lang["email_password_invalid"];
- return $return;
- } elseif($remember != 0 && $remember != 1) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["remember_me_invalid"];
- return $return;
- }
+ $uid = $this->getUID(strtolower($email));
- $uid = $this->getUID(strtolower($email));
+ if (!$uid) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["email_password_incorrect"];
- if(!$uid) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["email_password_incorrect"];
- return $return;
- }
+ $user = $this->getBaseUser($uid);
- $user = $this->getBaseUser($uid);
+ if (!password_verify($password, $user['password'])) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["email_password_incorrect"];
- if (!password_verify($password, $user['password'])) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["email_password_incorrect"];
- return $return;
- }
+ if ($user['isactive'] != 1) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["account_inactive"];
- if ($user['isactive'] != 1) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["account_inactive"];
- return $return;
- }
+ $sessiondata = $this->addSession($user['uid'], $remember);
- $sessiondata = $this->addSession($user['uid'], $remember);
+ if ($sessiondata == false) {
+ $return['message'] = $this->lang["system_error"] . " #01";
- if($sessiondata == false) {
- $return['message'] = $this->lang["system_error"] . " #01";
- return $return;
- }
+ return $return;
+ }
- $return['error'] = false;
- $return['message'] = $this->lang["logged_in"];
+ $return['error'] = false;
+ $return['message'] = $this->lang["logged_in"];
- $return['hash'] = $sessiondata['hash'];
- $return['expire'] = $sessiondata['expiretime'];
+ $return['hash'] = $sessiondata['hash'];
+ $return['expire'] = $sessiondata['expiretime'];
- return $return;
- }
+ return $return;
+ }
- /***
- * Creates a new user, adds them to database
- * @param string $email
- * @param string $password
- * @param string $repeatpassword
+ /**
+ * Creates a new user, adds them to database
+ * @param string $email
+ * @param string $password
+ * @param string $repeatpassword
* @param array $params
* @param string $captcha = NULL
- * @param bool $sendmail = NULL
- * @return array $return
- */
-
- public function register($email, $password, $repeatpassword, $params = Array(), $captcha = NULL, $sendmail = NULL)
- {
- $return['error'] = true;
+ * @param bool $sendmail = NULL
+ * @return array $return
+ */
+ public function register($email, $password, $repeatpassword, $params = Array(), $captcha = NULL, $sendmail = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
- if($block_status == "verify")
- {
- if($this->checkCaptcha($captcha) == false)
- {
+
+ if ($block_status == "verify") {
+ if ($this->checkCaptcha($captcha) == false) {
$return['message'] = $this->lang["user_verify_failed"];
+
return $return;
}
}
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
if ($password !== $repeatpassword) {
$return['message'] = $this->lang["password_nomatch"];
+
return $return;
}
// Validate email
$validateEmail = $this->validateEmail($email);
+
if ($validateEmail['error'] == 1) {
$return['message'] = $validateEmail['message'];
+
return $return;
}
// Validate password
$validatePassword = $this->validatePassword($password);
+
if ($validatePassword['error'] == 1) {
$return['message'] = $validatePassword['message'];
+
return $return;
}
$zxcvbn = new Zxcvbn();
- if($zxcvbn->passwordStrength($password)['score'] < intval($this->config->password_min_score)) {
- $return['message'] = $this->lang['password_weak'];
- return $return;
- }
+ if ($zxcvbn->passwordStrength($password)['score'] < intval($this->config->password_min_score)) {
+ $return['message'] = $this->lang['password_weak'];
- if ($this->isEmailTaken($email)) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["email_taken"];
- return $return;
- }
+ if ($this->isEmailTaken($email)) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["email_taken"];
- $addUser = $this->addUser($email, $password, $params, $sendmail);
+ return $return;
+ }
- if($addUser['error'] != 0) {
- $return['message'] = $addUser['message'];
- return $return;
- }
+ $addUser = $this->addUser($email, $password, $params, $sendmail);
- $return['error'] = false;
- $return['message'] = ($sendmail == true ? $this->lang["register_success"] : $this->lang['register_success_emailmessage_suppressed'] );
+ if ($addUser['error'] != 0) {
+ $return['message'] = $addUser['message'];
+
+ return $return;
+ }
- return $return;
- }
+ $return['error'] = false;
+ $return['message'] = ($sendmail == true ? $this->lang["register_success"] : $this->lang['register_success_emailmessage_suppressed'] );
- /***
- * Activates a user's account
- * @param string $key
- * @return array $return
- */
+ return $return;
+ }
- public function activate($key)
- {
- $return['error'] = true;
+ /**
+ * Activates a user's account
+ * @param string $key
+ * @return array $return
+ */
+ public function activate($key)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- if(strlen($key) !== 20) {
- $this->addAttempt();
+ if (strlen($key) !== 20) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["activationkey_invalid"];
- $return['message'] = $this->lang["activationkey_invalid"];
- return $return;
- }
+ return $return;
+ }
- $getRequest = $this->getRequest($key, "activation");
+ $getRequest = $this->getRequest($key, "activation");
- if($getRequest['error'] == 1) {
- $return['message'] = $getRequest['message'];
- return $return;
- }
+ if ($getRequest['error'] == 1) {
+ $return['message'] = $getRequest['message'];
- if($this->getBaseUser($getRequest['uid'])['isactive'] == 1) {
- $this->addAttempt();
- $this->deleteRequest($getRequest['id']);
+ return $return;
+ }
- $return['message'] = $this->lang["system_error"] . " #02";
- return $return;
- }
+ if ($this->getBaseUser($getRequest['uid'])['isactive'] == 1) {
+ $this->addAttempt();
+ $this->deleteRequest($getRequest['id']);
+ $return['message'] = $this->lang["system_error"] . " #02";
- $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET isactive = ? WHERE id = ?");
- $query->execute(array(1, $getRequest['uid']));
+ return $return;
+ }
- $this->deleteRequest($getRequest['id']);
+ $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET isactive = ? WHERE id = ?");
+ $query->execute(array(1, $getRequest['uid']));
- $return['error'] = false;
- $return['message'] = $this->lang["account_activated"];
+ $this->deleteRequest($getRequest['id']);
- return $return;
- }
+ $return['error'] = false;
+ $return['message'] = $this->lang["account_activated"];
- /***
- * Creates a reset key for an email address and sends email
- * @param string $email
- * @return array $return
- */
+ return $return;
+ }
+
+ /**
+ * Creates a reset key for an email address and sends email
+ * @param string $email
+ * @return array $return
+ */
- public function requestReset($email, $sendmail = NULL)
- {
- $return['error'] = true;
+ public function requestReset($email, $sendmail = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- $validateEmail = $this->validateEmail($email);
+ $validateEmail = $this->validateEmail($email);
- if ($validateEmail['error'] == 1) {
- $return['message'] = $this->lang["email_invalid"];
- return $return;
- }
+ if ($validateEmail['error'] == 1) {
+ $return['message'] = $this->lang["email_invalid"];
+
+ return $return;
+ }
- $query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
- $query->execute(array($email));
+ $query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
+ $query->execute(array($email));
- if ($query->rowCount() == 0) {
- $this->addAttempt();
+ if ($query->rowCount() == 0) {
+ $this->addAttempt();
- $return['message'] = $this->lang["email_incorrect"];
- return $return;
- }
+ $return['message'] = $this->lang["email_incorrect"];
- $addRequest = $this->addRequest($query->fetch(\PDO::FETCH_ASSOC)['id'], $email, "reset", $sendmail);
- if ($addRequest['error'] == 1) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $addRequest['message'];
- return $return;
- }
+ $addRequest = $this->addRequest($query->fetch(\PDO::FETCH_ASSOC)['id'], $email, "reset", $sendmail);
- $return['error'] = false;
- $return['message'] = ($sendmail == true ? $this->lang["reset_requested"] : $this->lang['reset_requested_emailmessage_suppressed']);
+ if ($addRequest['error'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $addRequest['message'];
- return $return;
- }
+ return $return;
+ }
- /***
- * Logs out the session, identified by hash
- * @param string $hash
- * @return boolean
- */
+ $return['error'] = false;
+ $return['message'] = ($sendmail == true ? $this->lang["reset_requested"] : $this->lang['reset_requested_emailmessage_suppressed']);
- public function logout($hash)
- {
- if (strlen($hash) != 40) {
- return false;
- }
+ return $return;
+ }
- return $this->deleteSession($hash);
- }
+ /**
+ * Logs out the session, identified by hash
+ * @param string $hash
+ * @return boolean
+ */
- /***
- * Hashes provided password with Bcrypt
- * @param string $password
- * @param string $password
- * @return string
- */
+ public function logout($hash)
+ {
+ if (strlen($hash) != 40) {
+ return false;
+ }
- public function getHash($password)
- {
- return password_hash($password, PASSWORD_BCRYPT, ['cost' => $this->config->bcrypt_cost]);
- }
+ return $this->deleteSession($hash);
+ }
- /***
- * Gets UID for a given email address and returns an array
- * @param string $email
- * @return array $uid
- */
+ /**
+ * Hashes provided password with Bcrypt
+ * @param string $password
+ * @param string $password
+ * @return string
+ */
+ public function getHash($password)
+ {
+ return password_hash($password, PASSWORD_BCRYPT, ['cost' => $this->config->bcrypt_cost]);
+ }
+
+ /**
+ * Gets UID for a given email address and returns an array
+ * @param string $email
+ * @return array $uid
+ */
+
+
+ public function getUID($email)
+ {
+ $query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
+ $query->execute(array($email));
+
+ if ($query->rowCount() == 0) {
+ return false;
+ }
+
+ return $query->fetch(\PDO::FETCH_ASSOC)['id'];
+ }
+
+ /**
+ * Creates a session for a specified user id
+ * @param int $uid
+ * @param boolean $remember
+ * @return array $data
+ */
+
+ protected function addSession($uid, $remember)
+ {
+ $ip = $this->getIp();
+ $user = $this->getBaseUser($uid);
+
+ if (!$user) {
+ return false;
+ }
+
+ $data['hash'] = sha1($this->config->site_key . microtime());
+ $agent = $_SERVER['HTTP_USER_AGENT'];
+
+ $this->deleteExistingSessions($uid);
+
+ if ($remember == true) {
+ $data['expire'] = date("Y-m-d H:i:s", strtotime($this->config->cookie_remember));
+ $data['expiretime'] = strtotime($data['expire']);
+ } else {
+ $data['expire'] = date("Y-m-d H:i:s", strtotime($this->config->cookie_forget));
+ $data['expiretime'] = 0;
+ }
+
+ $data['cookie_crc'] = sha1($data['hash'] . $this->config->site_key);
+
+ $query = $this->dbh->prepare("INSERT INTO {$this->config->table_sessions} (uid, hash, expiredate, ip, agent, cookie_crc) VALUES (?, ?, ?, ?, ?, ?)");
+
+ if (!$query->execute(array($uid, $data['hash'], $data['expire'], $ip, $agent, $data['cookie_crc']))) {
+ return false;
+ }
- public function getUID($email)
- {
- $query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
- $query->execute(array($email));
+ $data['expire'] = strtotime($data['expire']);
- if($query->rowCount() == 0) {
- return false;
- }
+ return $data;
+ }
- return $query->fetch(\PDO::FETCH_ASSOC)['id'];
- }
+ /**
+ * Removes all existing sessions for a given UID
+ * @param int $uid
+ * @return boolean
+ */
- /***
- * Creates a session for a specified user id
- * @param int $uid
- * @param boolean $remember
- * @return array $data
- */
+ protected function deleteExistingSessions($uid)
+ {
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE uid = ?");
+ $query->execute(array($uid));
- protected function addSession($uid, $remember)
- {
- $ip = $this->getIp();
- $user = $this->getBaseUser($uid);
+ return $query->rowCount() == 1;
+ }
- if(!$user) {
- return false;
- }
+ /**
+ * Removes a session based on hash
+ * @param string $hash
+ * @return boolean
+ */
- $data['hash'] = sha1($this->config->site_key . microtime());
- $agent = $_SERVER['HTTP_USER_AGENT'];
+ protected function deleteSession($hash)
+ {
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE hash = ?");
+ $query->execute(array($hash));
- $this->deleteExistingSessions($uid);
+ return $query->rowCount() == 1;
+ }
- if($remember == true) {
- $data['expire'] = date("Y-m-d H:i:s", strtotime($this->config->cookie_remember));
- $data['expiretime'] = strtotime($data['expire']);
- } else {
- $data['expire'] = date("Y-m-d H:i:s", strtotime($this->config->cookie_forget));
- $data['expiretime'] = 0;
- }
-
- $data['cookie_crc'] = sha1($data['hash'] . $this->config->site_key);
-
- $query = $this->dbh->prepare("INSERT INTO {$this->config->table_sessions} (uid, hash, expiredate, ip, agent, cookie_crc) VALUES (?, ?, ?, ?, ?, ?)");
-
- if(!$query->execute(array($uid, $data['hash'], $data['expire'], $ip, $agent, $data['cookie_crc']))) {
- return false;
- }
-
- $data['expire'] = strtotime($data['expire']);
- return $data;
- }
-
- /***
- * Removes all existing sessions for a given UID
- * @param int $uid
- * @return boolean
- */
-
- protected function deleteExistingSessions($uid)
- {
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE uid = ?");
- $query->execute(array($uid));
-
- return $query->rowCount() == 1;
- }
-
- /***
- * Removes a session based on hash
- * @param string $hash
- * @return boolean
- */
-
- protected function deleteSession($hash)
- {
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE hash = ?");
- $query->execute(array($hash));
-
- return $query->rowCount() == 1;
- }
-
- /**
- * Function to check if a session is valid
- * @param string $hash
- * @return boolean
- */
-
- public function checkSession($hash)
- {
- $ip = $this->getIp();
+ /**
+ * Function to check if a session is valid
+ * @param string $hash
+ * @return boolean
+ */
+ public function checkSession($hash)
+ {
+ $ip = $this->getIp();
$block_status = $this->isBlocked();
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
return false;
}
- if (strlen($hash) != 40) {
- return false;
- }
- $query = $this->dbh->prepare("SELECT id, uid, expiredate, ip, agent, cookie_crc FROM {$this->config->table_sessions} WHERE hash = ?");
- $query->execute(array($hash));
+ if (strlen($hash) != 40) {
+ return false;
+ }
+
+ $query = $this->dbh->prepare("SELECT id, uid, expiredate, ip, agent, cookie_crc FROM {$this->config->table_sessions} WHERE hash = ?");
+ $query->execute(array($hash));
- if ($query->rowCount() == 0) {
- return false;
- }
-
- $row = $query->fetch(\PDO::FETCH_ASSOC);
+ if ($query->rowCount() == 0) {
+ return false;
+ }
- $sid = $row['id'];
- $uid = $row['uid'];
- $expiredate = strtotime($row['expiredate']);
- $currentdate = strtotime(date("Y-m-d H:i:s"));
- $db_ip = $row['ip'];
- $db_agent = $row['agent'];
- $db_cookie = $row['cookie_crc'];
+ $row = $query->fetch(\PDO::FETCH_ASSOC);
+ $sid = $row['id'];
+ $uid = $row['uid'];
+ $expiredate = strtotime($row['expiredate']);
+ $currentdate = strtotime(date("Y-m-d H:i:s"));
+ $db_ip = $row['ip'];
+ $db_agent = $row['agent'];
+ $db_cookie = $row['cookie_crc'];
- if ($currentdate > $expiredate) {
- $this->deleteExistingSessions($uid);
+ if ($currentdate > $expiredate) {
+ $this->deleteExistingSessions($uid);
- return false;
- }
+ return false;
+ }
+
+ if ($ip != $db_ip) {
+ return false;
+ }
- if ($ip != $db_ip) {
- return false;
- }
+ if ($db_cookie == sha1($hash . $this->config->site_key)) {
+ return true;
+ }
- if ($db_cookie == sha1($hash . $this->config->site_key)) {
- return true;
- }
+ return false;
+ }
- return false;
- }
+ /**
+ * Retrieves the UID associated with a given session hash
+ * @param string $hash
+ * @return int $uid
+ */
- /**
- * Retrieves the UID associated with a given session hash
- * @param string $hash
- * @return int $uid
- */
+ public function getSessionUID($hash)
+ {
+ $query = $this->dbh->prepare("SELECT uid FROM {$this->config->table_sessions} WHERE hash = ?");
+ $query->execute(array($hash));
- public function getSessionUID($hash)
- {
- $query = $this->dbh->prepare("SELECT uid FROM {$this->config->table_sessions} WHERE hash = ?");
- $query->execute(array($hash));
+ if ($query->rowCount() == 0) {
+ return false;
+ }
- if ($query->rowCount() == 0) {
- return false;
- }
+ return $query->fetch(\PDO::FETCH_ASSOC)['uid'];
+ }
- return $query->fetch(\PDO::FETCH_ASSOC)['uid'];
- }
+ /**
+ * Checks if an email is already in use
+ * @param string $email
+ * @return boolean
+ */
- /**
- * Checks if an email is already in use
- * @param string $email
- * @return boolean
- */
+ public function isEmailTaken($email)
+ {
+ $query = $this->dbh->prepare("SELECT count(*) FROM {$this->config->table_users} WHERE email = ?");
+ $query->execute(array($email));
- public function isEmailTaken($email)
- {
- $query = $this->dbh->prepare("SELECT count(*) FROM {$this->config->table_users} WHERE email = ?");
- $query->execute(array($email));
+ if ($query->fetchColumn() == 0) {
+ return false;
+ }
- if ($query->fetchColumn() == 0) {
- return false;
- }
+ return true;
+ }
- return true;
- }
+ /**
+ * Adds a new user to database
+ * @param string $email -- email
+ * @param string $password -- password
+ * @param array $params -- additional params
+ * @return int $uid
+ */
+
+ protected function addUser($email, $password, $params = array(), &$sendmail)
+ {
+ $return['error'] = true;
- /**
- * Adds a new user to database
- * @param string $email -- email
- * @param string $password -- password
- * @param array $params -- additional params
- * @return int $uid
- */
+ $query = $this->dbh->prepare("INSERT INTO {$this->config->table_users} VALUES ()");
- protected function addUser($email, $password, $params = array(), &$sendmail)
- {
- $return['error'] = true;
+ if (!$query->execute()) {
+ $return['message'] = $this->lang["system_error"] . " #03";
+ return $return;
+ }
- $query = $this->dbh->prepare("INSERT INTO {$this->config->table_users} VALUES ()");
+ $uid = $this->dbh->lastInsertId();
+ $email = htmlentities(strtolower($email));
- if(!$query->execute()) {
- $return['message'] = $this->lang["system_error"] . " #03";
- return $return;
- }
+ if ($sendmail) {
+ $addRequest = $this->addRequest($uid, $email, "activation", $sendmail);
- $uid = $this->dbh->lastInsertId();
- $email = htmlentities(strtolower($email));
+ if ($addRequest['error'] == 1) {
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
+ $query->execute(array($uid));
+ $return['message'] = $addRequest['message'];
- if($sendmail) {
- $addRequest = $this->addRequest($uid, $email, "activation", $sendmail);
+ return $return;
+ }
- if($addRequest['error'] == 1) {
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
- $query->execute(array($uid));
+ $isactive = 0;
+ } else {
+ $isactive = 1;
+ }
- $return['message'] = $addRequest['message'];
- return $return;
- }
+ $password = $this->getHash($password);
- $isactive = 0;
- } else {
- $isactive = 1;
- }
-
- $password = $this->getHash($password);
-
- if (is_array($params)&& count($params) > 0) {
- $customParamsQueryArray = Array();
-
- foreach($params as $paramKey => $paramValue) {
- $customParamsQueryArray[] = array('value' => $paramKey . ' = ?');
- }
+ if (is_array($params)&& count($params) > 0) {
+ $customParamsQueryArray = Array();
- $setParams = ', ' . implode(', ', array_map(function ($entry) {
- return $entry['value'];
- }, $customParamsQueryArray));
- } else { $setParams = ''; }
-
- $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET email = ?, password = ?, isactive = ? {$setParams} WHERE id = ?");
-
- $bindParams = array_values(array_merge(array($email, $password, $isactive), $params, array($uid)));
-
- if(!$query->execute($bindParams)) {
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
- $query->execute(array($uid));
-
- $return['message'] = $this->lang["system_error"] . " #04";
- return $return;
- }
-
- $return['error'] = false;
- return $return;
- }
-
- /**
- * Gets basic user data for a given UID and returns an array
- * @param int $uid
- * @return array $data
- */
+ foreach($params as $paramKey => $paramValue) {
+ $customParamsQueryArray[] = array('value' => $paramKey . ' = ?');
+ }
- protected function getBaseUser($uid)
- {
- $query = $this->dbh->prepare("SELECT email, password, isactive FROM {$this->config->table_users} WHERE id = ?");
- $query->execute(array($uid));
+ $setParams = ', ' . implode(', ', array_map(function ($entry) {
+ return $entry['value'];
+ }, $customParamsQueryArray));
+ } else { $setParams = ''; }
- if ($query->rowCount() == 0) {
- return false;
- }
-
- $data = $query->fetch(\PDO::FETCH_ASSOC);
+ $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET email = ?, password = ?, isactive = ? {$setParams} WHERE id = ?");
- if (!$data) {
- return false;
- }
+ $bindParams = array_values(array_merge(array($email, $password, $isactive), $params, array($uid)));
- $data['uid'] = $uid;
- return $data;
- }
+ if (!$query->execute($bindParams)) {
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
+ $query->execute(array($uid));
+ $return['message'] = $this->lang["system_error"] . " #04";
- /**
- * Gets public user data for a given UID and returns an array, password is not returned
- * @param int $uid
- * @return array $data
- */
+ return $return;
+ }
- public function getUser($uid)
- {
- $query = $this->dbh->prepare("SELECT * FROM {$this->config->table_users} WHERE id = ?");
- $query->execute(array($uid));
+ $return['error'] = false;
+ return $return;
+ }
- if ($query->rowCount() == 0) {
- return false;
- }
+ /**
+ * Gets basic user data for a given UID and returns an array
+ * @param int $uid
+ * @return array $data
+ */
- $data = $query->fetch(\PDO::FETCH_ASSOC);
+ protected function getBaseUser($uid)
+ {
+ $query = $this->dbh->prepare("SELECT email, password, isactive FROM {$this->config->table_users} WHERE id = ?");
+ $query->execute(array($uid));
- if (!$data) {
- return false;
- }
+ if ($query->rowCount() == 0) {
+ return false;
+ }
- $data['uid'] = $uid;
- unset($data['password']);
- return $data;
- }
+ $data = $query->fetch(\PDO::FETCH_ASSOC);
- /**
- * Allows a user to delete their account
- * @param int $uid
- * @param string $password
+ if (!$data) {
+ return false;
+ }
+
+ $data['uid'] = $uid;
+
+ return $data;
+ }
+
+ /**
+ * Gets public user data for a given UID and returns an array, password is not returned
+ * @param int $uid
+ * @return array $data
+ */
+
+ public function getUser($uid)
+ {
+ $query = $this->dbh->prepare("SELECT * FROM {$this->config->table_users} WHERE id = ?");
+ $query->execute(array($uid));
+
+ if ($query->rowCount() == 0) {
+ return false;
+ }
+
+ $data = $query->fetch(\PDO::FETCH_ASSOC);
+
+ if (!$data) {
+ return false;
+ }
+
+ $data['uid'] = $uid;
+ unset($data['password']);
+
+ return $data;
+ }
+
+ /**
+ * Allows a user to delete their account
+ * @param int $uid
+ * @param string $password
* @param string $captcha = NULL
- * @return array $return
- */
+ * @return array $return
+ */
- public function deleteUser($uid, $password, $captcha = NULL)
- {
- $return['error'] = true;
+ public function deleteUser($uid, $password, $captcha = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
- if($block_status == "verify")
- {
- if($this->checkCaptcha($captcha) == false)
- {
+ if ($block_status == "verify") {
+ if ($this->checkCaptcha($captcha) == false) {
$return['message'] = $this->lang["user_verify_failed"];
+
return $return;
}
}
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- $validatePassword = $this->validatePassword($password);
+ $validatePassword = $this->validatePassword($password);
- if($validatePassword['error'] == 1) {
- $this->addAttempt();
+ if ($validatePassword['error'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $validatePassword['message'];
+
+ return $return;
+ }
- $return['message'] = $validatePassword['message'];
- return $return;
- }
+ $user = $this->getBaseUser($uid);
- $user = $this->getBaseUser($uid);
+ if (!password_verify($password, $user['password'])) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["password_incorrect"];
+
+ return $return;
+ }
- if(!password_verify($password, $user['password'])) {
- $this->addAttempt();
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
- $return['message'] = $this->lang["password_incorrect"];
- return $return;
- }
+ if (!$query->execute(array($uid))) {
+ $return['message'] = $this->lang["system_error"] . " #05";
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_users} WHERE id = ?");
+ return $return;
+ }
- if(!$query->execute(array($uid))) {
- $return['message'] = $this->lang["system_error"] . " #05";
- return $return;
- }
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE uid = ?");
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_sessions} WHERE uid = ?");
+ if (!$query->execute(array($uid))) {
+ $return['message'] = $this->lang["system_error"] . " #06";
- if(!$query->execute(array($uid))) {
- $return['message'] = $this->lang["system_error"] . " #06";
- return $return;
- }
+ return $return;
+ }
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_requests} WHERE uid = ?");
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_requests} WHERE uid = ?");
- if(!$query->execute(array($uid))) {
- $return['message'] = $this->lang["system_error"] . " #07";
- return $return;
- }
+ if (!$query->execute(array($uid))) {
+ $return['message'] = $this->lang["system_error"] . " #07";
- $return['error'] = false;
- $return['message'] = $this->lang["account_deleted"];
+ return $return;
+ }
- return $return;
- }
+ $return['error'] = false;
+ $return['message'] = $this->lang["account_deleted"];
- /**
- * Creates an activation entry and sends email to user
- * @param int $uid
- * @param string $email
+ return $return;
+ }
+
+ /**
+ * Creates an activation entry and sends email to user
+ * @param int $uid
+ * @param string $email
* @param string $type
* @param boolean $sendmail = NULL
- * @return boolean
- */
+ * @return boolean
+ */
- protected function addRequest($uid, $email, $type, &$sendmail)
- {
- $return['error'] = true;
+ protected function addRequest($uid, $email, $type, &$sendmail)
+ {
+ $return['error'] = true;
- if($type != "activation" && $type != "reset") {
- $return['message'] = $this->lang["system_error"] . " #08";
- return $return;
- }
+ if ($type != "activation" && $type != "reset") {
+ $return['message'] = $this->lang["system_error"] . " #08";
+
+ return $return;
+ }
// if not set manually, check config data
- if($sendmail === NULL)
- {
- $sendmail = true;
- if($type == "reset" && $this->config->emailmessage_suppress_reset === true ) {
- $sendmail = false;
- $return['error'] = false;
- return $return;
- }
- if ($type == "activation" && $this->config->emailmessage_suppress_activation === true ) {
- $sendmail = false;
- $return['error'] = false;
- return $return;
- }
- }
-
- $query = $this->dbh->prepare("SELECT id, expire FROM {$this->config->table_requests} WHERE uid = ? AND type = ?");
- $query->execute(array($uid, $type));
-
- if($query->rowCount() > 0) {
- $row = $query->fetch(\PDO::FETCH_ASSOC);
-
- $expiredate = strtotime($row['expire']);
- $currentdate = strtotime(date("Y-m-d H:i:s"));
-
- if ($currentdate < $expiredate) {
- $return['message'] = $this->lang["reset_exists"];
- return $return;
- }
-
- $this->deleteRequest($row['id']);
- }
-
- if($type == "activation" && $this->getBaseUser($uid)['isactive'] == 1) {
- $return['message'] = $this->lang["already_activated"];
- return $return;
- }
-
- $key = $this->getRandomKey(20);
- $expire = date("Y-m-d H:i:s", strtotime($this->config->request_key_expiration));
-
- $query = $this->dbh->prepare("INSERT INTO {$this->config->table_requests} (uid, rkey, expire, type) VALUES (?, ?, ?, ?)");
-
- if(!$query->execute(array($uid, $key, $expire, $type))) {
- $return['message'] = $this->lang["system_error"] . " #09";
- return $return;
- }
-
- $request_id = $this->dbh->lastInsertId();
-
- if($sendmail === true)
- {
- // Check configuration for SMTP parameters
- $mail = new PHPMailer;
- if($this->config->smtp) {
- $mail->isSMTP();
- $mail->Host = $this->config->smtp_host;
- $mail->SMTPAuth = $this->config->smtp_auth;
- if(!is_null($this->config->smtp_auth)) {
- $mail->Username = $this->config->smtp_username;
- $mail->Password = $this->config->smtp_password;
- }
- $mail->Port = $this->config->smtp_port;
-
- if(!is_null($this->config->smtp_security)) {
- $mail->SMTPSecure = $this->config->smtp_security;
- }
- }
-
- $mail->From = $this->config->site_email;
- $mail->FromName = $this->config->site_name;
- $mail->addAddress($email);
- $mail->isHTML(true);
-
- if($type == "activation") {
-
- $mail->Subject = sprintf($this->lang['email_activation_subject'], $this->config->site_name);
- $mail->Body = sprintf($this->lang['email_activation_body'], $this->config->site_url, $this->config->site_activation_page, $key);
- $mail->AltBody = sprintf($this->lang['email_activation_altbody'], $this->config->site_url, $this->config->site_activation_page, $key);
- }
- else {
- $mail->Subject = sprintf($this->lang['email_reset_subject'], $this->config->site_name);
- $mail->Body = sprintf($this->lang['email_reset_body'], $this->config->site_url, $this->config->site_password_reset_page, $key);
- $mail->AltBody = sprintf($this->lang['email_reset_altbody'], $this->config->site_url, $this->config->site_password_reset_page, $key);
- }
-
- if(!$mail->send()) {
- $this->deleteRequest($request_id);
-
- $return['message'] = $this->lang["system_error"] . " #10";
- return $return;
- }
- }
-
- $return['error'] = false;
- return $return;
- }
-
- /**
- * Returns request data if key is valid
- * @param string $key
- * @param string $type
- * @return array $return
- */
-
- public function getRequest($key, $type)
- {
- $return['error'] = true;
-
- $query = $this->dbh->prepare("SELECT id, uid, expire FROM {$this->config->table_requests} WHERE rkey = ? AND type = ?");
- $query->execute(array($key, $type));
-
- if ($query->rowCount() === 0) {
- $this->addAttempt();
-
- $return['message'] = $this->lang[$type."key_incorrect"];
- return $return;
- }
-
- $row = $query->fetch();
-
- $expiredate = strtotime($row['expire']);
- $currentdate = strtotime(date("Y-m-d H:i:s"));
-
- if ($currentdate > $expiredate) {
- $this->addAttempt();
-
- $this->deleteRequest($row['id']);
-
- $return['message'] = $this->lang[$type."key_expired"];
- return $return;
- }
-
- $return['error'] = false;
- $return['id'] = $row['id'];
- $return['uid'] = $row['uid'];
-
- return $return;
- }
-
- /**
- * Deletes request from database
- * @param int $id
- * @return boolean
- */
-
- protected function deleteRequest($id)
- {
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_requests} WHERE id = ?");
- return $query->execute(array($id));
- }
-
- /**
- * Verifies that a password is valid and respects security requirements
- * @param string $password
- * @return array $return
- */
-
- protected function validatePassword($password) {
- $return['error'] = true;
-
- if (strlen($password) < (int)$this->config->verify_password_min_length ) {
- $return['message'] = $this->lang["password_short"];
- return $return;
- }
-
- $return['error'] = false;
- return $return;
- }
-
- /**
- * Verifies that an email is valid
- * @param string $email
- * @return array $return
- */
-
- protected function validateEmail($email) {
- $return['error'] = true;
-
- if (strlen($email) < (int)$this->config->verify_email_min_length ) {
- $return['message'] = $this->lang["email_short"];
- return $return;
- } elseif (strlen($email) > (int)$this->config->verify_email_max_length ) {
- $return['message'] = $this->lang["email_long"];
- return $return;
- } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
- $return['message'] = $this->lang["email_invalid"];
- return $return;
- }
+ if ($sendmail === NULL) {
+ $sendmail = true;
+ if ($type == "reset" && $this->config->emailmessage_suppress_reset === true ) {
+ $sendmail = false;
+ $return['error'] = false;
+
+ return $return;
+ }
+
+ if ($type == "activation" && $this->config->emailmessage_suppress_activation === true ) {
+ $sendmail = false;
+ $return['error'] = false;
+
+ return $return;
+ }
+ }
+
+ $query = $this->dbh->prepare("SELECT id, expire FROM {$this->config->table_requests} WHERE uid = ? AND type = ?");
+ $query->execute(array($uid, $type));
+
+ if ($query->rowCount() > 0) {
+ $row = $query->fetch(\PDO::FETCH_ASSOC);
+
+ $expiredate = strtotime($row['expire']);
+ $currentdate = strtotime(date("Y-m-d H:i:s"));
+
+ if ($currentdate < $expiredate) {
+ $return['message'] = $this->lang["reset_exists"];
+
+ return $return;
+ }
+
+ $this->deleteRequest($row['id']);
+ }
+
+ if ($type == "activation" && $this->getBaseUser($uid)['isactive'] == 1) {
+ $return['message'] = $this->lang["already_activated"];
+
+ return $return;
+ }
+
+ $key = $this->getRandomKey(20);
+ $expire = date("Y-m-d H:i:s", strtotime($this->config->request_key_expiration));
+
+ $query = $this->dbh->prepare("INSERT INTO {$this->config->table_requests} (uid, rkey, expire, type) VALUES (?, ?, ?, ?)");
+
+ if (!$query->execute(array($uid, $key, $expire, $type))) {
+ $return['message'] = $this->lang["system_error"] . " #09";
+
+ return $return;
+ }
+
+ $request_id = $this->dbh->lastInsertId();
+
+ if ($sendmail === true) {
+ // Check configuration for SMTP parameters
+ $mail = new PHPMailer;
+ if ($this->config->smtp) {
+ $mail->isSMTP();
+ $mail->Host = $this->config->smtp_host;
+ $mail->SMTPAuth = $this->config->smtp_auth;
+ if (!is_null($this->config->smtp_auth)) {
+ $mail->Username = $this->config->smtp_username;
+ $mail->Password = $this->config->smtp_password;
+ }
+ $mail->Port = $this->config->smtp_port;
+
+ if (!is_null($this->config->smtp_security)) {
+ $mail->SMTPSecure = $this->config->smtp_security;
+ }
+ }
+
+ $mail->From = $this->config->site_email;
+ $mail->FromName = $this->config->site_name;
+ $mail->addAddress($email);
+ $mail->isHTML(true);
+
+ if ($type == "activation") {
+ $mail->Subject = sprintf($this->lang['email_activation_subject'], $this->config->site_name);
+ $mail->Body = sprintf($this->lang['email_activation_body'], $this->config->site_url, $this->config->site_activation_page, $key);
+ $mail->AltBody = sprintf($this->lang['email_activation_altbody'], $this->config->site_url, $this->config->site_activation_page, $key);
+ } else {
+ $mail->Subject = sprintf($this->lang['email_reset_subject'], $this->config->site_name);
+ $mail->Body = sprintf($this->lang['email_reset_body'], $this->config->site_url, $this->config->site_password_reset_page, $key);
+ $mail->AltBody = sprintf($this->lang['email_reset_altbody'], $this->config->site_url, $this->config->site_password_reset_page, $key);
+ }
+
+ if (!$mail->send()) {
+ $this->deleteRequest($request_id);
+ $return['message'] = $this->lang["system_error"] . " #10";
+
+ return $return;
+ }
+
+ }
+
+ $return['error'] = false;
+
+ return $return;
+ }
+
+ /**
+ * Returns request data if key is valid
+ * @param string $key
+ * @param string $type
+ * @return array $return
+ */
+
+ public function getRequest($key, $type)
+ {
+ $return['error'] = true;
+
+ $query = $this->dbh->prepare("SELECT id, uid, expire FROM {$this->config->table_requests} WHERE rkey = ? AND type = ?");
+ $query->execute(array($key, $type));
+
+ if ($query->rowCount() === 0) {
+ $this->addAttempt();
+ $return['message'] = $this->lang[$type."key_incorrect"];
+
+ return $return;
+ }
+
+ $row = $query->fetch();
+
+ $expiredate = strtotime($row['expire']);
+ $currentdate = strtotime(date("Y-m-d H:i:s"));
+
+ if ($currentdate > $expiredate) {
+ $this->addAttempt();
+ $this->deleteRequest($row['id']);
+ $return['message'] = $this->lang[$type."key_expired"];
+
+ return $return;
+ }
+
+ $return['error'] = false;
+ $return['id'] = $row['id'];
+ $return['uid'] = $row['uid'];
+
+ return $return;
+ }
+
+ /**
+ * Deletes request from database
+ * @param int $id
+ * @return boolean
+ */
+
+ protected function deleteRequest($id)
+ {
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_requests} WHERE id = ?");
+
+ return $query->execute(array($id));
+ }
+
+ /**
+ * Verifies that a password is valid and respects security requirements
+ * @param string $password
+ * @return array $return
+ */
+
+ protected function validatePassword($password) {
+ $return['error'] = true;
+
+ if (strlen($password) < (int)$this->config->verify_password_min_length ) {
+ $return['message'] = $this->lang["password_short"];
+
+ return $return;
+ }
+
+ $return['error'] = false;
+
+ return $return;
+ }
+
+ /**
+ * Verifies that an email is valid
+ * @param string $email
+ * @return array $return
+ */
+
+ protected function validateEmail($email) {
+ $return['error'] = true;
+
+ if (strlen($email) < (int)$this->config->verify_email_min_length ) {
+ $return['message'] = $this->lang["email_short"];
+
+ return $return;
+ } elseif (strlen($email) > (int)$this->config->verify_email_max_length ) {
+ $return['message'] = $this->lang["email_long"];
+
+ return $return;
+ } elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
+ $return['message'] = $this->lang["email_invalid"];
+
+ return $return;
+ }
if ( (int)$this->config->verify_email_use_banlist ) {
$bannedEmails = json_decode(file_get_contents(__DIR__ . "/files/domains.json"));
if (in_array(strtolower(explode('@', $email)[1]), $bannedEmails)) {
$return['message'] = $this->lang["email_banned"];
+
return $return;
}
}
- $return['error'] = false;
- return $return;
- }
+ $return['error'] = false;
+ return $return;
+ }
- /**
- * Allows a user to reset their password after requesting a reset key.
- * @param string $key
- * @param string $password
- * @param string $repeatpassword
- * @param string $captcha = NULL
- * @return array $return
- */
- public function resetPass($key, $password, $repeatpassword, $captcha = NULL)
- {
- $return['error'] = true;
+ /**
+ * Allows a user to reset their password after requesting a reset key.
+ * @param string $key
+ * @param string $password
+ * @param string $repeatpassword
+ * @param string $captcha = NULL
+ * @return array $return
+ */
+ public function resetPass($key, $password, $repeatpassword, $captcha = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
- if($block_status == "verify")
- {
- if($this->checkCaptcha($captcha) == false)
- {
+
+ if ($block_status == "verify") {
+ if ($this->checkCaptcha($captcha) == false) {
$return['message'] = $this->lang["user_verify_failed"];
+
return $return;
}
}
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- if(strlen($key) != 20) {
- $return['message'] = $this->lang["resetkey_invalid"];
- return $return;
- }
+ if (strlen($key) != 20) {
+ $return['message'] = $this->lang["resetkey_invalid"];
- $validatePassword = $this->validatePassword($password);
+ return $return;
+ }
- if($validatePassword['error'] == 1) {
- $return['message'] = $validatePassword['message'];
- return $return;
- }
+ $validatePassword = $this->validatePassword($password);
- if($password !== $repeatpassword) {
- // Passwords don't match
- $return['message'] = $this->lang["newpassword_nomatch"];
- return $return;
- }
+ if ($validatePassword['error'] == 1) {
+ $return['message'] = $validatePassword['message'];
+ return $return;
+ }
- $data = $this->getRequest($key, "reset");
+ if ($password !== $repeatpassword) {
+ // Passwords don't match
+ $return['message'] = $this->lang["newpassword_nomatch"];
- if($data['error'] == 1) {
- $return['message'] = $data['message'];
- return $return;
- }
+ return $return;
+ }
- $user = $this->getBaseUser($data['uid']);
+ $data = $this->getRequest($key, "reset");
- if(!$user) {
- $this->addAttempt();
- $this->deleteRequest($data['id']);
+ if ($data['error'] == 1) {
+ $return['message'] = $data['message'];
- $return['message'] = $this->lang["system_error"] . " #11";
- return $return;
- }
+ return $return;
+ }
- if(password_verify($password, $user['password'])) {
- $this->addAttempt();
+ $user = $this->getBaseUser($data['uid']);
- $return['message'] = $this->lang["newpassword_match"];
- return $return;
- }
+ if (!$user) {
+ $this->addAttempt();
+ $this->deleteRequest($data['id']);
+ $return['message'] = $this->lang["system_error"] . " #11";
- $password = $this->getHash($password);
+ return $return;
+ }
- $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET password = ? WHERE id = ?");
- $query->execute(array($password, $data['uid']));
+ if (password_verify($password, $user['password'])) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["newpassword_match"];
- if ($query->rowCount() == 0) {
- $return['message'] = $this->lang["system_error"] . " #12";
- return $return;
- }
+ return $return;
+ }
+
+ $password = $this->getHash($password);
+ $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET password = ? WHERE id = ?");
+ $query->execute(array($password, $data['uid']));
- $this->deleteRequest($data['id']);
+ if ($query->rowCount() == 0) {
+ $return['message'] = $this->lang["system_error"] . " #12";
- $return['error'] = false;
- $return['message'] = $this->lang["password_reset"];
+ return $return;
+ }
- return $return;
- }
+ $this->deleteRequest($data['id']);
+ $return['error'] = false;
+ $return['message'] = $this->lang["password_reset"];
- /**
- * Recreates activation email for a given email and sends
- * @param string $email
- * @return array $return
- */
+ return $return;
+ }
- public function resendActivation($email, $sendmail = NULL)
- {
- $return['error'] = true;
+ /**
+ * Recreates activation email for a given email and sends
+ * @param string $email
+ * @return array $return
+ */
+
+ public function resendActivation($email, $sendmail = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- if($sendmail == NULL) {
- $return['message'] = $this->lang['function_disabled'];
- return $return;
+ if ($sendmail == NULL) {
+ $return['message'] = $this->lang['function_disabled'];
+
+ return $return;
}
- $validateEmail = $this->validateEmail($email);
+ $validateEmail = $this->validateEmail($email);
- if($validateEmail['error'] == 1) {
- $return['message'] = $validateEmail['message'];
- return $return;
- }
+ if ($validateEmail['error'] == 1) {
+ $return['message'] = $validateEmail['message'];
- $query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
- $query->execute(array($email));
+ return $return;
+ }
+
+ $query = $this->dbh->prepare("SELECT id FROM {$this->config->table_users} WHERE email = ?");
+ $query->execute(array($email));
- if($query->rowCount() == 0) {
- $this->addAttempt();
+ if ($query->rowCount() == 0) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["email_incorrect"];
- $return['message'] = $this->lang["email_incorrect"];
- return $return;
- }
+ return $return;
+ }
- $row = $query->fetch(\PDO::FETCH_ASSOC);
+ $row = $query->fetch(\PDO::FETCH_ASSOC);
- if ($this->getBaseUser($row['id'])['isactive'] == 1) {
- $this->addAttempt();
+ if ($this->getBaseUser($row['id'])['isactive'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["already_activated"];
- $return['message'] = $this->lang["already_activated"];
- return $return;
- }
+ return $return;
+ }
- $addRequest = $this->addRequest($row['id'], $email, "activation", $sendmail);
+ $addRequest = $this->addRequest($row['id'], $email, "activation", $sendmail);
- if ($addRequest['error'] == 1) {
- $this->addAttempt();
+ if ($addRequest['error'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $addRequest['message'];
- $return['message'] = $addRequest['message'];
- return $return;
- }
+ return $return;
+ }
- $return['error'] = false;
- $return['message'] = $this->lang["activation_sent"];
- return $return;
- }
+ $return['error'] = false;
+ $return['message'] = $this->lang["activation_sent"];
+ return $return;
+ }
- /**
- * Changes a user's password
- * @param int $uid
- * @param string $currpass
- * @param string $newpass
+ /**
+ * Changes a user's password
+ * @param int $uid
+ * @param string $currpass
+ * @param string $newpass
* @param string $repeatnewpass
* @param string $captcha = NULL
- * @return array $return
- */
+ * @return array $return
+ */
public function changePassword($uid, $currpass, $newpass, $repeatnewpass, $captcha = NULL)
- {
- $return['error'] = true;
-
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
- if($block_status == "verify")
- {
- if($this->checkCaptcha($captcha) == false)
- {
+
+ if ($block_status == "verify") {
+ if ($this->checkCaptcha($captcha) == false) {
$return['message'] = $this->lang["user_verify_failed"];
return $return;
}
}
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- $validatePassword = $this->validatePassword($currpass);
+ $validatePassword = $this->validatePassword($currpass);
- if($validatePassword['error'] == 1) {
- $this->addAttempt();
+ if ($validatePassword['error'] == 1) {
+ $this->addAttempt();
+ $return['message'] = $validatePassword['message'];
- $return['message'] = $validatePassword['message'];
- return $return;
- }
+ return $return;
+ }
- $validatePassword = $this->validatePassword($newpass);
+ $validatePassword = $this->validatePassword($newpass);
- if($validatePassword['error'] == 1) {
- $return['message'] = $validatePassword['message'];
- return $return;
- } elseif($newpass !== $repeatnewpass) {
- $return['message'] = $this->lang["newpassword_nomatch"];
- return $return;
- }
+ if ($validatePassword['error'] == 1) {
+ $return['message'] = $validatePassword['message'];
- $zxcvbn = new Zxcvbn();
+ return $return;
+ } elseif ($newpass !== $repeatnewpass) {
+ $return['message'] = $this->lang["newpassword_nomatch"];
- if($zxcvbn->passwordStrength($newpass)['score'] < intval($this->config->password_min_score)) {
- $return['message'] = $this->lang['password_weak'];
- return $return;
- }
+ return $return;
+ }
- $user = $this->getBaseUser($uid);
+ $zxcvbn = new Zxcvbn();
- if(!$user) {
- $this->addAttempt();
+ if ($zxcvbn->passwordStrength($newpass)['score'] < intval($this->config->password_min_score)) {
+ $return['message'] = $this->lang['password_weak'];
- $return['message'] = $this->lang["system_error"] . " #13";
- return $return;
- }
+ return $return;
+ }
- if(!password_verify($currpass, $user['password'])) {
- $this->addAttempt();
+ $user = $this->getBaseUser($uid);
- $return['message'] = $this->lang["password_incorrect"];
- return $return;
- }
+ if (!$user) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["system_error"] . " #13";
- $newpass = $this->getHash($newpass);
+ return $return;
+ }
- $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET password = ? WHERE id = ?");
- $query->execute(array($newpass, $uid));
+ if (!password_verify($currpass, $user['password'])) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["password_incorrect"];
- $return['error'] = false;
- $return['message'] = $this->lang["password_changed"];
- return $return;
- }
+ return $return;
+ }
- /**
- * Changes a user's email
- * @param int $uid
- * @param string $email
- * @param string $password
- * @param string $captcha = NULL
- * @return array $return
- */
+ $newpass = $this->getHash($newpass);
- public function changeEmail($uid, $email, $password, $captcha = NULL)
- {
- $return['error'] = true;
+ $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET password = ? WHERE id = ?");
+ $query->execute(array($newpass, $uid));
+ $return['error'] = false;
+ $return['message'] = $this->lang["password_changed"];
+
+ return $return;
+ }
+
+ /**
+ * Changes a user's email
+ * @param int $uid
+ * @param string $email
+ * @param string $password
+ * @param string $captcha = NULL
+ * @return array $return
+ */
+
+ public function changeEmail($uid, $email, $password, $captcha = NULL)
+ {
+ $return['error'] = true;
$block_status = $this->isBlocked();
- if($block_status == "verify")
- {
- if($this->checkCaptcha($captcha) == false)
- {
+
+ if ($block_status == "verify") {
+ if ($this->checkCaptcha($captcha) == false) {
$return['message'] = $this->lang["user_verify_failed"];
+
return $return;
}
}
+
if ($block_status == "block") {
$return['message'] = $this->lang["user_blocked"];
+
return $return;
}
- $validateEmail = $this->validateEmail($email);
+ $validateEmail = $this->validateEmail($email);
+
+ if ($validateEmail['error'] == 1) {
+ $return['message'] = $validateEmail['message'];
+
+ return $return;
+ }
- if($validateEmail['error'] == 1)
- {
- $return['message'] = $validateEmail['message'];
- return $return;
- }
+ $validatePassword = $this->validatePassword($password);
- $validatePassword = $this->validatePassword($password);
+ if ($validatePassword['error'] == 1) {
+ $return['message'] = $this->lang["password_notvalid"];
- if ($validatePassword['error'] == 1) {
- $return['message'] = $this->lang["password_notvalid"];
- return $return;
- }
+ return $return;
+ }
- $user = $this->getBaseUser($uid);
+ $user = $this->getBaseUser($uid);
- if(!$user) {
- $this->addAttempt();
+ if (!$user) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["system_error"] . " #14";
+
+ return $return;
+ }
- $return['message'] = $this->lang["system_error"] . " #14";
- return $return;
- }
+ if (!password_verify($password, $user['password'])) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["password_incorrect"];
- if(!password_verify($password, $user['password'])) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["password_incorrect"];
- return $return;
- }
+ if ($email == $user['email']) {
+ $this->addAttempt();
+ $return['message'] = $this->lang["newemail_match"];
- if ($email == $user['email']) {
- $this->addAttempt();
+ return $return;
+ }
- $return['message'] = $this->lang["newemail_match"];
- return $return;
- }
+ $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET email = ? WHERE id = ?");
+ $query->execute(array($email, $uid));
- $query = $this->dbh->prepare("UPDATE {$this->config->table_users} SET email = ? WHERE id = ?");
- $query->execute(array($email, $uid));
+ if ($query->rowCount() == 0) {
+ $return['message'] = $this->lang["system_error"] . " #15";
- if ($query->rowCount() == 0) {
- $return['message'] = $this->lang["system_error"] . " #15";
- return $return;
- }
+ return $return;
+ }
- $return['error'] = false;
- $return['message'] = $this->lang["email_changed"];
- return $return;
- }
+ $return['error'] = false;
+ $return['message'] = $this->lang["email_changed"];
- /**
- * Informs if a user is locked out
- * @return string
- */
+ return $return;
+ }
- public function isBlocked()
- {
- $ip = $this->getIp();
- $this->deleteAttempts($ip, false);
- $query = $this->dbh->prepare("SELECT count(*) FROM {$this->config->table_attempts} WHERE ip = ?");
- $query->execute(array($ip));
+ /**
+ * Informs if a user is locked out
+ * @return string
+ */
+ public function isBlocked()
+ {
+ $ip = $this->getIp();
+ $this->deleteAttempts($ip, false);
+ $query = $this->dbh->prepare("SELECT count(*) FROM {$this->config->table_attempts} WHERE ip = ?");
+ $query->execute(array($ip));
$attempts = $query->fetchColumn();
- if($attempts < intval($this->config->attempts_before_verify))
- {
+ if ($attempts < intval($this->config->attempts_before_verify)) {
return "allow";
}
- if($attempts < intval($this->config->attempts_before_ban))
- {
+
+ if ($attempts < intval($this->config->attempts_before_ban)) {
return "verify";
}
- return "block";
- }
+
+ return "block";
+ }
/**
@@ -1254,37 +1302,34 @@ class Auth
return true;
}
- /**
- * Adds an attempt to database
- * @return boolean
- */
-
- protected function addAttempt()
- {
- $ip = $this->getIp();
-
- $attempt_expiredate = date("Y-m-d H:i:s", strtotime($this->config->attack_mitigation_time));
+ /**
+ * Adds an attempt to database
+ * @return boolean
+ */
+ protected function addAttempt()
+ {
+ $ip = $this->getIp();
+ $attempt_expiredate = date("Y-m-d H:i:s", strtotime($this->config->attack_mitigation_time));
$query = $this->dbh->prepare("INSERT INTO {$this->config->table_attempts} (ip, expiredate) VALUES (?, ?)");
- return $query->execute(array($ip, $attempt_expiredate));
- }
+ return $query->execute(array($ip, $attempt_expiredate));
+ }
- /**
- * Deletes all attempts for a given IP from database
- * @param string $ip
+ /**
+ * Deletes all attempts for a given IP from database
+ * @param string $ip
* @param boolean $all = false
- * @return boolean
- */
+ * @return boolean
+ */
- protected function deleteAttempts($ip, $all = false)
- {
- if($all==true)
- {
- $query = $this->dbh->prepare("DELETE FROM {$this->config->table_attempts} WHERE ip = ?");
- return $query->execute(array($ip));
- }
+ protected function deleteAttempts($ip, $all = false)
+ {
+ if ($all==true) {
+ $query = $this->dbh->prepare("DELETE FROM {$this->config->table_attempts} WHERE ip = ?");
+ return $query->execute(array($ip));
+ }
$query = $this->dbh->prepare("SELECT id, expiredate FROM {$this->config->table_attempts} WHERE ip = ?");
$query->execute(array($ip));
@@ -1292,53 +1337,50 @@ class Auth
while ($row = $query->fetch(\PDO::FETCH_ASSOC)) {
$expiredate = strtotime($row['expiredate']);
$currentdate = strtotime(date("Y-m-d H:i:s"));
- if($currentdate > $expiredate)
- {
+ if ($currentdate > $expiredate) {
$queryDel = $this->dbh->prepare("DELETE FROM {$this->config->table_attempts} WHERE id = ?");
$queryDel->execute(array($row['id']));
}
}
- }
-
- /**
- * Returns a random string of a specified length
- * @param int $length
- * @return string $key
- */
- public function getRandomKey($length = 20)
- {
- $chars = "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0U1V2W3X4Y5Z6a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6";
- $key = "";
-
- for ($i = 0; $i < $length; $i++) {
- $key .= $chars{mt_rand(0, strlen($chars) - 1)};
- }
-
- return $key;
- }
-
- /**
- * Returns IP address
- * @return string $ip
- */
-
- protected function getIp()
- {
- if(isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
- return $_SERVER['HTTP_X_FORWARDED_FOR'];
- } else {
- return $_SERVER['REMOTE_ADDR'];
- }
- }
-
- /**
- * Returns is user logged in
- * @return boolean
- */
-
- public function isLogged() {
- return (isset($_COOKIE[$this->config->cookie_name]) && $this->checkSession($_COOKIE[$this->config->cookie_name]));
- }
+ }
+
+ /**
+ * Returns a random string of a specified length
+ * @param int $length
+ * @return string $key
+ */
+ public function getRandomKey($length = 20)
+ {
+ $chars = "A1B2C3D4E5F6G7H8I9J0K1L2M3N4O5P6Q7R8S9T0U1V2W3X4Y5Z6a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8s9t0u1v2w3x4y5z6";
+ $key = "";
+
+ for ($i = 0; $i < $length; $i++) {
+ $key .= $chars{mt_rand(0, strlen($chars) - 1)};
+ }
+
+ return $key;
+ }
+
+ /**
+ * Returns IP address
+ * @return string $ip
+ */
+ protected function getIp()
+ {
+ if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && $_SERVER['HTTP_X_FORWARDED_FOR'] != '') {
+ return $_SERVER['HTTP_X_FORWARDED_FOR'];
+ } else {
+ return $_SERVER['REMOTE_ADDR'];
+ }
+ }
+
+ /**
+ * Returns is user logged in
+ * @return boolean
+ */
+ public function isLogged() {
+ return (isset($_COOKIE[$this->config->cookie_name]) && $this->checkSession($_COOKIE[$this->config->cookie_name]));
+ }
/**
* Returns current session hash
diff --git a/Config.php b/Config.php
index dd17b56..ed29dca 100755..100644
--- a/Config.php
+++ b/Config.php
@@ -21,8 +21,9 @@ class Config
{
$this->dbh = $dbh;
- if (func_num_args() > 1)
+ if (func_num_args() > 1) {
$this->config_table = $config_table;
+ }
$this->config = array();
@@ -57,10 +58,12 @@ class Config
{
$query = $this->dbh->prepare("UPDATE {$this->config_table} SET value = ? WHERE setting = ?");
- if($query->execute(array($value, $setting))) {
+ if ($query->execute(array($value, $setting))) {
$this->config[$setting] = $value;
+
return true;
}
+
return false;
}
@@ -71,11 +74,11 @@ class Config
* @param mixed $value
* @return bool
*/
- public function override($setting, $value){
-
+ public function override($setting, $value)
+ {
$this->config[$setting] = $value;
- return true;
+ return true;
}
/**
@@ -88,33 +91,39 @@ class Config
{
// verify* values.
- if (! isset($this->config['verify_password_min_length']) )
+ if (!isset($this->config['verify_password_min_length'])) {
$this->config['verify_password_min_length'] = 3;
+ }
- if (! isset($this->config['verify_password_max_length']) )
+ if (!isset($this->config['verify_password_max_length'])) {
$this->config['verify_password_max_length'] = 150;
+ }
- if (! isset($this->config['verify_password_strong_requirements']) )
+ if (!isset($this->config['verify_password_strong_requirements'])) {
$this->config['verify_password_strong_requirements'] = 1;
+ }
- if (! isset($this->config['verify_email_min_length']) )
+ if (!isset($this->config['verify_email_min_length'])) {
$this->config['verify_email_min_length'] = 5;
+ }
- if (! isset($this->config['verify_email_max_length']) )
+ if (!isset($this->config['verify_email_max_length'])) {
$this->config['verify_email_max_length'] = 100;
+ }
- if (! isset($this->config['verify_email_use_banlist']) )
+ if (!isset($this->config['verify_email_use_banlist'])) {
$this->config['verify_email_use_banlist'] = 1;
+ }
// emailmessage* values
- if (! isset($this->config['emailmessage_suppress_activation']) )
+ if (!isset($this->config['emailmessage_suppress_activation'])) {
$this->config['emailmessage_suppress_activation'] = 0;
+ }
- if (! isset($this->config['emailmessage_suppress_reset']) )
+ if (!isset($this->config['emailmessage_suppress_reset'])) {
$this->config['emailmessage_suppress_reset'] = 0;
-
+ }
}
-
}
diff --git a/files/password.php b/files/password.php
index 0c3f696..77007a9 100644
--- a/files/password.php
+++ b/files/password.php
@@ -12,7 +12,7 @@ namespace {
if (!defined('PASSWORD_BCRYPT')) {
/**
* PHPUnit Process isolation caches constants, but not function declarations.
- * So we need to check if the constants are defined separately from
+ * So we need to check if the constants are defined separately from
* the functions to enable supporting process isolation in userland
* code.
*/
diff --git a/languages/da_DK.php b/languages/da_DK.php
index 5223b19..3975974 100644
--- a/languages/da_DK.php
+++ b/languages/da_DK.php
@@ -1,71 +1,71 @@
-<?php
-$lang = array();
-
-$lang['user_blocked'] = "Du er i øjeblikket låst ude af systemet.";
-$lang['user_verify_failed'] = "Captcha Code var ugyldig.";
-
-$lang['email_password_invalid'] = "E-mail-adresse / password er ugyldige.";
-$lang['email_password_incorrect'] = "E-mail-adresse / password er forkert.";
-$lang['remember_me_invalid'] = "The remember me felt er ugyldigt.";
-
-$lang['password_short'] = "Password er for kort.";
-$lang['password_weak'] = "Password er for svagt.";
-$lang['password_nomatch'] = "Passwords er ikke ens.";
-$lang['password_changed'] = "Password ændret med succes.";
-$lang['password_incorrect'] = "Nuværende adgangskode er forkert.";
-$lang['password_notvalid'] = "Password er forkert.";
-
-$lang['newpassword_short'] = "Ny password er for kort.";
-$lang['newpassword_long'] = "Ny password er for langt.";
-$lang['newpassword_invalid'] = "Ny adgangskode skal indeholde mindst ét stort og småt bogstav, og mindst et ciffer.";
-$lang['newpassword_nomatch'] = "Nye adgangskoder er ikke ens.";
-$lang['newpassword_match'] = "Ny adgangskode er den samme som den gamle adgangskode.";
-
-$lang['email_short'] = "Email address er for kort.";
-$lang['email_long'] = "Email address er for langt.";
-$lang['email_invalid'] = "Email address er forkert.";
-$lang['email_incorrect'] = "Email address er ugyldigt.";
-$lang['email_banned'] = "This email address is not allowed.";
-$lang['email_changed'] = "Email address ændret med succes.";
-
-$lang['newemail_match'] = "Ny e-mail matcher tidligere e-mail.";
-
-$lang['account_inactive'] = "Konto er endnu ikke blevet aktiveret.";
-$lang['account_activated'] = "Konto aktiveret.";
-
-$lang['logged_in'] = "Du er nu logget ind.";
-$lang['logged_out'] = "Du er nu logget ud.";
-
-$lang['system_error'] = "Der er fundet en systemfejl. Venligst prøv igen.";
-
-$lang['register_success'] = "Konto oprettet. Aktivering e-mail sendt til e-mail.";
-$lang['register_success_emailmessage_suppressed'] = "Konto oprettet.";
-$lang['email_taken'] = "Den e-mail-adresse er allerede i brug.";
-
-$lang['resetkey_invalid'] = "Reset key er ugyldig.";
-$lang['resetkey_incorrect'] = "Reset key er forkert.";
-$lang['resetkey_expired'] = "Reset key er udløbet.";
-$lang['password_reset'] = "Password reset succes.";
-
-$lang['activationkey_invalid'] = "Aktiveringsnøgle er ugyldig.";
-$lang['activationkey_incorrect'] = "Aktiveringsnøgle er forkert.";
-$lang['activationkey_expired'] = "Aktiveringsnøgle er udløbet.";
-
-$lang['reset_requested'] = "Password reset anmodning sendt til e-mail-adresse.";
-$lang['reset_requested_emailmessage_suppressed'] = "anmodning Password reset er oprettet.";
-$lang['reset_exists'] = "En nulstilling anmodning findes allerede.";
-
-$lang['already_activated'] = "Konto er allerede aktiveret.";
-$lang['activation_sent'] = "Aktivering e-mail er blevet sendt.";
-$lang['activation_exists'] = "En aktiveringsemail er allerede blevet sendt.";
-
-$lang['email_activation_subject'] = '%s - Aktiver konto';
-$lang['email_activation_body'] = 'Hello,<br/><br/> For at være i stand til at logge ind på din konto skal du først aktivere din konto ved at klikke på følgende link : <strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/> Derefter skal du bruge følgende aktiveringsnøgle: <strong>%3$s</strong><br/><br/> Hvis du ikke har registeret på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
-$lang['email_activation_altbody'] = 'Hello, ' . "\n\n" . 'For at være i stand til at logge ind på din konto skal du først aktivere din konto ved at besøge følgende link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Derefter skal du bruge følgende aktiveringsnøgle: %3$s' . "\n\n" . 'Hvis du ikke har registeret på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
-
-$lang['email_reset_subject'] = '%s - Password reset request';
-$lang['email_reset_body'] = 'Hello,<br/><br/>Nulstill din adgangskode ved at klikke på følgende link :<br/><br/><strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/>Derefter skal du bruge følgende nøgle : <strong>%3$s</strong><br/><br/>Hvis du ikke har anmodet en password reset key på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
-$lang['email_reset_altbody'] = 'Hello, ' . "\n\n" . 'Nulstill din adgangskode ved at klikke på følgende link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Derefter skal du bruge følgende nøgle: %3$s' . "\n\n" . 'Hvis du ikke har anmodet en password reset key på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
-
-$lang['account_deleted'] = "Konto slettet.";
+<?php
+$lang = array();
+
+$lang['user_blocked'] = "Du er i øjeblikket låst ude af systemet.";
+$lang['user_verify_failed'] = "Captcha Code var ugyldig.";
+
+$lang['email_password_invalid'] = "E-mail-adresse / password er ugyldige.";
+$lang['email_password_incorrect'] = "E-mail-adresse / password er forkert.";
+$lang['remember_me_invalid'] = "The remember me felt er ugyldigt.";
+
+$lang['password_short'] = "Password er for kort.";
+$lang['password_weak'] = "Password er for svagt.";
+$lang['password_nomatch'] = "Passwords er ikke ens.";
+$lang['password_changed'] = "Password ændret med succes.";
+$lang['password_incorrect'] = "Nuværende adgangskode er forkert.";
+$lang['password_notvalid'] = "Password er forkert.";
+
+$lang['newpassword_short'] = "Ny password er for kort.";
+$lang['newpassword_long'] = "Ny password er for langt.";
+$lang['newpassword_invalid'] = "Ny adgangskode skal indeholde mindst ét stort og småt bogstav, og mindst et ciffer.";
+$lang['newpassword_nomatch'] = "Nye adgangskoder er ikke ens.";
+$lang['newpassword_match'] = "Ny adgangskode er den samme som den gamle adgangskode.";
+
+$lang['email_short'] = "Email address er for kort.";
+$lang['email_long'] = "Email address er for langt.";
+$lang['email_invalid'] = "Email address er forkert.";
+$lang['email_incorrect'] = "Email address er ugyldigt.";
+$lang['email_banned'] = "This email address is not allowed.";
+$lang['email_changed'] = "Email address ændret med succes.";
+
+$lang['newemail_match'] = "Ny e-mail matcher tidligere e-mail.";
+
+$lang['account_inactive'] = "Konto er endnu ikke blevet aktiveret.";
+$lang['account_activated'] = "Konto aktiveret.";
+
+$lang['logged_in'] = "Du er nu logget ind.";
+$lang['logged_out'] = "Du er nu logget ud.";
+
+$lang['system_error'] = "Der er fundet en systemfejl. Venligst prøv igen.";
+
+$lang['register_success'] = "Konto oprettet. Aktivering e-mail sendt til e-mail.";
+$lang['register_success_emailmessage_suppressed'] = "Konto oprettet.";
+$lang['email_taken'] = "Den e-mail-adresse er allerede i brug.";
+
+$lang['resetkey_invalid'] = "Reset key er ugyldig.";
+$lang['resetkey_incorrect'] = "Reset key er forkert.";
+$lang['resetkey_expired'] = "Reset key er udløbet.";
+$lang['password_reset'] = "Password reset succes.";
+
+$lang['activationkey_invalid'] = "Aktiveringsnøgle er ugyldig.";
+$lang['activationkey_incorrect'] = "Aktiveringsnøgle er forkert.";
+$lang['activationkey_expired'] = "Aktiveringsnøgle er udløbet.";
+
+$lang['reset_requested'] = "Password reset anmodning sendt til e-mail-adresse.";
+$lang['reset_requested_emailmessage_suppressed'] = "anmodning Password reset er oprettet.";
+$lang['reset_exists'] = "En nulstilling anmodning findes allerede.";
+
+$lang['already_activated'] = "Konto er allerede aktiveret.";
+$lang['activation_sent'] = "Aktivering e-mail er blevet sendt.";
+$lang['activation_exists'] = "En aktiveringsemail er allerede blevet sendt.";
+
+$lang['email_activation_subject'] = '%s - Aktiver konto';
+$lang['email_activation_body'] = 'Hello,<br/><br/> For at være i stand til at logge ind på din konto skal du først aktivere din konto ved at klikke på følgende link : <strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/> Derefter skal du bruge følgende aktiveringsnøgle: <strong>%3$s</strong><br/><br/> Hvis du ikke har registeret på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
+$lang['email_activation_altbody'] = 'Hello, ' . "\n\n" . 'For at være i stand til at logge ind på din konto skal du først aktivere din konto ved at besøge følgende link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Derefter skal du bruge følgende aktiveringsnøgle: %3$s' . "\n\n" . 'Hvis du ikke har registeret på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
+
+$lang['email_reset_subject'] = '%s - Password reset request';
+$lang['email_reset_body'] = 'Hello,<br/><br/>Nulstill din adgangskode ved at klikke på følgende link :<br/><br/><strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/>Derefter skal du bruge følgende nøgle : <strong>%3$s</strong><br/><br/>Hvis du ikke har anmodet en password reset key på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
+$lang['email_reset_altbody'] = 'Hello, ' . "\n\n" . 'Nulstill din adgangskode ved at klikke på følgende link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Derefter skal du bruge følgende nøgle: %3$s' . "\n\n" . 'Hvis du ikke har anmodet en password reset key på %1$s for nylig så er denne besked blev sendt ved en fejl, venlisgt ignorere det.';
+
+$lang['account_deleted'] = "Konto slettet.";
$lang['function_disabled'] = "Denne funktion er blevet deaktiveret."; \ No newline at end of file
diff --git a/languages/de_DE.php b/languages/de_DE.php
index afd2741..57605c1 100644
--- a/languages/de_DE.php
+++ b/languages/de_DE.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Dein Benutzer ist im System aktuell gesperrt.";
diff --git a/languages/en_GB.php b/languages/en_GB.php
index a348ebc..c5b71a7 100755..100644
--- a/languages/en_GB.php
+++ b/languages/en_GB.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "You are currently locked out of the system.";
diff --git a/languages/fa_IR.php b/languages/fa_IR.php
index 9f9f662..e55081d 100644
--- a/languages/fa_IR.php
+++ b/languages/fa_IR.php
@@ -1,5 +1,4 @@
-<?php
-
+<?php
$lang = array();
$lang['user_blocked'] = "شما از طرف سیستم بلاک شدید";
diff --git a/languages/fr_FR.php b/languages/fr_FR.php
index 70d93df..83307f9 100755..100644
--- a/languages/fr_FR.php
+++ b/languages/fr_FR.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Vous &ecirc;tes actuellement bloqu&eacute;s du syst&egrave;me.";
diff --git a/languages/gr_GR.php b/languages/gr_GR.php
index bcdcaf3..077f5cc 100644
--- a/languages/gr_GR.php
+++ b/languages/gr_GR.php
@@ -1,72 +1,71 @@
-<?php
-
-$lang = array();
-
-$lang['user_blocked'] = "Αυτήν τη στιγμή είστε μπλοκαρισμένοι από το σύστημα.";
-$lang['user_verify_failed'] = "Ο κωδικός Captcha ήταν λανθασμένος.";
-
-$lang['email_password_invalid'] = "Το Email / password είναι μη έγκυρα.";
-$lang['email_password_incorrect'] = "Το Email address / password είναι λανθασμένα.";
-$lang['remember_me_invalid'] = "Το πεδίο remember me είναι μη έγκυρο.";
-
-$lang['password_short'] = "Ο κωδικός είναι πολύ μικρός.";
-$lang['password_weak'] = "Ο κωδικός είναι πολύ αδύναμος.";
-$lang['password_nomatch'] = "Οι κωδικοί δεν ταιριάζουν.";
-$lang['password_changed'] = "Ο κωδικός άλλαξε επιτυχώς.";
-$lang['password_incorrect'] = "Ο τρέχων κωδικός είναι λανθασμένος.";
-$lang['password_notvalid'] = "Ο κωδικός είναι μη έγκυρος.";
-
-$lang['newpassword_short'] = "Ο νέος κωδικός είναι πολύ μικρός.";
-$lang['newpassword_long'] = "Ο νέος κωδικός είναι πολύ μεγάλος.";
-$lang['newpassword_invalid'] = "Ο νέος κωδικός πρέπει να περιέχει τουλάχιστον ένα κεφαλαίο χαρακτήρα, ένα μικρό χαρακτήρα και έναν αριθμό.";
-$lang['newpassword_nomatch'] = "Οι νέοι κωδικοί δεν ταιριάζουν.";
-$lang['newpassword_match'] = "Ο νέος κωδικός είναι ίδιος με τον παλιό.";
-
-$lang['email_short'] = "Το Email είναι πολύ μικρό.";
-$lang['email_long'] = "Το Email είναι πολύ μεγάλο.";
-$lang['email_invalid'] = "Το Email δεν είναι έγκυρο.";
-$lang['email_incorrect'] = "Το Email είναι λανθασμένο.";
-$lang['email_banned'] = "Αυτή η διεύθυνση email δεν επιτρέπεται.";
-$lang['email_changed'] = "Το Email άλλαξε επιτυχώς.";
-
-$lang['newemail_match'] = "Το καινούριο email είναι ίδιο με το παλιό.";
-
-$lang['account_inactive'] = "Ο λογαριασμός δεν έχει ενεργοποιηθεί ακόμα.";
-$lang['account_activated'] = "Ο λογαριασμός ενεργοποιήθηκε.";
-
-$lang['logged_in'] = "Είστε συνδεδεμένος.";
-$lang['logged_out'] = "Αποσυνδεθήκατε.";
-
-$lang['system_error'] = "Το σύστημα αντιμετώπισε ένα σφάλμα. Προσπαθήστε ξανά.";
-
-$lang['register_success'] = "Ο λογαριασμός δημιουργήθηκε. Το email ενεργοποίησης στάλθηκε στη διεύθυνση email.";
-$lang['register_success_emailmessage_suppressed'] = "Ο λογαριασμός δημιουργήθηκε.";
-$lang['email_taken'] = "Το email χρησιμοποιείται ήδη.";
-
-$lang['resetkey_invalid'] = "Το κλειδί επαναφοράς δεν είναι έγκυρο.";
-$lang['resetkey_incorrect'] = "Το κλειδί επαναφοράς είναι λανθασμένο.";
-$lang['resetkey_expired'] = "Το κλειδί επαναφοράς έχει λήξει.";
-$lang['password_reset'] = "Επαναφορά κωδικού επιτυχής.";
-
-$lang['activationkey_invalid'] = "Το κλειδί ενεργοποίησης δεν είναι έγκυρο.";
-$lang['activationkey_incorrect'] = "Το κλειδί ενεργοποίησης είναι λανθασμένο.";
-$lang['activationkey_expired'] = "Το κλειδί ενεργοποίησης έχει λήξει.";
-
-$lang['reset_requested'] = "Η αίτηση επαναφοράς κωδικού στάλθηκε στη διεύθυνση email.";
-$lang['reset_requested_emailmessage_suppressed'] = "Η αίτηση επαναφοράς κωδικού δημιουργήθηκε.";
-$lang['reset_exists'] = "Μία αίτηση επαναφοράς κωδικού υπάρχει ήδη.";
-
-$lang['already_activated'] = "Ο λογαριασμός έχει ήδη ενεργοποιηθεί";
-$lang['activation_sent'] = "Το email ενεργοποίησης στάλθηκε";
-$lang['activation_exists'] = "Το email ενεργοποίησης έχει ήδη σταλεί.";
-
-$lang['email_activation_subject'] = '%s - Ενεργοποίηση λογαριασμού';
-$lang['email_activation_body'] = 'Γεια σου,<br/><br/> Για να μπορέσεις να συνδεθείς στο λογαριασμό σου πρέπει πρώτα να τον ενεργοποιήσεις κάνοντας κλικ στο παρακάτω link : <strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/> Έπειτα, πρέπει να χρησιμοποιήσεις το παρακάτω κλειδί ενεργοποίησης: <strong>%3$s</strong><br/><br/> Αν δεν έκανες εγγραφή στο %1$s πρόσφατα, αυτό το email στάλθηκε κατά λάθος και μπορείς να το αγνοήσεις.';
-$lang['email_activation_altbody'] = 'Γεια σου, ' . "\n\n" . 'Για να μπορέσεις να συνδεθείς στο λογαριασμό σου πρέπει πρώτα να τον ενεργοποιήσεις κάνοντας κλικ στο παρακάτω link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Έπειτα, πρέπει να χρησιμοποιήσεις το παρακάτω κλειδί ενεργοποίησης: %3$s' . "\n\n" . 'Αν δεν έκανες εγγραφή στο %1$s πρόσφατα, αυτό το email στάλθηκε κατά λάθος και μπορείς να το αγνοήσεις.';
-
-$lang['email_reset_subject'] = '%s - Αίτηση επαναφοράς κωδικού';
-$lang['email_reset_body'] = 'Γεια σου,<br/><br/>Για να επαναφέρεις τον κωδικό σου κάνε κλικ στο παρακάτω link :<br/><br/><strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/>Στη συνέχεια, χρησιμοποίησε το παρακάτω κλειδί επαναφοράς κωδικού: <strong>%3$s</strong><br/><br/>Αν δεν ζήτησες επαναφορά κωδικού στο %1$s πρόσφατα, μπορείς να αγνοήσεις αυτό το μήνυμα.';
-$lang['email_reset_altbody'] = 'Γεια σου, ' . "\n\n" . 'Για να επαναφέρεις τον κωδικό σου κάνε κλικ στο παρακάτω link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Στη συνέχεια, χρησιμοποίησε το παρακάτω κλειδί επαναφοράς κωδικού: %3$s' . "\n\n" . 'Αν δεν ζήτησες επαναφορά κωδικού στο %1$s πρόσφατα, μπορείς να αγνοήσεις αυτό το μήνυμα.';
-
-$lang['account_deleted'] = "Ο λογαριασμός διαγράφτηκε επιτυχώς..";
+<?php
+$lang = array();
+
+$lang['user_blocked'] = "Αυτήν τη στιγμή είστε μπλοκαρισμένοι από το σύστημα.";
+$lang['user_verify_failed'] = "Ο κωδικός Captcha ήταν λανθασμένος.";
+
+$lang['email_password_invalid'] = "Το Email / password είναι μη έγκυρα.";
+$lang['email_password_incorrect'] = "Το Email address / password είναι λανθασμένα.";
+$lang['remember_me_invalid'] = "Το πεδίο remember me είναι μη έγκυρο.";
+
+$lang['password_short'] = "Ο κωδικός είναι πολύ μικρός.";
+$lang['password_weak'] = "Ο κωδικός είναι πολύ αδύναμος.";
+$lang['password_nomatch'] = "Οι κωδικοί δεν ταιριάζουν.";
+$lang['password_changed'] = "Ο κωδικός άλλαξε επιτυχώς.";
+$lang['password_incorrect'] = "Ο τρέχων κωδικός είναι λανθασμένος.";
+$lang['password_notvalid'] = "Ο κωδικός είναι μη έγκυρος.";
+
+$lang['newpassword_short'] = "Ο νέος κωδικός είναι πολύ μικρός.";
+$lang['newpassword_long'] = "Ο νέος κωδικός είναι πολύ μεγάλος.";
+$lang['newpassword_invalid'] = "Ο νέος κωδικός πρέπει να περιέχει τουλάχιστον ένα κεφαλαίο χαρακτήρα, ένα μικρό χαρακτήρα και έναν αριθμό.";
+$lang['newpassword_nomatch'] = "Οι νέοι κωδικοί δεν ταιριάζουν.";
+$lang['newpassword_match'] = "Ο νέος κωδικός είναι ίδιος με τον παλιό.";
+
+$lang['email_short'] = "Το Email είναι πολύ μικρό.";
+$lang['email_long'] = "Το Email είναι πολύ μεγάλο.";
+$lang['email_invalid'] = "Το Email δεν είναι έγκυρο.";
+$lang['email_incorrect'] = "Το Email είναι λανθασμένο.";
+$lang['email_banned'] = "Αυτή η διεύθυνση email δεν επιτρέπεται.";
+$lang['email_changed'] = "Το Email άλλαξε επιτυχώς.";
+
+$lang['newemail_match'] = "Το καινούριο email είναι ίδιο με το παλιό.";
+
+$lang['account_inactive'] = "Ο λογαριασμός δεν έχει ενεργοποιηθεί ακόμα.";
+$lang['account_activated'] = "Ο λογαριασμός ενεργοποιήθηκε.";
+
+$lang['logged_in'] = "Είστε συνδεδεμένος.";
+$lang['logged_out'] = "Αποσυνδεθήκατε.";
+
+$lang['system_error'] = "Το σύστημα αντιμετώπισε ένα σφάλμα. Προσπαθήστε ξανά.";
+
+$lang['register_success'] = "Ο λογαριασμός δημιουργήθηκε. Το email ενεργοποίησης στάλθηκε στη διεύθυνση email.";
+$lang['register_success_emailmessage_suppressed'] = "Ο λογαριασμός δημιουργήθηκε.";
+$lang['email_taken'] = "Το email χρησιμοποιείται ήδη.";
+
+$lang['resetkey_invalid'] = "Το κλειδί επαναφοράς δεν είναι έγκυρο.";
+$lang['resetkey_incorrect'] = "Το κλειδί επαναφοράς είναι λανθασμένο.";
+$lang['resetkey_expired'] = "Το κλειδί επαναφοράς έχει λήξει.";
+$lang['password_reset'] = "Επαναφορά κωδικού επιτυχής.";
+
+$lang['activationkey_invalid'] = "Το κλειδί ενεργοποίησης δεν είναι έγκυρο.";
+$lang['activationkey_incorrect'] = "Το κλειδί ενεργοποίησης είναι λανθασμένο.";
+$lang['activationkey_expired'] = "Το κλειδί ενεργοποίησης έχει λήξει.";
+
+$lang['reset_requested'] = "Η αίτηση επαναφοράς κωδικού στάλθηκε στη διεύθυνση email.";
+$lang['reset_requested_emailmessage_suppressed'] = "Η αίτηση επαναφοράς κωδικού δημιουργήθηκε.";
+$lang['reset_exists'] = "Μία αίτηση επαναφοράς κωδικού υπάρχει ήδη.";
+
+$lang['already_activated'] = "Ο λογαριασμός έχει ήδη ενεργοποιηθεί";
+$lang['activation_sent'] = "Το email ενεργοποίησης στάλθηκε";
+$lang['activation_exists'] = "Το email ενεργοποίησης έχει ήδη σταλεί.";
+
+$lang['email_activation_subject'] = '%s - Ενεργοποίηση λογαριασμού';
+$lang['email_activation_body'] = 'Γεια σου,<br/><br/> Για να μπορέσεις να συνδεθείς στο λογαριασμό σου πρέπει πρώτα να τον ενεργοποιήσεις κάνοντας κλικ στο παρακάτω link : <strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/> Έπειτα, πρέπει να χρησιμοποιήσεις το παρακάτω κλειδί ενεργοποίησης: <strong>%3$s</strong><br/><br/> Αν δεν έκανες εγγραφή στο %1$s πρόσφατα, αυτό το email στάλθηκε κατά λάθος και μπορείς να το αγνοήσεις.';
+$lang['email_activation_altbody'] = 'Γεια σου, ' . "\n\n" . 'Για να μπορέσεις να συνδεθείς στο λογαριασμό σου πρέπει πρώτα να τον ενεργοποιήσεις κάνοντας κλικ στο παρακάτω link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Έπειτα, πρέπει να χρησιμοποιήσεις το παρακάτω κλειδί ενεργοποίησης: %3$s' . "\n\n" . 'Αν δεν έκανες εγγραφή στο %1$s πρόσφατα, αυτό το email στάλθηκε κατά λάθος και μπορείς να το αγνοήσεις.';
+
+$lang['email_reset_subject'] = '%s - Αίτηση επαναφοράς κωδικού';
+$lang['email_reset_body'] = 'Γεια σου,<br/><br/>Για να επαναφέρεις τον κωδικό σου κάνε κλικ στο παρακάτω link :<br/><br/><strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/>Στη συνέχεια, χρησιμοποίησε το παρακάτω κλειδί επαναφοράς κωδικού: <strong>%3$s</strong><br/><br/>Αν δεν ζήτησες επαναφορά κωδικού στο %1$s πρόσφατα, μπορείς να αγνοήσεις αυτό το μήνυμα.';
+$lang['email_reset_altbody'] = 'Γεια σου, ' . "\n\n" . 'Για να επαναφέρεις τον κωδικό σου κάνε κλικ στο παρακάτω link :' . "\n" . '%1$s/%2$s' . "\n\n" . 'Στη συνέχεια, χρησιμοποίησε το παρακάτω κλειδί επαναφοράς κωδικού: %3$s' . "\n\n" . 'Αν δεν ζήτησες επαναφορά κωδικού στο %1$s πρόσφατα, μπορείς να αγνοήσεις αυτό το μήνυμα.';
+
+$lang['account_deleted'] = "Ο λογαριασμός διαγράφτηκε επιτυχώς..";
$lang['function_disabled'] = "Αυτή η λειτουργία έχει απενεργοποιηθεί."; \ No newline at end of file
diff --git a/languages/it_IT.php b/languages/it_IT.php
index 4d04f1d..2b5da44 100644
--- a/languages/it_IT.php
+++ b/languages/it_IT.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = 'Il tuo account &egrave; stato bloccato.';
diff --git a/languages/nl_BE.php b/languages/nl_BE.php
index 5b7aeb5..13c5a1c 100644
--- a/languages/nl_BE.php
+++ b/languages/nl_BE.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Je bent momenteel uitgesloten van het systeem.";
diff --git a/languages/nl_NL.php b/languages/nl_NL.php
index e4d96c6..3490020 100644
--- a/languages/nl_NL.php
+++ b/languages/nl_NL.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Je bent momenteel uitgesloten van het systeem.";
diff --git a/languages/no_NB.php b/languages/no_NB.php
index 2876de0..73976ff 100644
--- a/languages/no_NB.php
+++ b/languages/no_NB.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Du er for øyeblikket låst ute av systemet.";
diff --git a/languages/pt_BR.php b/languages/pt_BR.php
index e2323c1..92882c8 100644
--- a/languages/pt_BR.php
+++ b/languages/pt_BR.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Você atualmente está bloqueado.";
diff --git a/languages/ru_RU.php b/languages/ru_RU.php
index f1b016d..d2bc81a 100644
--- a/languages/ru_RU.php
+++ b/languages/ru_RU.php
@@ -1,72 +1,71 @@
-<?php
-
-$lang = array();
-
-$lang['user_blocked'] = "Ваш аккаунт заблокирован.";
-$lang['user_verify_failed'] = "Защитный код код недействителен.";
-
-$lang['email_password_invalid'] = "Недопустимые E-Mail или пароль.";
-$lang['email_password_incorrect'] = "Пользователь с указанным E-Mail'ом не обнаружен в системе или пароль не подходит.";
-$lang['remember_me_invalid'] = 'Недопустимое значение поля "запомнить пользователя".';
-
-$lang['password_short'] = "Пароль слишком короткий.";
-$lang['password_weak'] = "Password is too weak.";
-$lang['password_nomatch'] = "Пароли не совпадают.";
-$lang['password_changed'] = "Пароль успешно изменен.";
-$lang['password_incorrect'] = "Текущий пароль указан неверно.";
-$lang['password_notvalid'] = "Недопустимый пароль.";
-
-$lang['newpassword_short'] = "Новый пароль слишком короткий.";
-$lang['newpassword_long'] = "Новый пароль слишком длинный.";
-$lang['newpassword_invalid'] = "Новый пароль должен содержать хотя бы одну цифру, хотя бы одну строчную букву и хотя бы одну прописную..";
-$lang['newpassword_nomatch'] = "Новые пароли не совпадают.";
-$lang['newpassword_match'] = "Новый пароль такой же, как старый.";
-
-$lang['email_short'] = "Адрес E-Mail слишком короткий.";
-$lang['email_long'] = "Адрес E-Mail слишком длинный";
-$lang['email_invalid'] = "Недопустимый E-Mail.";
-$lang['email_incorrect'] = "E-Mail неверен.";
-$lang['email_banned'] = "Этот E-Mail запрещен.";
-$lang['email_changed'] = "E-Mail изменен успешно.";
-$lang['email_taken'] = "Этот E-Mail уже используется!.";
-
-$lang['newemail_match'] = "Новый E-Mail совпадает со старым.";
-
-$lang['account_inactive'] = "Аккаунт еще не активирован.";
-$lang['account_activated'] = "Аккаунт активирован.";
-
-$lang['logged_in'] = "Вы вошли в систему.";
-$lang['logged_out'] = "Вы вышли из системы.";
-
-$lang['system_error'] = "Произошла системная ошибка (проблема с печеньками, сессией или базой данных). Попробуйте еще разок.";
-
-$lang['register_success'] = "Учётная запись создана. На вашу почту отправлены инструкции по активации.";
-$lang['register_success_emailmessage_suppressed'] = "Учётная запись создана.";
-
-$lang['resetkey_invalid'] = "Ключ сброса пароля неправильного формата.";
-$lang['resetkey_incorrect'] = "Ключ сброса пароля неверный.";
-$lang['resetkey_expired'] = "Срок действия ключа сброса пароля истёк!";
-
-$lang['activationkey_invalid'] = "Недопустимый ключ акцивации учётной записи.";
-$lang['activationkey_incorrect'] = "Неверный ключ акцивации учётной записи.";
-$lang['activationkey_expired'] = "Срок действия ключа активации истёк!";
-
-$lang['reset_requested'] = "Запрос на сброс пароля выслан по почте.";
-$lang['reset_requested_emailmessage_suppressed'] = "Запрос сброса пароля создан.";
-$lang['reset_exists'] = "Сброс пароля уже запрошен.";
-$lang['password_reset'] = "Пароль сброшен успешно.";
-
-$lang['already_activated'] = "Учетная запись уже активирована.";
-$lang['activation_sent'] = "Сообщение с инструкциями по активации учетной записи выслано.";
-$lang['activation_exists'] = "Мы уже высылали вам сообщение с инструкциями по активации учетной записи.";
-
-$lang['email_activation_subject'] = "%s - Активировать учётную запись";
-$lang['email_activation_body'] = 'Здравствуйте,<br/><br/>для входа в систему вам нужно сначала активировать ваш аккаунт. Перейдите пожалуйста по этой ссылке: <strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/> и введите следующий ключ активации: <strong>%3$s</strong><br/><br/> Если не регистрировались на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
-$lang['email_activation_altbody'] = 'Здравствуйте, \n\n для входа в систему вам нужно сначала активировать ваш аккаунт. Перейдите пожалуйста по этой ссылке: \n %1$s/%2$s \n\n и введите следующий ключ активации: %3$s \n\n Если не регистрировались на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
-
-$lang['email_reset_subject'] = "%s - Запрос сброса пароля";
-$lang['email_reset_body'] = 'Здравствуйте,<br/><br/>Для сброса вашего пароля пройдите пожалуйста по этой ссылке:<br/><br/><strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/>Вам нужно будет использовать следующий ключ для сброса пароля: <strong>%3$s</strong><br/><br/>Если вы недавно не запрашивали сброс пароля на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
-$lang['email_reset_altbody'] = 'Здравствуйте, \n\n Для сброса вашего пароля пройдите пожалуйста по этой ссылке: \n %1$s/%2$s\n\n Вам нужно будет использовать следующий ключ для сброса пароля: %3$s\n\n Если вы недавно не запрашивали сброс пароля на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
-
-$lang['account_deleted'] = "Учётная запись удалена.";
-$lang['function_disabled'] = "Эта функция была отключена.";
+<?php
+$lang = array();
+
+$lang['user_blocked'] = "Ваш аккаунт заблокирован.";
+$lang['user_verify_failed'] = "Защитный код код недействителен.";
+
+$lang['email_password_invalid'] = "Недопустимые E-Mail или пароль.";
+$lang['email_password_incorrect'] = "Пользователь с указанным E-Mail'ом не обнаружен в системе или пароль не подходит.";
+$lang['remember_me_invalid'] = 'Недопустимое значение поля "запомнить пользователя".';
+
+$lang['password_short'] = "Пароль слишком короткий.";
+$lang['password_weak'] = "Password is too weak.";
+$lang['password_nomatch'] = "Пароли не совпадают.";
+$lang['password_changed'] = "Пароль успешно изменен.";
+$lang['password_incorrect'] = "Текущий пароль указан неверно.";
+$lang['password_notvalid'] = "Недопустимый пароль.";
+
+$lang['newpassword_short'] = "Новый пароль слишком короткий.";
+$lang['newpassword_long'] = "Новый пароль слишком длинный.";
+$lang['newpassword_invalid'] = "Новый пароль должен содержать хотя бы одну цифру, хотя бы одну строчную букву и хотя бы одну прописную..";
+$lang['newpassword_nomatch'] = "Новые пароли не совпадают.";
+$lang['newpassword_match'] = "Новый пароль такой же, как старый.";
+
+$lang['email_short'] = "Адрес E-Mail слишком короткий.";
+$lang['email_long'] = "Адрес E-Mail слишком длинный";
+$lang['email_invalid'] = "Недопустимый E-Mail.";
+$lang['email_incorrect'] = "E-Mail неверен.";
+$lang['email_banned'] = "Этот E-Mail запрещен.";
+$lang['email_changed'] = "E-Mail изменен успешно.";
+$lang['email_taken'] = "Этот E-Mail уже используется!.";
+
+$lang['newemail_match'] = "Новый E-Mail совпадает со старым.";
+
+$lang['account_inactive'] = "Аккаунт еще не активирован.";
+$lang['account_activated'] = "Аккаунт активирован.";
+
+$lang['logged_in'] = "Вы вошли в систему.";
+$lang['logged_out'] = "Вы вышли из системы.";
+
+$lang['system_error'] = "Произошла системная ошибка (проблема с печеньками, сессией или базой данных). Попробуйте еще разок.";
+
+$lang['register_success'] = "Учётная запись создана. На вашу почту отправлены инструкции по активации.";
+$lang['register_success_emailmessage_suppressed'] = "Учётная запись создана.";
+
+$lang['resetkey_invalid'] = "Ключ сброса пароля неправильного формата.";
+$lang['resetkey_incorrect'] = "Ключ сброса пароля неверный.";
+$lang['resetkey_expired'] = "Срок действия ключа сброса пароля истёк!";
+
+$lang['activationkey_invalid'] = "Недопустимый ключ акцивации учётной записи.";
+$lang['activationkey_incorrect'] = "Неверный ключ акцивации учётной записи.";
+$lang['activationkey_expired'] = "Срок действия ключа активации истёк!";
+
+$lang['reset_requested'] = "Запрос на сброс пароля выслан по почте.";
+$lang['reset_requested_emailmessage_suppressed'] = "Запрос сброса пароля создан.";
+$lang['reset_exists'] = "Сброс пароля уже запрошен.";
+$lang['password_reset'] = "Пароль сброшен успешно.";
+
+$lang['already_activated'] = "Учетная запись уже активирована.";
+$lang['activation_sent'] = "Сообщение с инструкциями по активации учетной записи выслано.";
+$lang['activation_exists'] = "Мы уже высылали вам сообщение с инструкциями по активации учетной записи.";
+
+$lang['email_activation_subject'] = "%s - Активировать учётную запись";
+$lang['email_activation_body'] = 'Здравствуйте,<br/><br/>для входа в систему вам нужно сначала активировать ваш аккаунт. Перейдите пожалуйста по этой ссылке: <strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/> и введите следующий ключ активации: <strong>%3$s</strong><br/><br/> Если не регистрировались на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
+$lang['email_activation_altbody'] = 'Здравствуйте, \n\n для входа в систему вам нужно сначала активировать ваш аккаунт. Перейдите пожалуйста по этой ссылке: \n %1$s/%2$s \n\n и введите следующий ключ активации: %3$s \n\n Если не регистрировались на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
+
+$lang['email_reset_subject'] = "%s - Запрос сброса пароля";
+$lang['email_reset_body'] = 'Здравствуйте,<br/><br/>Для сброса вашего пароля пройдите пожалуйста по этой ссылке:<br/><br/><strong><a href="%1$s/%2$s">%1$s/%2$s</a></strong><br/><br/>Вам нужно будет использовать следующий ключ для сброса пароля: <strong>%3$s</strong><br/><br/>Если вы недавно не запрашивали сброс пароля на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
+$lang['email_reset_altbody'] = 'Здравствуйте, \n\n Для сброса вашего пароля пройдите пожалуйста по этой ссылке: \n %1$s/%2$s\n\n Вам нужно будет использовать следующий ключ для сброса пароля: %3$s\n\n Если вы недавно не запрашивали сброс пароля на сайте %1$s, значит это сообщение вы получили по ошибке. Пожалуйста, проигнорируйте его.';
+
+$lang['account_deleted'] = "Учётная запись удалена.";
+$lang['function_disabled'] = "Эта функция была отключена.";
diff --git a/languages/se_SE.php b/languages/se_SE.php
index 11d763b..e9560ed 100755..100644
--- a/languages/se_SE.php
+++ b/languages/se_SE.php
@@ -1,5 +1,4 @@
<?php
-
$lang = array();
$lang['user_blocked'] = "Du är för närvarande blockerad från systemet.";
diff --git a/tests/AuthTest.php b/tests/AuthTest.php
index b6b3b2d..23b3978 100644
--- a/tests/AuthTest.php
+++ b/tests/AuthTest.php
@@ -2,245 +2,233 @@
class AuthTest extends PHPUnit_Framework_TestCase
{
- public $auth;
- public $config;
- public $dbh;
+ public $auth;
+ public $config;
+ public $dbh;
- private $hash;
+ private $hash;
- public function __construct()
- {
- require_once __DIR__ . '/../vendor/autoload.php';
- require_once __DIR__ . '/../Auth.php';
- require_once __DIR__ . '/../Config.php';
+ public function __construct()
+ {
+ require_once __DIR__ . '/../vendor/autoload.php';
+ require_once __DIR__ . '/../Auth.php';
+ require_once __DIR__ . '/../Config.php';
- $this->dbh = new PDO("mysql:host=127.0.0.1;dbname=phpauthtest", "root", "");
+ $this->dbh = new PDO("mysql:host=127.0.0.1;dbname=phpauthtest", "root", "");
+ $this->config = new PHPAuth\Config($this->dbh);
+ $this->auth = new PHPAuth\Auth($this->dbh, $this->config);
- $this->config = new PHPAuth\Config($this->dbh);
- $this->auth = new PHPAuth\Auth($this->dbh, $this->config);
+ // Clean up the database
+ $this->dbh->exec("DELETE FROM attempts;");
+ $this->dbh->exec("DELETE FROM users;");
+ $this->dbh->exec("DELETE FROM sessions;");
+ $this->dbh->exec("DELETE FROM requests;");
+ }
- // Clean up the database
- $this->dbh->exec("DELETE FROM attempts;");
- $this->dbh->exec("DELETE FROM users;");
- $this->dbh->exec("DELETE FROM sessions;");
- $this->dbh->exec("DELETE FROM requests;");
- }
+ public function testRegister()
+ {
+ // Successful registration
+ $this->assertFalse($this->auth->register('test@email.com', 'T3H-1337-P@$$', 'T3H-1337-P@$$')['error']);
- public function testRegister()
- {
- // Successful registration
- $this->assertFalse($this->auth->register('test@email.com', 'T3H-1337-P@$$', 'T3H-1337-P@$$')['error']);
+ // Failed registration: same email
+ $this->assertTrue($this->auth->register('test@email.com', 'T3H-1337-P@$$', 'T3H-1337-P@$$')['error']);
- // Failed registration: same email
- $this->assertTrue($this->auth->register('test@email.com', 'T3H-1337-P@$$', 'T3H-1337-P@$$')['error']);
+ // Failed registration: invalid email address
+ $this->assertTrue($this->auth->register('InvalidEmail', 'T3H-1337-P@$$', 'T3H-1337-P@$$')['error']);
- // Failed registration: invalid email address
- $this->assertTrue($this->auth->register('InvalidEmail', 'T3H-1337-P@$$', 'T3H-1337-P@$$')['error']);
+ // Failed registration: invalid password
+ $this->assertTrue($this->auth->register('test2@email.com', 'lamepass', 'lamepass')['error']);
+ }
- // Failed registration: invalid password
- $this->assertTrue($this->auth->register('test2@email.com', 'lamepass', 'lamepass')['error']);
- }
-
- /**
+ /**
* @depends testRegister
*/
+ public function testLogin()
+ {
+ // Empty attempts table
+ $this->dbh->exec("DELETE FROM attempts;");
- public function testLogin()
- {
- // Empty attempts table
- $this->dbh->exec("DELETE FROM attempts;");
-
- // Successful login
- $this->assertFalse($this->auth->login("test@email.com", 'T3H-1337-P@$$')['error']);
+ // Successful login
+ $this->assertFalse($this->auth->login("test@email.com", 'T3H-1337-P@$$')['error']);
- // Failed login: incorrect email
- $this->assertTrue($this->auth->login("incorrect@email.com", "IncorrectPassword1")['error']);
+ // Failed login: incorrect email
+ $this->assertTrue($this->auth->login("incorrect@email.com", "IncorrectPassword1")['error']);
- // Failed login: incorrect password
- $this->assertTrue($this->auth->login("test@email.com", "IncorrectPassword1")['error']);
- }
+ // Failed login: incorrect password
+ $this->assertTrue($this->auth->login("test@email.com", "IncorrectPassword1")['error']);
+ }
- /**
+ /**
* @depends testLogin
*/
+ public function testCheckSession()
+ {
+ // Get the user's (created and logged in as earlier) session hash
+ $hash = $this->dbh->query("SELECT hash FROM sessions WHERE uid = (SELECT id FROM users WHERE email = 'test@email.com');", PDO::FETCH_ASSOC)->fetch()['hash'];
- public function testCheckSession()
- {
- // Get the user's (created and logged in as earlier) session hash
- $hash = $this->dbh->query("SELECT hash FROM sessions WHERE uid = (SELECT id FROM users WHERE email = 'test@email.com');", PDO::FETCH_ASSOC)->fetch()['hash'];
-
- // Successful checkSession
- $this->assertTrue($this->auth->checkSession($hash));
+ // Successful checkSession
+ $this->assertTrue($this->auth->checkSession($hash));
- // Failed checkSession: invalid session hash
- $this->assertFalse($this->auth->checkSession("invalidhash"));
+ // Failed checkSession: invalid session hash
+ $this->assertFalse($this->auth->checkSession("invalidhash"));
- // Failed checkSession: inexistant session hash
- $this->assertFalse($this->auth->checkSession("aaafda8ea2c65a596c7e089f256b1534f2298000"));
- }
+ // Failed checkSession: inexistant session hash
+ $this->assertFalse($this->auth->checkSession("aaafda8ea2c65a596c7e089f256b1534f2298000"));
+ }
- /**
+ /**
* @depends testLogin
*/
+ public function testGetSessionUID()
+ {
+ $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
+ $hash = $this->dbh->query("SELECT hash FROM sessions WHERE uid = {$uid};", PDO::FETCH_ASSOC)->fetch()['hash'];
- public function testGetSessionUID()
- {
- $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
- $hash = $this->dbh->query("SELECT hash FROM sessions WHERE uid = {$uid};", PDO::FETCH_ASSOC)->fetch()['hash'];
+ // Successful getSessionUID
+ $this->assertEquals($uid, $this->auth->getSessionUID($hash));
- // Successful getSessionUID
- $this->assertEquals($uid, $this->auth->getSessionUID($hash));
+ // Failed getSessionUID: invalid session hash
+ $this->assertFalse($this->auth->getSessionUID("invalidhash"));
- // Failed getSessionUID: invalid session hash
- $this->assertFalse($this->auth->getSessionUID("invalidhash"));
+ // Failed getSessionUID: inexistant session hash
+ $this->assertFalse($this->auth->getSessionUID("aaafda8ea2c65a596c7e089f256b1534f2298000"));
+ }
- // Failed getSessionUID: inexistant session hash
- $this->assertFalse($this->auth->getSessionUID("aaafda8ea2c65a596c7e089f256b1534f2298000"));
- }
-
- /**
+ /**
* @depends testRegister
*/
+ public function testIsEmailTaken()
+ {
+ // Successful isEmailTaken
+ $this->assertTrue($this->auth->isEmailTaken("test@email.com"));
- public function testIsEmailTaken()
- {
- // Successful isEmailTaken
- $this->assertTrue($this->auth->isEmailTaken("test@email.com"));
-
- // Failed isEmailTaken: unused email
- $this->assertFalse($this->auth->isEmailTaken("unused@email.com"));
- }
+ // Failed isEmailTaken: unused email
+ $this->assertFalse($this->auth->isEmailTaken("unused@email.com"));
+ }
- /**
+ /**
* @depends testRegister
*/
+ public function testGetUser()
+ {
+ $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
- public function testGetUser()
- {
- $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
-
- // Successful getUser
- $this->assertEquals("test@email.com", $this->auth->getUser($uid)['email']);
+ // Successful getUser
+ $this->assertEquals("test@email.com", $this->auth->getUser($uid)['email']);
- // Failed getUser: inexistant UID
- $this->assertFalse($this->auth->getUser(9999999));
- }
+ // Failed getUser: inexistant UID
+ $this->assertFalse($this->auth->getUser(9999999));
+ }
- /**
+ /**
* @depends testRegister
*/
+ public function testChangePassword()
+ {
+ $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
- public function testChangePassword()
- {
- $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
+ // Successful changePassword
+ $this->assertFalse($this->auth->changePassword($uid, 'T3H-1337-P@$$', 'T3H-1337-P@$$2', 'T3H-1337-P@$$2')['error']);
- // Successful changePassword
- $this->assertFalse($this->auth->changePassword($uid, 'T3H-1337-P@$$', 'T3H-1337-P@$$2', 'T3H-1337-P@$$2')['error']);
+ // Failed changePassword: invalid current password
+ $this->assertTrue($this->auth->changePassword($uid, "invalid", 'T3H-1337-P@$$2', 'T3H-1337-P@$$2')['error']);
- // Failed changePassword: invalid current password
- $this->assertTrue($this->auth->changePassword($uid, "invalid", 'T3H-1337-P@$$2', 'T3H-1337-P@$$2')['error']);
+ // Failed changePassword: incorrect current password
+ $this->assertTrue($this->auth->changePassword($uid, "IncorrectPassword1", 'T3H-1337-P@$$2', 'T3H-1337-P@$$2')['error']);
- // Failed changePassword: incorrect current password
- $this->assertTrue($this->auth->changePassword($uid, "IncorrectPassword1", 'T3H-1337-P@$$2', 'T3H-1337-P@$$2')['error']);
+ // Failed changePassword: invalid new password
+ $this->assertTrue($this->auth->changePassword($uid, 'T3H-1337-P@$$2', "lamepass", "lamepass")['error']);
- // Failed changePassword: invalid new password
- $this->assertTrue($this->auth->changePassword($uid, 'T3H-1337-P@$$2', "lamepass", "lamepass")['error']);
+ // Failed changePassword: new password and confirmation do not match
+ $this->assertTrue($this->auth->changePassword($uid, 'T3H-1337-P@$$2', 'T3H-1337-P@$$3', 'T3H-1337-P@$$4')['error']);
- // Failed changePassword: new password and confirmation do not match
- $this->assertTrue($this->auth->changePassword($uid, 'T3H-1337-P@$$2', 'T3H-1337-P@$$3', 'T3H-1337-P@$$4')['error']);
+ // Failed changePassword: incorrect UID
+ $this->assertTrue($this->auth->changePassword(9999999, 'T3H-1337-P@$$2', 'T3H-1337-P@$$3', 'T3H-1337-P@$$3')['error']);
+ }
- // Failed changePassword: incorrect UID
- $this->assertTrue($this->auth->changePassword(9999999, 'T3H-1337-P@$$2', 'T3H-1337-P@$$3', 'T3H-1337-P@$$3')['error']);
- }
-
- /**
+ /**
* @depends testChangePassword
*/
+ public function testChangeEmail()
+ {
+ $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
- public function testChangeEmail()
- {
- $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
-
- // Successful changeEmail
- $this->assertFalse($this->auth->changeEmail($uid, "test2@email.com", 'T3H-1337-P@$$2')['error']);
+ // Successful changeEmail
+ $this->assertFalse($this->auth->changeEmail($uid, "test2@email.com", 'T3H-1337-P@$$2')['error']);
- // Failed changeEmail: invalid email
- $this->assertTrue($this->auth->changeEmail($uid, "invalid.email", 'T3H-1337-P@$$2')['error']);
+ // Failed changeEmail: invalid email
+ $this->assertTrue($this->auth->changeEmail($uid, "invalid.email", 'T3H-1337-P@$$2')['error']);
- // Failed changeEmail: new email is the same as current email
- $this->assertTrue($this->auth->changeEmail($uid, "test2@email.com", 'T3H-1337-P@$$2')['error']);
+ // Failed changeEmail: new email is the same as current email
+ $this->assertTrue($this->auth->changeEmail($uid, "test2@email.com", 'T3H-1337-P@$$2')['error']);
- // Failed changeEmail: password is invalid
- $this->assertTrue($this->auth->changeEmail($uid, "test3@email.com", "invalid")['error']);
+ // Failed changeEmail: password is invalid
+ $this->assertTrue($this->auth->changeEmail($uid, "test3@email.com", "invalid")['error']);
- // Failed changeEmail: password is incorrect
- $this->assertTrue($this->auth->changeEmail($uid, "test3@email.com", "IncorrectPassword1")['error']);
+ // Failed changeEmail: password is incorrect
+ $this->assertTrue($this->auth->changeEmail($uid, "test3@email.com", "IncorrectPassword1")['error']);
- // Failed changeEmail: UID is incorrect
- $this->assertTrue($this->auth->changeEmail(9999999, "test2@email.com", "IncorrectPassword1")['error']);
- }
+ // Failed changeEmail: UID is incorrect
+ $this->assertTrue($this->auth->changeEmail(9999999, "test2@email.com", "IncorrectPassword1")['error']);
+ }
- /**
+ /**
* @depends testCheckSession
*/
+ public function testLogout()
+ {
+ // Get the user's (created and logged in as earlier) session hash
+ $hash = $this->dbh->query("SELECT hash FROM sessions WHERE uid = (SELECT id FROM users WHERE email = 'test2@email.com');", PDO::FETCH_ASSOC)->fetch()['hash'];
- public function testLogout()
- {
- // Get the user's (created and logged in as earlier) session hash
- $hash = $this->dbh->query("SELECT hash FROM sessions WHERE uid = (SELECT id FROM users WHERE email = 'test2@email.com');", PDO::FETCH_ASSOC)->fetch()['hash'];
-
- // Successful logout
- $this->assertTrue($this->auth->logout($hash));
+ // Successful logout
+ $this->assertTrue($this->auth->logout($hash));
- // Failed logout: invalid session hash
- $this->assertFalse($this->auth->logout("invalidhash"));
+ // Failed logout: invalid session hash
+ $this->assertFalse($this->auth->logout("invalidhash"));
- // Failed logout: inexistant session hash
- $this->assertFalse($this->auth->logout("aaafda8ea2c65a596c7e089f256b1534f2298000"));
- }
+ // Failed logout: inexistant session hash
+ $this->assertFalse($this->auth->logout("aaafda8ea2c65a596c7e089f256b1534f2298000"));
+ }
- /**
+ /**
* @depends testLogout
* @depends testChangePassword
* @depends testChangeEmail
*/
+ public function testDeleteUser()
+ {
+ // Empty attempts table
+ $this->dbh->exec("DELETE FROM attempts;");
- public function testDeleteUser()
- {
- // Empty attempts table
- $this->dbh->exec("DELETE FROM attempts;");
+ $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test2@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
- $uid = $this->dbh->query("SELECT id FROM users WHERE email = 'test2@email.com';", PDO::FETCH_ASSOC)->fetch()['id'];
+ // Failed deleteUser: invalid password
+ $this->assertTrue($this->auth->deleteUser($uid, "lamepass")['error']);
- // Failed deleteUser: invalid password
- $this->assertTrue($this->auth->deleteUser($uid, "lamepass")['error']);
+ // Failed deleteUser: incorrect password
+ $this->assertTrue($this->auth->deleteUser($uid, "IncorrectPassword1")['error']);
- // Failed deleteUser: incorrect password
- $this->assertTrue($this->auth->deleteUser($uid, "IncorrectPassword1")['error']);
+ // Successful deleteUser
+ $this->assertFalse($this->auth->deleteUser($uid, 'T3H-1337-P@$$2')['error']);
- // Successful deleteUser
- $this->assertFalse($this->auth->deleteUser($uid, 'T3H-1337-P@$$2')['error']);
+ // Failed deleteUser: incorrect UID
+ $this->assertTrue($this->auth->deleteUser(9999999, "IncorrectPassword1")['error']);
+ }
- // Failed deleteUser: incorrect UID
- $this->assertTrue($this->auth->deleteUser(9999999, "IncorrectPassword1")['error']);
- }
+ public function testLanguageFiles()
+ {
+ // Use the english language file as main reference
+ include __DIR__ . '/../languages/en_GB.php';
- public function testLanguageFiles()
- {
- // Use the english language file as main reference
- include __DIR__ . '/../languages/en_GB.php';
+ $baseLang = $lang;
- $baseLang = $lang;
+ $languageFiles = glob(__DIR__ . '/../languages/*.php');
- $languageFiles = glob(__DIR__ . '/../languages/*.php');
+ foreach($languageFiles as $languageFile) {
+ $languageFile = basename($languageFile);
- foreach($languageFiles as $languageFile) {
- $languageFile = basename($languageFile);
-
- include __DIR__ . "/../languages/{$languageFile}";
- $this->assertEquals(0, count(array_diff_key($baseLang, $lang)));
- }
- }
+ include __DIR__ . "/../languages/{$languageFile}";
+ $this->assertEquals(0, count(array_diff_key($baseLang, $lang)));
+ }
+ }
}
-
-?>