VestaSession.class.php 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. <?php
  2. class VestaSession
  3. {
  4. static public $instance = null;
  5. static function start($request = null)
  6. {
  7. self::initSessionPath();
  8. session_start();
  9. /*if ($request->hasParameter('v_sd')) {
  10. session_id($request->getParameter('v_sd'));
  11. }*/
  12. }
  13. static function initSessionPath()
  14. {
  15. $sessions_dir = '/tmp/'.Config::get('session_dirname');
  16. if (!is_readable($sessions_dir)) {
  17. mkdir($sessions_dir);
  18. }
  19. session_save_path($sessions_dir);
  20. }
  21. /**
  22. * Grab current instance or create it
  23. *
  24. * @return AjaxHandler
  25. */
  26. static function getInstance()
  27. {
  28. return null == self::$instance ? self::$instance = new self() : self::$instance;
  29. }
  30. static function authorize($username)
  31. {
  32. $_SESSION['user'] = $username;
  33. return session_id();
  34. }
  35. static function logoff()
  36. {
  37. session_destroy();
  38. }
  39. public function getUser()
  40. {
  41. if (isset($_SESSION['user'])) {
  42. $user = array('uid' => $_SESSION['user']);
  43. $user['DISK'] = 10000;
  44. $user['BANDWIDTH'] = 10000;
  45. return $user;
  46. }
  47. print json_encode(array('result' => "NOT_AUTHORISED"));
  48. exit;
  49. }
  50. }
  51. ?>