SHA1 Androidappbugfix if( !$row[\SYSTEM\DBD\system_user::FIELD_PASSWORD_SHA] || strlen($row[\SYSTEM\DBD\system_user::FIELD_PASSWORD_SHA]) < 40){ if($password_sha_new != NULL){ $pw = $password_sha_new; }else{ $pw = $password_sha; } \SYSTEM\DBD\SYS_SECURITY_UPDATE_PW::QQ(array($pw,$row[\SYSTEM\DBD\system_user::FIELD_ID])); $row[\SYSTEM\DBD\system_user::FIELD_PASSWORD_SHA] = $pw; } // set session variables $_SESSION['user'] = new User( $row[\SYSTEM\DBD\system_user::FIELD_ID], $row[\SYSTEM\DBD\system_user::FIELD_USERNAME], $row[\SYSTEM\DBD\system_user::FIELD_EMAIL], $row[\SYSTEM\DBD\system_user::FIELD_JOINDATE], time(), getenv('REMOTE_ADDR'), 0, NULL, $row[\SYSTEM\DBD\system_user::FIELD_LOCALE], \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL)); if(isset($locale)){ \SYSTEM\locale::set($locale);} \SYSTEM\DBD\SYS_SECURITY_UPDATE_LASTACTIVE::QI(array(microtime(true), $row[\SYSTEM\DBD\system_user::FIELD_ID])); return ($advancedResult ? $row : self::OK); } public static function getUser(){ if(!self::isLoggedIn()){ return NULL;} return $_SESSION['user'];} // Determine if username exists public static function available($username){ $res = \SYSTEM\DBD\SYS_SECURITY_AVAILABLE::Q1(array($username)); if(!$res){ throw new \SYSTEM\LOG\ERRROR("Cannot determine the availability of username!");} if($res['count'] != 0){ return self::FAIL;} return self::OK; } //checks for a right for a logged in user public static function check($rightid){ //Not logged in? Go away. //If you think you need rights for your guests ur doing smth wrong ;-) $user = null; if(!($user = self::getUser())){ return false;} $res = \SYSTEM\DBD\SYS_SECURITY_CHECK::Q1(array($user->id, $rightid)); if(!$res){ throw new \SYSTEM\LOG\ERROR("Cannot determine if you have the required rights!");} if($res['count'] == 0){ return false;} return true; } //Session public static function logout(){ self::startSession(); session_destroy(); return self::OK;} public static function save($key,$value){ self::startSession(); $_SESSION['values'][$key] = $value;} public static function load($key){ self::startSession(); if(!isset($_SESSION['values'][$key])){ return NULL;} return $_SESSION['values'][$key];} public static function isLoggedIn(){ self::startSession(); return (isset($_SESSION['user']) && $_SESSION['user'] instanceof User && $_SESSION['user']->base_url === \SYSTEM\CONFIG\config::get(\SYSTEM\CONFIG\config_ids::SYS_CONFIG_PATH_BASEURL));} private static function startSession(){ if(!isset($_SESSION) && !headers_sent()){ \session_start();}} }