Skip to content
Snippets Groups Projects
Session.class.php 2 KiB
Newer Older
Sibidharan's avatar
Sibidharan committed
<?php

Sibidharan's avatar
Sibidharan committed
use MongoDB\Driver\Session as DriverSession;

Sibidharan's avatar
Sibidharan committed
class Session
{
Sibidharan's avatar
Sibidharan committed
    public static $isError = false;
Sibidharan's avatar
Sibidharan committed
    public static $user = null;
    public static $usersession = null;
Sibidharan's avatar
Sibidharan committed
    public static function start()
    {
        session_start();
    }

    public static function unset()
    {
        session_unset();
    }
    public static function destroy()
    {
        session_destroy();
Sibidharan's avatar
Sibidharan committed
        /*
        If UserSession is active, set it to inactive.
        */
Sibidharan's avatar
Sibidharan committed
    }

    public static function set($key, $value)
    {
        $_SESSION[$key] = $value;
    }

    public static function delete($key)
    {
        unset($_SESSION[$key]);
    }

    public static function isset($key)
    {
        return isset($_SESSION[$key]);
    }

    public static function get($key, $default=false)
    {
        if (Session::isset($key)) {
            return $_SESSION[$key];
        } else {
            return $default;
        }
    }
Sibidharan's avatar
Sibidharan committed

Sibidharan's avatar
Sibidharan committed
    public static function getUser()
    {
        return Session::$user;
    }

Sibidharan's avatar
Sibidharan committed
    public static function getUserSession()
    {
Sibidharan's avatar
Sibidharan committed
        return Session::$usersession;
    }


Sibidharan's avatar
Sibidharan committed
    public static function loadTemplate($name)
    {
        $script = $_SERVER['DOCUMENT_ROOT'] . get_config('base_path'). "_templates/$name.php";
        if (is_file($script)) {
            include $script;
        } else {
            Session::loadTemplate('_error');
        }
    }

    public static function renderPage()
    {
        Session::loadTemplate('_master');
    }

    public static function currentScript()
    {
        return basename($_SERVER['SCRIPT_NAME'], '.php');
    }

    public static function isAuthenticated()
    {
Sibidharan's avatar
Sibidharan committed
        //TODO: Is it a correct implementation? Change with instanceof
        if (is_object(Session::getUserSession())) {
Sibidharan's avatar
Sibidharan committed
            return Session::getUserSession()->isValid();
Sibidharan's avatar
Sibidharan committed
        }
Sibidharan's avatar
Sibidharan committed
        return false;
    }
Sibidharan's avatar
Sibidharan committed
    public static function ensureLogin()
    {
        if (!Session::isAuthenticated()) {
Sibidharan's avatar
Sibidharan committed
            header("Location: /login.php");
            die();
        }
    }
Sibidharan's avatar
Sibidharan committed
}