| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- <?php
- class VestaSession
- {
-
- static public $instance = null;
-
- static function start($request = null)
- {
- self::initSessionPath();
- session_start();
- /*if ($request->hasParameter('v_sd')) {
- session_id($request->getParameter('v_sd'));
- }*/
- }
-
- static function initSessionPath()
- {
- $sessions_dir = '/tmp/'.Config::get('session_dirname');
- if (!is_readable($sessions_dir)) {
- mkdir($sessions_dir);
- }
- session_save_path($sessions_dir);
- }
-
- /**
- * Grab current instance or create it
- *
- * @return AjaxHandler
- */
- static function getInstance()
- {
- return null == self::$instance ? self::$instance = new self() : self::$instance;
- }
-
- static function authorize($username)
- {
- $_SESSION['user'] = $username;
- return session_id();
- }
-
- static function logoff()
- {
- session_destroy();
- }
- public function getUser()
- {
- if (isset($_SESSION['user'])) {
- $user = array('uid' => $_SESSION['user']);
- $user['DISK'] = 10000;
- $user['BANDWIDTH'] = 10000;
- $user['role'] = $_SESSION['role'];
- return $user;
- }
- print json_encode(array('result' => "NOT_AUTHORISED"));
- exit;
- }
- public function getUserRole()
- {
- if($_SESSION['user'] == 'vesta'){
- return Vesta::ADMIN;
- }
- else{
- return Vesta::USER;
- }
- print json_encode(array('result' => "NOT_AUTHORISED"));
- exit;
- }
- public function loginAs($login)
- {
- // TODO checkrights for login as
- if(Vesta::hasRights(self::getUserRole(), 'login_as')){
- if(!$_SESSION['real_user']){
- $_SESSION['real_user'] = $_SESSION['user'];
- }
- }
- $_SESSION['user'] = $login;
- }
- public function logoutAs()
- {
- $_SESSION['user'] = $_SESSION['real_user'];
- $_SESSION['real_user'] = false;
- }
- }
- ?>
|