Overview

Namespaces

  • Core
    • Auth
    • Exceptions
    • Helpers
    • Providers
  • Kernel
    • Dispatch
    • Providers
  • None
  • Vendor
    • ExampleVendor

Classes

  • Controller
  • Core\AbstractClass
  • Core\Auth\AuthenticateController
  • Core\Auth\PasswordModel
  • Core\ErrorController
  • Core\Exceptions\Exception
  • Core\Helpers\Flash
  • Core\Helpers\Hooks
  • Core\Language
  • Core\ParentController
  • Core\ParentModel
  • Core\Providers\Config
  • Core\Providers\Service
  • Core\Providers\Session
  • ErrorController
  • HomeController
  • HomeModel
  • Kernel\AppKernel
  • Kernel\Dispatch\Logger
  • Kernel\Dispatch\Mailer
  • Kernel\Dispatch\Mailer_PHP
  • Kernel\Providers\Permission
  • Kernel\Providers\Router
  • LoginController
  • LoginModel
  • Model
  • Vendor\ExampleVendor\ExampleVendorController
  • Vendor\ExampleVendor\ExampleVendorModel
  • Vendor\VendorController

Functions

  • _die
  • asset
  • clock_end
  • clock_start
  • clock_time
  • config
  • ddie
  • deleteDir
  • email_png
  • env
  • folder_action
  • folder_recurse
  • generateFile
  • getClientIP
  • getClientUserAgent
  • getVersion
  • isAjax
  • isAuth
  • isDev
  • isLocalServer
  • isProd
  • nocache
  • php
  • ppie
  • query
  • queryIndexed
  • save_ini_file
  • t
  • versioning
  • view
  • write_ini
  • Overview
  • Namespace
  • Class
  • Download
 1:  2:  3:  4:  5:  6:  7:  8:  9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 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: 63: 64: 65: 66: 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: 
<?php

    use Core\Providers\Session;
    use Core\Providers\Config;
    use Core\Auth\AuthenticateController as Authenticate;
    use Core\Helpers\Flash;

    /**
     * Shows the login page and logs a user in
     * Class LoginController
     */
    class LoginController extends Authenticate
    {
        /**
         * @var LoginController The class instance.
         * @internal
         */
        protected static $instance;

        /**
         * @var LoginModel The instance of LoginModel.
         */
        protected $model;

        /**
         * Returns a LoginController instance, creating it if it did not exist.
         * @return LoginController
         */
        public static function singleton() {
            if (!self::$instance) {
                $v = __CLASS__;
                self::$instance = new $v;
            }
            return self::$instance;
        }

        /**
         *
         */
        public function __construct() {
            parent::__construct();
            $this->model = LoginModel::singleton();
            $this->auth  = Authenticate::singleton();
        }

        /**
         * Shows the login page / login form
         * @throws Exception
         */
        public function showLogin() {
            if (isAuth()) {
                Flash::set("You're already logged in!", 'info');
                $this->redirect($this->url('LoginHome'));
            }
            $active = 'login';
            $this
                ->setTitle('Login')
                ->add('active', $active)
                ->show('login/login');
        }

        public function doLogin() {
            $user = $this->auth->login();

            if (!$user) {
                if (isAjax()) {
                    $this->json(['success' => 0]);
                } else {
                    $this->redirect($this->url('Login'));
                }
            }
            
            /**
             * Redirect after login if previous attempt got a 403
             */
            if ($afterLogin = Session::getAfterLogin()) {
                Session::cleanAfterLogin();
            } else {
                $afterLogin = $this->url('LoginHome');
            }

            if (isAjax()) {
                $this->json(['redirect' => $afterLogin]);
            } else {
                $this->redirect($afterLogin);
            }
        }

        public function showLoginHome() {
            $active = 'login';
            $this
                ->setTitle('Admin Page')
                ->add('active', $active)
                ->show('login/index');
        }
    }
Ribosome API documentation generated by ApiGen