diff --git a/~dev_rating/application/classes/Account.php b/~dev_rating/application/classes/Account.php index 3f5b660d3aaa47a477062e42b4b900a738452f66..6d86a2c23dd6a0a1c831c97cca90f077934766e2 100644 --- a/~dev_rating/application/classes/Account.php +++ b/~dev_rating/application/classes/Account.php @@ -151,27 +151,28 @@ class Account { } public function loginExists($login) { - $login_count = Model_Account::getAccNumByLogin($login); + $login_count = Model_Account::checkAccountExistence($login, 'login'); return $login_count > 0; } public function mailExists($email) { - $email_count = Model_Account::getAccNumByMail($email); + $email_count = Model_Account::checkAccountExistence($email, 'email'); return $email_count > 0; } public function changeLogin($id, $newLogin) { - $response = Model_Account::changeLogin($id, $newLogin); + $response = Model_Account::changeAccountData($id, $newLogin, 'login'); return $response != -1; } - public function changeEMail($id, $newEMail) { - $response = Model_Account::changeMail($id, $newEMail); - return $response != -1; - } +// // We don't change email address:\ +// public function changeEMail($id, $newEMail) { +// $response = Model_Account::changeMail($id, $newEMail); +// return $response != -1; +// } public function changePassword($id, $newPassword) { - $response = Model_Account::changePassword($id, $newPassword); + $response = Model_Account::changeAccountData($id, $newPassword, 'password'); return $response != -1; } } \ No newline at end of file diff --git a/~dev_rating/application/classes/Model/Account.php b/~dev_rating/application/classes/Model/Account.php index 321c78c4b04ec1d86043d8224fd68ccc1bb0fa90..b80519fc820d287476003f59a9f7de8e2add16c1 100644 --- a/~dev_rating/application/classes/Model/Account.php +++ b/~dev_rating/application/classes/Model/Account.php @@ -130,6 +130,21 @@ class Model_Account extends Model return $query[0]; } + /** + * @param int $id + * @param string $data + * @param string $type 'email', 'login' or 'password' + */ + public static function changeAccountData($accountID, $data, $type) + { + $data = Database::instance()->escape($data); + $type = Database::instance()->escape($type); + $sql = "SELECT `ChangeAccountData`('$accountID', $data, $type) AS Num;"; + $query = DB::query(Database::SELECT, $sql)->execute(); + return $query->get('Num'); + } + + # TODO: deprecated (use changeAccountData instead) public static function changeMail($id, $mail) { $mail = Database::instance()->escape($mail); @@ -138,6 +153,7 @@ class Model_Account extends Model return $query->get('Num'); } + # TODO: deprecated (use changeAccountData instead) public static function changeLogin($id, $login) { $login = Database::instance()->escape($login); @@ -146,6 +162,7 @@ class Model_Account extends Model return $query->get('Num'); } + # TODO: deprecated (use changeAccountData instead) public static function changePassword($id, $password) { $password = Database::instance()->escape($password); @@ -154,6 +171,21 @@ class Model_Account extends Model return $query->get('Num'); } + + /** + * @param string $data + * @param string $type 'login','email' or 'code' + */ + public static function checkAccountExistence($data, $type) { + $data = Database::instance()->escape($data); + $type = Database::instance()->escape($type); + $sql = "SELECT `CheckAccountExistence`($data, $type) AS Num;"; + $res = DB::query(Database::SELECT, $sql)->execute(); + return $res->get('Num'); + } + + + # TODO: deprecated (use checkAccountExistence instead) public static function getAccNumByLogin($login) { $login = Database::instance()->escape($login); @@ -162,6 +194,7 @@ class Model_Account extends Model return $res->get('Num'); } + # TODO: deprecated (use checkAccountExistence instead) public static function getAccNumByMail($email) { $email = Database::instance()->escape($email); @@ -176,7 +209,7 @@ class Model_Account extends Model $sql = "SELECT `CheckAccountExistence`($code, 'code') AS Num;"; $res = DB::query(Database::SELECT, $sql)->execute(); - $count = $res[0]['Num']; + $count = $res->get('Num'); return $count == 1; } diff --git a/~dev_rating/application/classes/User.php b/~dev_rating/application/classes/User.php index f034f4f46b5026041e40c6a558cdaf6f4a61570e..12ee9c9dfe740ea99add2715a3af3a53a267fecf 100644 --- a/~dev_rating/application/classes/User.php +++ b/~dev_rating/application/classes/User.php @@ -76,7 +76,7 @@ class User implements ArrayAccess * аккаунтов с такими же авторизационными данными. * * @param string $code Код активации - * @param string $email E-Mail адресс + * @param string $email E-Mail адрес * @param string $login * @param string $password * @return array Пару вида <tt>(is_ok, err_msg)</tt> @@ -123,10 +123,10 @@ class User implements ArrayAccess } } - protected function completeSignIn($id, $passhash) { + protected function completeSignIn($id, $passHash) { $source = $id . Request::$user_agent . Request::$client_ip; $userHash = $this->hash($source) . $this->_config['hash_key']; - $passwordHash = $this->hash($passhash . $this->_config['hash_key']); + $passwordHash = $this->hash($passHash . $this->_config['hash_key']); Cookie::set('userhash', $passwordHash); $semester = Model_Account::getCurSemesterID(); @@ -208,7 +208,7 @@ class User implements ArrayAccess if (!$this->checkPassword($old)) return false; - Model_Account::changePassword($this->ID, $new); + Model_Account::changeAccountData($this->ID, $new, 'password'); $passhash = $this->hash($this->hash($new) . $this->_config['hash_key']); $this->_session->set('PasswordHash', $passhash); Cookie::set('userhash', $passhash); @@ -219,7 +219,7 @@ class User implements ArrayAccess if (!$this->isSignedIn() || Account::instance()->loginExists($login)) return false; - Model_Account::changeLogin($this->ID, $login); + Model_Account::changeAccountData($this->ID, $login, 'login'); return true; } @@ -236,7 +236,7 @@ class User implements ArrayAccess public function completeChangeMail($token) { $email = $this->_session->get('NewMail_Adress'); if ($token == $this->_session->get('NewMail_Token') AND !Account::instance()->mailExists($email)) { - Model_Account::changeMail($this->ID, $email); + Model_Account::changeAccountData($this->ID, $email, 'email'); return true; } else { return false;