Newer
Older
Andrew Rudenets
committed
<?php defined('SYSPATH') or die('No direct script access.');
class Model_Account extends Model
Andrew Rudenets
committed
{
public static function setHashKey($key) {
$sql = "SELECT `SetSettings`('HashKey', '', :key) AS `key`;";
DB::query(Database::SELECT, $sql)
->param(':key', $key)
->execute()->get('key');
Andrew Rudenets
committed
}
public static function getHashKey() {
$sql = "CALL `GetSettings`('HashKey');";
return DB::query(Database::SELECT, $sql)
->execute()->get('ValS');
Andrew Rudenets
committed
}
public static function getMaintenanceInfo() {
$sql = "CALL `GetSettings`('maintenance_active');";
$key = DB::query(Database::SELECT, $sql)->execute();
$result['active'] = ($key->get('Val') == 1);
$sql = "CALL `GetSettings`('maintenance_return');";
$key = DB::query(Database::SELECT, $sql)->execute();
$result['return'] = $key->get('ValS');
return $result;
}
public static function checkAuth($login, $password) {
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
$sql = "SELECT `SignIn`(:login, :pass) AS `ID`;";
return DB::query(Database::SELECT, $sql)
->param(':login', $login)
->param(':pass', $password)
->execute()->get('ID');
}
public static function changeTeacherInfo($id, $lastName, $firstName, $secondName, $degreeID, $departmentID) {
$sql = "SELECT `ChangeTeacherInfo`(:id, :last, :first, :second, :degree, :department) AS `UserID`;";
return DB::query(Database::SELECT, $sql)
->parameters([
':id' => $id,
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':degree' => $degreeID,
'department' => $departmentID,
])->execute()->get('UserID');
}
public static function createTeacher($lastName, $firstName, $secondName, $degreeID, $departmentID, $activationCode) {
$sql = "SELECT `CreateTeacher`() AS `UserID`;";
return DB::query(Database::SELECT, $sql)
->parameters([
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':degree' => $degreeID,
':department' => $departmentID,
':code' => $activationCode,
])->execute()->get('UserID');
}
public static function createTeacherByDepName($lastName, $firstName, $secondName, $departmentID, $facultyID, $activationCode) {
if ($departmentID == '') {
return -1;
}
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
$sql = "SELECT `CreateTeacherByDepName`(:last, :first, :second, :department, :faculty, :code) AS `UserID`;";
return DB::query(Database::SELECT, $sql)
->parameters([
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':department' => $departmentID,
':faculty' => $facultyID,
':code' => $activationCode,
])->execute()->get('UserID');
}
public static function createStudent($lastName, $firstName, $secondName, $grade, $groupNum, $facultyID, $activationCode) {
$sql = "SELECT `CreateStudent`(:last, :first, :second, :grade, :group, :faculty, :code) AS `UserID`;";
return DB::query(Database::SELECT, $sql)
->parameters([
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':grade' => $grade,
':group' => $groupNum,
':faculty' => $facultyID,
':code' => $activationCode,
])->execute()->get('UserID');
}
public static function createStudentEx($lastName, $firstName, $secondName, $gradeNum, $groupNum, $degree, $specialization, $facultyID, $activationCode) {
$sql = "SELECT `CreateStudentEx`(:last, :first, :second, :grade, :group, :degree, :spec, :faculty, :code) AS `UserID`;";
return DB::query(Database::SELECT, $sql)
->parameters([
':last' => $lastName,
':first' => $firstName,
':second' => $secondName,
':grade' => $gradeNum,
':group' => $groupNum,
':degree' => $degree,
':spec' => $specialization,
':faculty' => $facultyID,
':code' => $activationCode,
])->execute()->get('UserID');
public static function getUserInfo($id)
{
$sql = "CALL `GetFullInfo`(:id);";
return DB::query(Database::SELECT, $sql)
->param(':id', (int) $id)
->execute()[0];
}
# TODO: deprecated (see getUserInfo)
public static function getPersonalInfo($id, $semesterID = null) {
$semesterID = $semesterID ? $semesterID : User::instance()->SemesterID;
$sql = "CALL `GetPersonalInfo`(:id, :semester);";
return DB::query(Database::SELECT, $sql)
->param(':semester', (int) $semesterID)
->param(':id', (int) $id)
->execute()[0];
Andrew Rudenets
committed
}
# TODO: deprecated (see getUserInfo)
public static function getAccountInfo($id) {
return DB::query(Database::SELECT, "CALL GetAccountInfo(:id);")
->param(':id', (int) $id)->execute()[0];
Andrew Rudenets
committed
}
/**
* @param int $id
* @param string $value
* @param string $type 'email', 'login' or 'password'
* @return int
public static function changeAccountData($id, $value, $type) {
$sql = "SELECT `ChangeAccountData`(:account, :value, :type) AS Num;";
return DB::query(Database::SELECT, $sql)
->parameters([
':account' => $id,
':value' => $value,
':type' => $type,
])->execute()->get('Num');
Andrew Rudenets
committed
}
/**
* @param string $data
* @param string $type 'login','email' or 'code'
* @return int
*/
public static function checkAccountExistence($data, $type) {
$sql = "SELECT `CheckAccountExistence`(:data, :type) AS Num;";
return DB::query(Database::SELECT, $sql)
->param(':data', $data)
->param(':type', $type)
->execute()->get('Num');
Andrew Rudenets
committed
}
public static function isActivationCodeValid($code) {
$sql = "SELECT `CheckAccountExistence`(:acode, 'code') AS Num;";
$res = DB::query(Database::SELECT, $sql)
->param(':acode', $code)
->execute()->get('Num');
return $res == 1;
public static function createRecoveryToken($email, $token) {
$sql = "SELECT `CreateRecoveryToken`(:email, :token) AS UserName;";
return DB::query(Database::SELECT, $sql)
->param(':email', $email)
->param(':token', $token)
->execute()->get('UserName');
public static function getRecoveryInfoByEMail($email) {
$sql = "CALL GetRecoveryInfoByEMail(:email);";
return DB::query(Database::SELECT, $sql)
->param(':email', $email)
->execute();
public static function getRecoveryInfoByToken($token) {
$sql = "CALL GetRecoveryInfoByToken(:token);";
return DB::query(Database::SELECT, $sql)
->param(':token', $token)->execute();
public static function useRecoveryToken($token) {
$sql = "SELECT `UseRecoveryToken`(:token) AS Num;";
return DB::query(Database::SELECT, $sql)
->param(':token', $token)
->execute()->get('Num');
public static function activateAccount($login, $password, $email, $code) {
$sql = "SELECT `ActivateAccount`(:code, :login, :email, :pass) AS `Num`;";
return DB::query(Database::SELECT, $sql)
->parameters([
':code' => $code,
':login' => $login,
':email' => $email,
':pass' => $password,
])->execute()->get('Num');
Andrew Rudenets
committed
}
public static function getCurSemesterID() {
$sql = "CALL `GetSettings`('SemesterID');";
return DB::query(Database::SELECT, $sql)
->execute()->get('Val');