VestaSession.class.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  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. $user['role'] = $_SESSION['role'];
  46. return $user;
  47. }
  48. print json_encode(array('result' => "NOT_AUTHORISED"));
  49. exit;
  50. }
  51. public function getUserRole()
  52. {
  53. if($_SESSION['user'] == 'vesta'){
  54. return Vesta::ADMIN;
  55. }
  56. else{
  57. return Vesta::USER;
  58. }
  59. print json_encode(array('result' => "NOT_AUTHORISED"));
  60. exit;
  61. }
  62. public function loginAs($login)
  63. {
  64. // TODO checkrights for login as
  65. if(Vesta::hasRights(self::getUserRole(), 'login_as')){
  66. if(!$_SESSION['real_user']){
  67. $_SESSION['real_user'] = $_SESSION['user'];
  68. }
  69. }
  70. $_SESSION['user'] = $login;
  71. }
  72. public function logoutAs()
  73. {
  74. $_SESSION['user'] = $_SESSION['real_user'];
  75. $_SESSION['real_user'] = false;
  76. }
  77. }
  78. ?>