Viewing file: controller.inc.php (20.44 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php class Users_Controller{ public static function MailAction() {
} public static function JsonUsersListAction($params) { if (!Users_Model::IsAdmin()) return false; $sort = (int)$_POST['sort']; $start = (int)$_POST['start']; $count = (int)$_POST['count']; if ($start < 0) $start = 0; if ($count < 20) $count = 20; $res = array(); if (!isset($_POST['start'])) { $res['count'] = Users_Model::GetUsersCount(); } $res['rows'] = Users_Model::GetUsers($sort, $start, $count); echo json_encode($res); die; //GetUsefulDate($row[''],true,true) */
} public static function JsonUsersChangePendingListAction($params) { if (!Users_Model::IsAdmin()) return false; $sort = (int)$_POST['sort']; $start = (int)$_POST['start']; $count = (int)$_POST['count']; if ($start < 0) $start = 0; if ($count < 20) $count = 20; $res = array(); if (!isset($_POST['start'])) { $res['count'] = Users_Model::GetUsersChangePendingCount(); } $res['rows'] = Users_Model::GetUsersChangePending($sort, $start, $count); echo json_encode($res); die; //GetUsefulDate($row[''],true,true) */
} public static function JsonUsersCountAction($params) { if (!Users_Model::IsAdmin()) return false; $val = Users_Model::GetUsersCount(); echo json_encode(array('count' => $val)); die; //GetUsefulDate($row[''],true,true) */
} public static function ProfileAction($params) { switch(count($params)) { case 2: if ($params[0] == 'ajax') { if ($params[1] == 'accept' && Users_Model::IsAdmin()) { $id = (int)$_POST['user_id']; $res = Users_Model::AcceptPendingChangeUserProfile($id); $arr = array(); if ($res) $arr['message'] = 'Зміну даних успішно підтверджено'; else $arr['message'] = 'Помилка підтвердження зміни даних'; $arr['status'] = $res; echo json_encode($arr); die; } if ($params[1] == 'decline' && Users_Model::IsAdmin()) { $id = (int)$_POST['user_id']; $res = Users_Model::DeclinePendingChangeUserProfile($id); $arr = array(); if ($res) $arr['message'] = 'Заявку на зміну персональних даних користувача видалено'; else $arr['message'] = 'Помилка видалення заявки користувача'; $arr['status'] = $res; echo json_encode($arr); die; } if ($params[1] == 'change' && Users_Model::IsAuthorized()) { $user = Users_Model::GetCurrentUser(); $newUser = $_POST; $error = array(); $result = array(); if (isset($newUser['user_oldpassword'])) { if ($user['user_password'] != $newUser['user_oldpassword']) { array_push($error, 'Помилка. Неправильно введений існуючий пароль'); array_push($result, -1); } else { if ($newUser['user_newpassword'] != $newUser['user_newpassword2']) { array_push($error, 'Помилка. Неправильно введено новий пароль (паролі не співпадають)'); array_push($result, -2); } else { array_push($error, 'Пароль успішно змінено.'); array_push($result, 1); Users_Model::ChangePasswordByUserId($user['user_id'], $newUser['user_newpassword']); } } } if ($user['user_firstname'] != $newUser['user_firstname'] || $user['user_lastname'] != $newUser['user_lastname'] || $user['user_middlename'] != $newUser['user_middlename'] ) $f = Users_Model::UserProfileAddChangeQueue($newUser, $user['user_id']); else { $res = array(); if (empty($error)) { array_push($error, 'Інформація не потребує збереження.'); array_push($result, -3); } $res['message'] = $error; $res['result'] = $result; echo json_encode($res); die; } $res = array(); if ($f) { array_push($error, 'Інформація відправлена модератору. Найближчим часом заявка на зміну даних буде опрацьована.'); array_push($result, 2); $res['status'] = true; } else { if (empty($error)) array_push($error, 'Для відправки нової заявки на зміну інформації потрібно або відмінити попередню, або дочекатися відповіді модератора.'); array_push($result, 3); $res['status'] = false; } $res['message'] = $error; $res['result'] = $result; echo json_encode($res); die; } if ($params[1] == 'cancel' && Users_Model::IsAuthorized()) { Users_Model::UserProfileRemoveChangeQueue(Users_Model::GetUserId()); $res = array(); $res['message'] = 'Вашу заявку на зміну персональних даних видалено.'; echo json_encode($res); die; } } break; default: if (!Users_Model::IsAuthorized()) return Main_Controller::Error(404); $user = Users_Model::GetCurrentUser(); $userNew = Users_Model::UserProfileGetChangeQueue($user['user_id']); return array( 'Title' => 'Редагування персонального профілю', 'Content' => Users_View::ProfileEdit($user, $userNew));
}
} public static function ViewAction($params) { if (!Users_Model::IsAdmin()) return Main_Controller::Error(404); return array( 'Title' => 'Список користувачів', 'Content' => Users_View::GetList(0, 0, 20)); } public static function RequestsAction($params) { if (!Users_Model::IsAdmin()) return Main_Controller::Error(404); switch(count($params)) { default: return array( 'Title' => 'Список користувачів, які очікують зміну персональних даних', 'Content' => Users_View::GetChangePendingList(0, 0, 20)); } } public static function RestoreAction($params) { if (Users_Model::IsAuthorized()) Main_Controller::Error(404); if($_SERVER['REQUEST_METHOD'] == 'POST') { switch(count($params)) { case 1: if ($params[0] == 'ajax') { $code = $_POST['user_restore_code']; $user = Users_Model::GetUserByRestoreCode($code); if ($user && $user['user_email'] == $_POST['email']) { Users_Model::ChangePasswordByUserId($user['user_id'], $_POST['password']); $res['ok'] = true; $res['message'] = 'Пароль успішно змінено. Ви можете зайти на сайт, використовуючи новий пароль'; echo json_encode($res); die; } else { $res['ok'] = false; $res['message'] = 'Помилка зміни пароля'; echo json_encode($res); die; } die; } return; }
if (!Users_Model::IsUserExists($_POST['user_email'])) { $res['ok'] = false; $res['message'] = 'Даний email не зареєстровано на сайті'; echo json_encode($res); die; } else { $mail = $_POST['user_email']; $row = Users_Model::GetUserByEmail($mail); if ($row['user_status'] === '0') { echo json_encode(array('status' => 'ok', 'ok' => true, 'message' => 'Ваш профіль не підтверджено. Потрібно підтвердити профіль, перейшовши за посиланням, яке прийшло на електронну пошту при реєстрації.','email' => $params[0])); } else if ($row['user_status'] === '1') { Users_Model::SendRestoreMail($_POST['user_email']); $res['ok'] = true; $res['message'] = 'На Вашу пошту відправлено лист з посиланням для відновлення пароля'; echo json_encode($res); } else { echo json_encode(array('status' => 'ok', 'ok' => true, 'message' => 'Вказаний email не зареєстровано на сайті', 'email' => $params[0])); } die; } } else { $code = $params[0]; $user = Users_Model::GetUserByRestoreCode($code); if ($user) { return array('Title' => 'Відновлення паролю', 'Content' => Users_View::RestoreChangePassword($user)); } else { return array('Title' => 'Підтвердження облікового запису', 'Content' => 'Користувача не знайдено'); } } } public static function ResendAction($params) { if (Users_Model::IsAuthorized()) return; $mail = $params[0]; $row = Users_Model::GetUserByEmail($mail); if ($row['user_status'] === '0') { Users_Model::RegisterMailResend($params[0]); echo json_encode(array('status' => 'ok', 'ok' => true, 'message' => 'Лист активації відправлено на електронну пошту','email' => $params[0])); } else if ($row['user_status'] === '1') { echo json_encode(array('status' => 'ok', 'ok' => true, 'message' => 'Ваш профіль вже підтверджено. Ви можете зайти, ввівши логін та пароль, вказані при реєстрації','email' => $params[0])); } else echo json_encode(array('status' => 'ok', 'ok' => true, 'message' => 'Вказаний email не зареєстровано на сайті','email' => $params[0])); die; } public static function RegisterAction($params) { if (Users_Model::IsAuthorized()) Main_Controller::Error(404); switch(count($params)) { case 1: if ($params[0] == 'ajax') { if (!Users_Model::ValidateEmail($_POST['email'])) { $res['ok'] = false; $res['error'] = 'Введено некоректний e-mail'; echo json_encode($res); die; } /* if (!checkdnsrr(array_pop(explode("@",$_POST['email'])),"MX")) { $res['ok'] = false; $res['error'] = 'Введено неіснуючий домен електронної пошти (після символу "@")'; echo json_encode($res); die; }*/ if (Users_Model::IsUserExists($_POST['email'])) { $res['ok'] = false; $res['error'] = 'Даний email вже зареєстровано на сайті'; echo json_encode($res); die; }
Users_Model::AddUser($_POST); $res['ok'] = true; echo json_encode($res); die; } if ($params[0] == 'ok') { return array('Title' => 'Реєстрація на сайті', 'Content' => Users_View::RegisterOK()); } break; case 2: if ($params[0] == 'confirm') { $code = $params[1]; $user = Users_Model::GetUserByCode($code); if ($user) { Users_Model::ConfirmUser($code); return array('Title' => 'Підтвердження облікового запису', 'Content' => Users_View::RegisterConfirmOK()); } else { return array('Title' => 'Підтвердження облікового запису', 'Content' => Users_View::RegisterConfirmError()); } } default: return array('Title' => 'Реєстрація на сайті', 'Content' => Users_View::Register());
} } /*public static function RegisterAction($params) { if (Users_Model::IsAuthorized()) Main_Controller::Error(404); switch(count($params)) { case 1: if ($params[0] == 'ajax') { if (Users_Model::IsUserExists($_POST['email'])) { $res['ok'] = false; $res['error'] = 'Даний email вже зареєстровано на сайті'; echo json_encode($res); die; } Users_Model::AddUser($_POST); $res['ok'] = true; echo json_encode($res); die; } if ($params[0] == 'ok') { return array('Title' => 'Реєстрація на сайті', 'Content' => Users_View::RegisterOK()); } break; case 2: if ($params[0] == 'confirm') { $code = $params[1]; $user = Users_Model::GetUserByCode($code); if ($user) { Users_Model::ConfirmUser($code); return array('Title' => 'Підтвердження облікового запису', 'Content' => Users_View::RegisterConfirmOK()); } else { return array('Title' => 'Підтвердження облікового запису', 'Content' => Users_View::RegisterConfirmError()); } } default: return array('Title' => 'Реєстрація на сайті', 'Content' => Users_View::Register());
} }*/ public static function LogoutAction() { Users_Model::Logout(); Main_Controller::Redirect('/'); } public static function LoginAction($params) { if (Users_Model::IsAuthorized()) Main_Controller::Error(404); switch(count($params)) { case 1: if ($params[0] == 'ajax') { if (Users_Model::AuthorizeUser($_POST['email'], $_POST['password'])) { $res['ok'] = true; echo json_encode($res); die; } else { $res['ok'] = false; $user = Users_Model::GetUserByEmail($_POST['email']); if ($user == null) $res['error'] = 'Даний e-mail не зареєстровано на сайті'; else if ($user['user_status'] == 1) $res['error'] = 'Ви ввели неправильний пароль'; else if ($user['user_status'] == 0) $res['error'] = 'Даний e-mail не активовано. Перейдіть за посиланням, що надійшло Вам на електронну пошту'; else $res['error'] = 'Неправильний логін або пароль'; echo json_encode($res); die; } } if ($params[0] == 'ok') { return array('Title' => 'Реєстрація на сайті', 'Content' => Users_View::RegisterOK()); } break; default: return array('Title' => 'Авторизація', 'Content' => Users_View::Login()); } } /*public static function LoginAction($params) { if (Users_Model::IsAuthorized()) Main_Controller::Error(404); switch(count($params)) { case 1: if ($params[0] == 'ajax') { if (Users_Model::AuthorizeUser($_POST['email'], $_POST['password'])) { $res['ok'] = true; echo json_encode($res); die; } else { $res['ok'] = false; $res['error'] = 'Неправильний логін або пароль'; echo json_encode($res); die; } } if ($params[0] == 'ok') { return array('Title' => 'Реєстрація на сайті', 'Content' => Users_View::RegisterOK()); } break; default: return array('Title' => 'Авторизація', 'Content' => Users_View::Login()); } }*/ public static function IndexAction() {
}
}
|