PageRenderTime 232ms CodeModel.GetById 28ms RepoModel.GetById 1ms app.codeStats 0ms

/scalr-2/tags/scalr-2.0.0/app/www/src/prepend.inc.php

http://scalr.googlecode.com/
PHP | 132 lines | 102 code | 23 blank | 7 comment | 32 complexity | 3455f9fb233367265e1c7c09ae8921df MD5 | raw file
Possible License(s): LGPL-2.1, Apache-2.0, GPL-3.0
  1. <?
  2. $ADM = true;
  3. session_start();
  4. require_once (dirname(__FILE__)."/../../src/prepend.inc.php");
  5. // Define current context
  6. if (!$context)
  7. {
  8. CONTEXTS::$APPCONTEXT = !stristr($_SERVER['PHP_SELF'], "event_handler.php") ? APPCONTEXT::CONTROL_PANEL : APPCONTEXT::EVENT_HANDLER;
  9. if ($_SERVER["HTTP_X_REQUESTED_WITH"] == "XMLHttpRequest")
  10. {
  11. CONTEXTS::$APPCONTEXT = APPCONTEXT::AJAX_REQUEST;
  12. }
  13. }
  14. else
  15. CONTEXTS::$APPCONTEXT = $context;
  16. if (!defined("NO_AUTH"))
  17. {
  18. Core::load("Data/JSON/JSON.php");
  19. Core::load("XMLNavigation", dirname(__FILE__));
  20. define("NOW", str_replace("..","", substr(basename($_SERVER['PHP_SELF']),0, -4)));
  21. if ($_COOKIE['scalr_uid'])
  22. {
  23. $Client = Client::Load($_COOKIE['scalr_uid']);
  24. $cpwd = $Crypto->Decrypt(@file_get_contents(dirname(__FILE__)."/../../etc/.passwd"));
  25. $signature = $Crypto->Hash("{$_COOKIE["scalr_sault"]}:{$_COOKIE["scalr_hash"]}:{$_COOKIE["scalr_uid"]}:{$_SERVER['REMOTE_ADDR']}:{$cpwd}");
  26. if ($signature == $_COOKIE['scalr_signature'])
  27. {
  28. $_SESSION["sault"] = $_COOKIE['scalr_sault'];
  29. $_SESSION["hash"] = $_COOKIE['scalr_hash'];
  30. $_SESSION["uid"] = $_COOKIE['scalr_uid'];
  31. $_SESSION["cpwd"] = $cpwd;
  32. $_SESSION["aws_accesskey"] = $Client->AWSAccessKey;
  33. $_SESSION["aws_accesskeyid"] = $Client->AWSAccessKeyID;
  34. $_SESSION["aws_accountid"] = $Client->AWSAccountID;
  35. $_SESSION["aws_private_key"] = $Client->AWSPrivateKey;
  36. $_SESSION["aws_certificate"] = $Client->AWSCertificate;
  37. }
  38. }
  39. // Auth
  40. if ($_SESSION["uid"] == 0)
  41. $newhash = $Crypto->Hash(CONFIG::$ADMIN_LOGIN.":".CONFIG::$ADMIN_PASSWORD.":".$_SESSION["sault"]);
  42. else
  43. {
  44. $user = $db->GetRow("SELECT * FROM clients WHERE id=?", $_SESSION['uid']);
  45. $newhash = $Crypto->Hash("{$user['email']}:{$user['password']}:".$_SESSION["sault"]);
  46. }
  47. $valid = ($newhash == $_SESSION["hash"] && !empty($_SESSION["hash"]));
  48. if (!$valid && !stristr($_SERVER['PHP_SELF'], "login.php") && !stristr($_SERVER['PHP_SELF'], "index.php"))
  49. {
  50. if (CONTEXTS::$APPCONTEXT != APPCONTEXT::AJAX_REQUEST)
  51. {
  52. $_SESSION["REQUEST_URI"] = $_SERVER['REQUEST_URI'];
  53. $_SESSION["uid"] = null;
  54. $err[] = "Please login";
  55. UI::Redirect("/login.php");
  56. }
  57. else
  58. {
  59. throw new ApplicationException(_("Session expired. Please <a href='/login.php'>login</a> again."),
  60. ApplicationException::NOT_AUTHORIZED);
  61. exit();
  62. }
  63. }
  64. if (CONTEXTS::$APPCONTEXT != APPCONTEXT::AJAX_REQUEST)
  65. {
  66. //
  67. // Load menu
  68. //
  69. require_once (dirname(__FILE__)."/navigation.inc.php");
  70. }
  71. if ($get_search)
  72. {
  73. $display["grid_query_string"] = "&query=".addslashes($get_search);
  74. $display["search"] = htmlspecialchars($get_search);
  75. }
  76. // title
  77. $display["title"] = "Scalr CP";
  78. if ($_SESSION['uid'] != 0)
  79. {
  80. if (!$_SESSION["aws_accesskey"] ||
  81. !$_SESSION["aws_private_key"] ||
  82. !$_SESSION["aws_certificate"]
  83. ) {
  84. if (!stristr($_SERVER['PHP_SELF'], 'aws_settings.php') &&
  85. !stristr($_SERVER['PHP_SELF'], 'login.php') &&
  86. !stristr($_SERVER['PHP_SELF'], 'profile.php') &&
  87. !stristr($_SERVER['PHP_SELF'], 'client_dashboard.php')
  88. )
  89. {
  90. $errmsg = "Welcome to Scalr - in order to get started, we need some additional information. Please enter the requested information below.";
  91. UI::Redirect("/aws_settings.php");
  92. }
  93. }
  94. }
  95. if ($_SESSION['uid'] != 0)
  96. {
  97. define("SCALR_SERVER_TZ", date_default_timezone_get());
  98. $Client = Client::Load($_SESSION['uid']);
  99. $tz = $Client->GetSettingValue(CLIENT_SETTINGS::TIMEZONE);
  100. if ($tz)
  101. date_default_timezone_set($tz);
  102. }
  103. }
  104. if ($req_region)
  105. $_SESSION['aws_region'] = $req_region;
  106. //TODO: Move default region to config
  107. if (!$_SESSION['aws_region'])
  108. $_SESSION['aws_region'] = 'us-east-1';
  109. ?>