header($_SERVER["SERVER_PROTOCOL"] . " 401 Unauthorized"); header('WWW-Authenticate: Bearer realm="Device KEY", error="invalid_devicekey", error_description="Invalid device key"'); print "Invalid device key"; $log = new EmonLogger(__FILE__); $log->error("Invalid device key '" . $devicekey . "'"); exit; } } else { $session = $user->emon_session_start(); } } // 4) Language if (!isset($session['lang'])) { $session['lang'] = ''; } set_emoncms_lang($session['lang']); // 5) Get route and load controller $route = new Route(get('q'), server('DOCUMENT_ROOT'), server('REQUEST_METHOD')); if (get('embed') == 1) { $embed = 1; } else { $embed = 0; } // If no route specified use defaults if ($route->isRouteNotDefined()) { if (!isset($session['read']) || isset($session['read']) && !$session['read']) { // Non authenticated defaults $route->controller = $default_controller; $route->action = $default_action; $route->subaction = ""; } else {
//--------------------------------------------------------------------------------- // SESSION CONTROL // if the apikey is set then the session is controlled by the apikey // otherwise it is controlled by the cookie based php session. //--------------------------------------------------------------------------------- if (isset($_GET['apikey']) && $_GET['apikey']) { $session = user_apikey_session_control($_GET['apikey']); } else { emon_session_start(); $session = $_SESSION; if (!isset($session['userid'])) { $session['userid'] = 0; } } // Set user language on every page load to avoid apache multithread setlocale error set_emoncms_lang($session['userid']); // Set emoncms theme TODO: get from user preferences $GLOBALS['theme'] = 'basic'; // Redirect to login screen if user is no longer logged in (eg. after session timeout) if ($controller == '' && $action == '') { $controller = "user"; $action = "login"; // Don't show login page if user IS logged in. Redirect them to dashboard list instead. if ($session['userid'] > 0) { header("Location: " . $path . "dashboard/list"); } } //--------------------------------------------------------------------------------- // CREATE OUTPUT CONTENT ARRAY // All content is stored in the $output array //---------------------------------------------------------------------------------