Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- /*
- * To change this license header, choose License Headers in Project Properties.
- * To change this template file, choose Tools | Templates
- * and open the template in the editor.
- */
- /**
- * Description of Auth
- *
- * @author Ivaylo Ivanov
- */
- class Authorization extends \Load\Controller {
- public function index() {
- $avatars = new \Models\Avatars();
- $data['avatars'] = $avatars->getAvatars();
- $data['baseUrl'] = \Models\Config::base_url;
- $data['title'] = "iziForum - Authorization";
- $this->render("Authorization", $data);
- }
- public function login() {
- // Инстанции
- $validation = new \Models\Validate();
- $authorization = new \Models\Authorization($this->_databaseInstance);
- $language = new \Models\Language();
- // Инициализираме си масив за грешки от валидацията.
- $errors = array();
- // Санитазиране на данните за регистрация.
- $user_email = @\Models\Sanitaze::clear($_POST['user_email']);
- $user_password = @$_POST['user_password'];
- $remember_me = false;
- // Валидираме имейла на потребителя
- $validation->setData($user_email)->required()->email();
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-email") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Валидираме паролата на потребителя
- $validation->setData($user_password)->required()->min_length(6)->max_length(30);
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-password") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали имаме грешки след валидацията
- if (isset($errors['list'])) {
- $errors['action'] = $language->get("login");
- $errors['message'] = $language->get("cannot-login");
- $errors['return'] = \Models\Config::base_url . "authorization";
- $_SESSION['errors'] = $errors;
- \Models\Redirect::to(\Models\Config::base_url . 'errors');
- }
- // Логваме потребителя
- $loginStatus = @$authorization->login($user_email, $user_password, false);
- // Проверяваме дали имаме грешки от регистрацията и ги записваме в масив
- if (!empty($authorization->getЕrrors())) {
- foreach ($authorization->getЕrrors() as $errorCode) {
- $errors['list'][] = $language->get("login-page") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали имаме грешки след логването
- if (isset($errors['list'])) {
- $errors['action'] = $language->get("login");
- $errors['message'] = $language->get("cannot-login");
- $errors['return'] = \Models\Config::base_url . "authorization";
- $_SESSION['errors'] = $errors;
- \Models\Redirect::to(\Models\Config::base_url . 'errors');
- }
- // Проверяваме дали имаме отметка на запомни ме
- if (isset($_POST['remember_me'])) {
- $remember_me = true;
- }
- // Присвоява информацията на потребителя към сесия.
- $_SESSION['isLogged'] = $loginStatus;
- // Пренасочваме към главната страница при успешен вход.
- \Models\Redirect::to(\Models\Config::base_url);
- }
- public function register() {
- // Инстанции
- $validation = new \Models\Validate();
- $authorization = new \Models\Authorization($this->_databaseInstance);
- $language = new \Models\Language();
- // Инициализираме си масив за грешки от валидацията.
- $errors = array();
- // Санитазиране на данните за регистрация.
- $user_avatar = $_POST['user_avatar'];
- $user_full_name = \Models\Sanitaze::clear($_POST['user_full_name']);
- $user_email = \Models\Sanitaze::clear($_POST['user_email']);
- $user_password = $_POST['user_password'];
- $confirm_password = $_POST['confirm_password'];
- $user_gender = \Models\Sanitaze::clear($_POST['user_gender']);
- $user_location = \Models\Sanitaze::clear($_POST['user_location']);
- // Валидираме аватара на потребителя
- $validation->setData($user_avatar)->required()->fileExist()->isImage();
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-avatar") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Валидираме името на потребителя
- $validation->setData($user_full_name)->required()->min_length(3);
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-full-name") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Валидираме паролата на потребителя
- $validation->setData($user_password)->required()->min_length(6)->max_length(30);
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-password") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали паролата съвпада
- $validation->setData($user_password, $confirm_password)->match();
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-password") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Валидираме пола на потребителя
- $validation->setData($user_gender)->required()->range(1, 2);
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-gender") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Валидираме имейла на потребителя
- $validation->setData($user_email)->required()->email();
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-email") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Валидираме локацията на потребителя
- $validation->setData($user_location)->required();
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-location") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали имаме грешки след валидацията
- if (isset($errors['list'])) {
- $errors['action'] = $language->get("registration");
- $errors['message'] = $language->get("cannot-register");
- $errors['return'] = \Models\Config::base_url . "authorization";
- $_SESSION['errors'] = $errors;
- \Models\Redirect::to(\Models\Config::base_url . 'errors');
- }
- // Регистрираме потребителя след като входните данни са валидни
- $authorization->register($user_full_name, $user_password, $user_email, $user_avatar, $user_gender, $user_location);
- // Проверяваме дали имаме грешки от регистрацията и ги записваме в масив
- if (!empty($authorization->getЕrrors())) {
- foreach ($authorization->getЕrrors() as $errorCode) {
- $errors['list'][] = $language->get("register-page") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали имаме грешки в масива
- if (isset($errors['list'])) {
- $errors['action'] = 'Register';
- $errors['message'] = 'You can not register !';
- $errors['return'] = \Models\Config::base_url . "authorization";
- $_SESSION['errors'] = $errors;
- \Models\Redirect::to(\Models\Config::base_url . 'errors');
- }
- // Пренасочваме към главната страница при успешна регистрация.
- \Models\Redirect::to(\Models\Config::base_url);
- }
- public function recovery() {
- // Инстанции
- $validation = new \Models\Validate();
- $authorization = new \Models\Authorization($this->_databaseInstance);
- $language = new \Models\Language();
- // Санитазиране на данните за регистрация.
- $user_email = \Models\Sanitaze::clear($_POST['user_email']);
- // Инициализираме си масив за грешки от валидацията.
- $errors = array();
- // Валидираме имейла на потребителя
- $validation->setData($user_email)->required()->email();
- if ($validation->getErrors()) {
- foreach ($validation->getErrors() as $errorCode) {
- $errors['list'][] = $language->get("field-email") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали имаме грешки след валидацията
- if (isset($errors['list'])) {
- $errors['action'] = $language->get("recovery-action");
- $errors['message'] = $language->get("cannot-recover");
- $errors['return'] = \Models\Config::base_url . "authorization";
- $_SESSION['errors'] = $errors;
- \Models\Redirect::to(\Models\Config::base_url . 'errors');
- }
- // Сменяме паролата на потребителя
- $a = $authorization->passwordRecovery($user_email, 12);
- echo "<pre>" . print_r($a, TRUE) . "</pre>";
- die();
- // Проверяваме дали имаме грешки от регистрацията и ги записваме в масив
- if (!empty($authorization->getЕrrors())) {
- foreach ($authorization->getЕrrors() as $errorCode) {
- $errors['list'][] = $language->get("recovery-page") . ' : ' . $language->get("error-" . $errorCode);
- }
- }
- // Проверяваме дали имаме грешки в масива
- if (isset($errors['list'])) {
- $errors['action'] = $language->get("recovery-action");
- $errors['message'] = $language->get("cannot-recover");
- $errors['return'] = \Models\Config::base_url . "authorization";
- $_SESSION['errors'] = $errors;
- \Models\Redirect::to(\Models\Config::base_url . 'errors');
- }
- // Пренасочваме към главната страница при успешна регистрация.
- \Models\Redirect::to(\Models\Config::base_url);
- }
- public function logout() {
- session_destroy();
- \Models\Redirect::to(\Models\Config::base_url);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement