setting the timezone is now part of the login process and true part of the core.
This commit is contained in:
parent
ecf82d2218
commit
7d811e57e6
|
@ -1,2 +0,0 @@
|
|||
<?php
|
||||
$_SESSION['timezone'] = $_GET['time'];
|
|
@ -32,9 +32,7 @@ OCP\Util::addscript( 'files', 'files' );
|
|||
OCP\Util::addscript('files', 'filelist');
|
||||
OCP\Util::addscript('files', 'fileactions');
|
||||
OCP\Util::addscript('files', 'keyboardshortcuts');
|
||||
if(!isset($_SESSION['timezone'])) {
|
||||
OCP\Util::addscript( 'files', 'timezone' );
|
||||
}
|
||||
|
||||
OCP\App::setActiveNavigationEntry('files_index');
|
||||
// Load the files
|
||||
$dir = isset($_GET['dir']) ? stripslashes($_GET['dir']) : '';
|
||||
|
@ -52,8 +50,7 @@ foreach( OC_Files::getdirectorycontent( $dir ) as $i ) {
|
|||
$i['basename'] = $fileinfo['filename'];
|
||||
if (!empty($fileinfo['extension'])) {
|
||||
$i['extension'] = '.' . $fileinfo['extension'];
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
$i['extension'] = '';
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,32 +1,50 @@
|
|||
<!--[if IE 8]><style>input[type="checkbox"]{padding:0;}</style><![endif]-->
|
||||
<form method="post">
|
||||
<fieldset>
|
||||
<?php if(!empty($_['redirect_url'])) { echo '<input type="hidden" name="redirect_url" value="'.$_['redirect_url'].'" />'; } ?>
|
||||
<?php if (!empty($_['redirect_url'])) {
|
||||
echo '<input type="hidden" name="redirect_url" value="' . $_['redirect_url'] . '" />';
|
||||
} ?>
|
||||
<ul>
|
||||
<?php if (isset($_['invalidcookie']) && ($_['invalidcookie'])): ?>
|
||||
<li class="errors">
|
||||
<?php echo $l->t('Automatic logon rejected!'); ?><br>
|
||||
<small><?php echo $l->t('If you did not change your password recently, your account may be compromised!'); ?></small><br>
|
||||
<small><?php echo $l->t('If you did not change your password recently, your account may be compromised!'); ?></small>
|
||||
<br>
|
||||
<small><?php echo $l->t('Please change your password to secure your account again.'); ?></small>
|
||||
</li>
|
||||
<?php endif; ?>
|
||||
<?php if (isset($_['invalidpassword']) && ($_['invalidpassword'])): ?>
|
||||
<a href="<?php echo OC_Helper::linkToRoute('core_lostpassword_index') ?>"><li class="errors">
|
||||
<a href="<?php echo OC_Helper::linkToRoute('core_lostpassword_index') ?>">
|
||||
<li class="errors">
|
||||
<?php echo $l->t('Lost your password?'); ?>
|
||||
</li></a>
|
||||
</li>
|
||||
</a>
|
||||
<?php endif; ?>
|
||||
</ul>
|
||||
<p class="infield grouptop">
|
||||
<input type="text" name="user" id="user" value="<?php echo $_['username']; ?>"<?php echo $_['user_autofocus']?' autofocus':''; ?> autocomplete="on" required />
|
||||
<input type="text" name="user" id="user"
|
||||
value="<?php echo $_['username']; ?>"<?php echo $_['user_autofocus'] ? ' autofocus' : ''; ?>
|
||||
autocomplete="on" required/>
|
||||
<label for="user" class="infield"><?php echo $l->t('Username'); ?></label>
|
||||
<img class="svg" src="<?php echo image_path('', 'actions/user.svg'); ?>" alt=""/>
|
||||
</p>
|
||||
|
||||
<p class="infield groupbottom">
|
||||
<input type="password" name="password" id="password" value="" required<?php echo $_['user_autofocus']?'':' autofocus'; ?> />
|
||||
<input type="password" name="password" id="password" value=""
|
||||
required<?php echo $_['user_autofocus'] ? '' : ' autofocus'; ?> />
|
||||
<label for="password" class="infield"><?php echo $l->t('Password'); ?></label>
|
||||
<img class="svg" src="<?php echo image_path('', 'actions/password.svg'); ?>" alt=""/>
|
||||
</p>
|
||||
<input type="checkbox" name="remember_login" value="1" id="remember_login" /><label for="remember_login"><?php echo $l->t('remember'); ?></label>
|
||||
<input type="checkbox" name="remember_login" value="1" id="remember_login"/><label
|
||||
for="remember_login"><?php echo $l->t('remember'); ?></label>
|
||||
<input type="hidden" name="timezone-offset" id="timezone-offset"/>
|
||||
<input type="submit" id="submit" class="login primary" value="<?php echo $l->t('Log in'); ?>"/>
|
||||
</fieldset>
|
||||
</form>
|
||||
<script>
|
||||
$(document).ready(function () {
|
||||
var visitortimezone = (-new Date().getTimezoneOffset() / 60);
|
||||
$('#timezone-offset').val(visitortimezone);
|
||||
});
|
||||
|
||||
</script>
|
||||
|
|
108
lib/base.php
108
lib/base.php
|
@ -27,7 +27,8 @@ require_once 'public/constants.php';
|
|||
* No, we can not put this class in its own file because it is used by
|
||||
* OC_autoload!
|
||||
*/
|
||||
class OC{
|
||||
class OC
|
||||
{
|
||||
/**
|
||||
* Assoziative array for autoloading. classname => filename
|
||||
*/
|
||||
|
@ -73,10 +74,12 @@ class OC{
|
|||
* OC router
|
||||
*/
|
||||
protected static $router = null;
|
||||
|
||||
/**
|
||||
* SPL autoload
|
||||
*/
|
||||
public static function autoload($className) {
|
||||
public static function autoload($className)
|
||||
{
|
||||
if (array_key_exists($className, OC::$CLASSPATH)) {
|
||||
$path = OC::$CLASSPATH[$className];
|
||||
/** @TODO: Remove this when necessary
|
||||
|
@ -86,29 +89,21 @@ class OC{
|
|||
OC_Log::write('core', 'include path for class "' . $className . '" starts with "apps/"', OC_Log::DEBUG);
|
||||
$path = str_replace('apps/', '', $path);
|
||||
}
|
||||
}
|
||||
elseif(strpos($className, 'OC_')===0) {
|
||||
} elseif (strpos($className, 'OC_') === 0) {
|
||||
$path = strtolower(str_replace('_', '/', substr($className, 3)) . '.php');
|
||||
}
|
||||
elseif(strpos($className, 'OC\\')===0) {
|
||||
} elseif (strpos($className, 'OC\\') === 0) {
|
||||
$path = strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
|
||||
}
|
||||
elseif(strpos($className, 'OCP\\')===0) {
|
||||
} elseif (strpos($className, 'OCP\\') === 0) {
|
||||
$path = 'public/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
|
||||
}
|
||||
elseif(strpos($className, 'OCA\\')===0) {
|
||||
} elseif (strpos($className, 'OCA\\') === 0) {
|
||||
$path = 'apps/' . strtolower(str_replace('\\', '/', substr($className, 3)) . '.php');
|
||||
}
|
||||
elseif(strpos($className, 'Sabre_')===0) {
|
||||
} elseif (strpos($className, 'Sabre_') === 0) {
|
||||
$path = str_replace('_', '/', $className) . '.php';
|
||||
}
|
||||
elseif(strpos($className, 'Symfony\\Component\\Routing\\')===0) {
|
||||
} elseif (strpos($className, 'Symfony\\Component\\Routing\\') === 0) {
|
||||
$path = 'symfony/routing/' . str_replace('\\', '/', $className) . '.php';
|
||||
}
|
||||
elseif(strpos($className, 'Sabre\\VObject')===0) {
|
||||
} elseif (strpos($className, 'Sabre\\VObject') === 0) {
|
||||
$path = str_replace('\\', '/', $className) . '.php';
|
||||
}
|
||||
elseif(strpos($className, 'Test_')===0) {
|
||||
} elseif (strpos($className, 'Test_') === 0) {
|
||||
$path = 'tests/lib/' . strtolower(str_replace('_', '/', substr($className, 5)) . '.php');
|
||||
} else {
|
||||
return false;
|
||||
|
@ -120,7 +115,8 @@ class OC{
|
|||
return false;
|
||||
}
|
||||
|
||||
public static function initPaths() {
|
||||
public static function initPaths()
|
||||
{
|
||||
// calculate the root directories
|
||||
OC::$SERVERROOT = str_replace("\\", '/', substr(__DIR__, 0, -4));
|
||||
OC::$SUBURI = str_replace("\\", "/", substr(realpath($_SERVER["SCRIPT_FILENAME"]), strlen(OC::$SERVERROOT)));
|
||||
|
@ -197,7 +193,8 @@ class OC{
|
|||
);
|
||||
}
|
||||
|
||||
public static function checkInstalled() {
|
||||
public static function checkInstalled()
|
||||
{
|
||||
// Redirect to installer if not installed
|
||||
if (!OC_Config::getValue('installed', false) && OC::$SUBURI != '/index.php') {
|
||||
if (!OC::$CLI) {
|
||||
|
@ -208,7 +205,8 @@ class OC{
|
|||
}
|
||||
}
|
||||
|
||||
public static function checkSSL() {
|
||||
public static function checkSSL()
|
||||
{
|
||||
// redirect to https site if configured
|
||||
if (OC_Config::getValue("forcessl", false)) {
|
||||
header('Strict-Transport-Security: max-age=31536000');
|
||||
|
@ -221,7 +219,8 @@ class OC{
|
|||
}
|
||||
}
|
||||
|
||||
public static function checkUpgrade() {
|
||||
public static function checkUpgrade()
|
||||
{
|
||||
if (OC_Config::getValue('installed', false)) {
|
||||
$installedVersion = OC_Config::getValue('version', '0.0.0');
|
||||
$currentVersion = implode('.', OC_Util::getVersion());
|
||||
|
@ -258,7 +257,8 @@ class OC{
|
|||
}
|
||||
}
|
||||
|
||||
public static function initTemplateEngine() {
|
||||
public static function initTemplateEngine()
|
||||
{
|
||||
// Add the stuff we need always
|
||||
OC_Util::addScript("jquery-1.7.2.min");
|
||||
OC_Util::addScript("jquery-ui-1.8.16.custom.min");
|
||||
|
@ -285,7 +285,8 @@ class OC{
|
|||
OC_Util::addStyle("jquery-tipsy");
|
||||
}
|
||||
|
||||
public static function initSession() {
|
||||
public static function initSession()
|
||||
{
|
||||
// prevents javascript from accessing php session cookies
|
||||
ini_set('session.cookie_httponly', '1;');
|
||||
|
||||
|
@ -315,7 +316,8 @@ class OC{
|
|||
$_SESSION['LAST_ACTIVITY'] = time();
|
||||
}
|
||||
|
||||
public static function getRouter() {
|
||||
public static function getRouter()
|
||||
{
|
||||
if (!isset(OC::$router)) {
|
||||
OC::$router = new OC_Router();
|
||||
OC::$router->loadRoutes();
|
||||
|
@ -324,7 +326,8 @@ class OC{
|
|||
return OC::$router;
|
||||
}
|
||||
|
||||
public static function init() {
|
||||
public static function init()
|
||||
{
|
||||
// register autoloader
|
||||
spl_autoload_register(array('OC', 'autoload'));
|
||||
setlocale(LC_ALL, 'en_US.UTF-8');
|
||||
|
@ -484,7 +487,8 @@ class OC{
|
|||
/**
|
||||
* register hooks for the cache
|
||||
*/
|
||||
public static function registerCacheHooks() {
|
||||
public static function registerCacheHooks()
|
||||
{
|
||||
// register cache cleanup jobs
|
||||
OC_BackgroundJob_RegularTask::register('OC_Cache_FileGlobal', 'gc');
|
||||
OC_Hook::connect('OC_User', 'post_login', 'OC_Cache_File', 'loginListener');
|
||||
|
@ -493,7 +497,8 @@ class OC{
|
|||
/**
|
||||
* register hooks for the filesystem
|
||||
*/
|
||||
public static function registerFilesystemHooks() {
|
||||
public static function registerFilesystemHooks()
|
||||
{
|
||||
// Check for blacklisted files
|
||||
OC_Hook::connect('OC_Filesystem', 'write', 'OC_Filesystem', 'isBlacklisted');
|
||||
OC_Hook::connect('OC_Filesystem', 'rename', 'OC_Filesystem', 'isBlacklisted');
|
||||
|
@ -502,7 +507,8 @@ class OC{
|
|||
/**
|
||||
* register hooks for sharing
|
||||
*/
|
||||
public static function registerShareHooks() {
|
||||
public static function registerShareHooks()
|
||||
{
|
||||
OC_Hook::connect('OC_User', 'post_deleteUser', 'OCP\Share', 'post_deleteUser');
|
||||
OC_Hook::connect('OC_User', 'post_addToGroup', 'OCP\Share', 'post_addToGroup');
|
||||
OC_Hook::connect('OC_User', 'post_removeFromGroup', 'OCP\Share', 'post_removeFromGroup');
|
||||
|
@ -512,7 +518,8 @@ class OC{
|
|||
/**
|
||||
* @brief Handle the request
|
||||
*/
|
||||
public static function handleRequest() {
|
||||
public static function handleRequest()
|
||||
{
|
||||
if (!OC_Config::getValue('installed', false)) {
|
||||
require_once 'core/setup.php';
|
||||
exit();
|
||||
|
@ -559,7 +566,8 @@ class OC{
|
|||
}
|
||||
$file_ext = substr($param['file'], -3);
|
||||
if ($file_ext != 'php'
|
||||
|| !self::loadAppScriptFile($param)) {
|
||||
|| !self::loadAppScriptFile($param)
|
||||
) {
|
||||
header('HTTP/1.0 404 Not Found');
|
||||
}
|
||||
}
|
||||
|
@ -569,7 +577,8 @@ class OC{
|
|||
self::handleLogin();
|
||||
}
|
||||
|
||||
public static function loadAppScriptFile($param) {
|
||||
public static function loadAppScriptFile($param)
|
||||
{
|
||||
OC_App::loadApps();
|
||||
$app = $param['app'];
|
||||
$file = $param['file'];
|
||||
|
@ -583,7 +592,8 @@ class OC{
|
|||
return false;
|
||||
}
|
||||
|
||||
public static function loadCSSFile($param) {
|
||||
public static function loadCSSFile($param)
|
||||
{
|
||||
$app = $param['app'];
|
||||
$file = $param['file'];
|
||||
$app_path = OC_App::getAppPath($app);
|
||||
|
@ -596,7 +606,8 @@ class OC{
|
|||
}
|
||||
}
|
||||
|
||||
protected static function handleLogin() {
|
||||
protected static function handleLogin()
|
||||
{
|
||||
OC_App::loadApps(array('prelogin'));
|
||||
$error = array();
|
||||
// remember was checked after last login
|
||||
|
@ -614,7 +625,8 @@ class OC{
|
|||
OC_Util::displayLoginPage(array_unique($error));
|
||||
}
|
||||
|
||||
protected static function cleanupLoginTokens($user) {
|
||||
protected static function cleanupLoginTokens($user)
|
||||
{
|
||||
$cutoff = time() - OC_Config::getValue('remember_login_cookie_lifetime', 60 * 60 * 24 * 15);
|
||||
$tokens = OC_Preferences::getKeys($user, 'login_token');
|
||||
foreach ($tokens as $token) {
|
||||
|
@ -625,11 +637,13 @@ class OC{
|
|||
}
|
||||
}
|
||||
|
||||
protected static function tryRememberLogin() {
|
||||
protected static function tryRememberLogin()
|
||||
{
|
||||
if (!isset($_COOKIE["oc_remember_login"])
|
||||
|| !isset($_COOKIE["oc_token"])
|
||||
|| !isset($_COOKIE["oc_username"])
|
||||
|| !$_COOKIE["oc_remember_login"]) {
|
||||
|| !$_COOKIE["oc_remember_login"]
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
OC_App::loadApps(array('authentication'));
|
||||
|
@ -664,7 +678,8 @@ class OC{
|
|||
return true;
|
||||
}
|
||||
|
||||
protected static function tryFormLogin() {
|
||||
protected static function tryFormLogin()
|
||||
{
|
||||
if (!isset($_POST["user"]) || !isset($_POST['password'])) {
|
||||
return false;
|
||||
}
|
||||
|
@ -675,6 +690,11 @@ class OC{
|
|||
OC_User::setupBackends();
|
||||
|
||||
if (OC_User::login($_POST["user"], $_POST["password"])) {
|
||||
// setting up the time zone
|
||||
if (isset($_POST['timezone-offset'])) {
|
||||
$_SESSION['timezone'] = $_POST['timezone-offset'];
|
||||
}
|
||||
|
||||
self::cleanupLoginTokens($_POST['user']);
|
||||
if (!empty($_POST["remember_login"])) {
|
||||
if (defined("DEBUG") && DEBUG) {
|
||||
|
@ -683,8 +703,7 @@ class OC{
|
|||
$token = OC_Util::generate_random_bytes(32);
|
||||
OC_Preferences::setValue($_POST['user'], 'login_token', $token, time());
|
||||
OC_User::setMagicInCookie($_POST["user"], $token);
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
OC_User::unsetMagicInCookie();
|
||||
}
|
||||
OC_Util::redirectToDefaultPage();
|
||||
|
@ -693,9 +712,11 @@ class OC{
|
|||
return true;
|
||||
}
|
||||
|
||||
protected static function tryBasicAuthLogin() {
|
||||
protected static function tryBasicAuthLogin()
|
||||
{
|
||||
if (!isset($_SERVER["PHP_AUTH_USER"])
|
||||
|| !isset($_SERVER["PHP_AUTH_PW"])) {
|
||||
|| !isset($_SERVER["PHP_AUTH_PW"])
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
OC_App::loadApps(array('authentication'));
|
||||
|
@ -716,7 +737,8 @@ if( !isset( $RUNTIME_NOAPPS )) {
|
|||
}
|
||||
|
||||
if (!function_exists('get_temp_dir')) {
|
||||
function get_temp_dir() {
|
||||
function get_temp_dir()
|
||||
{
|
||||
if ($temp = ini_get('upload_tmp_dir')) return $temp;
|
||||
if ($temp = getenv('TMP')) return $temp;
|
||||
if ($temp = getenv('TEMP')) return $temp;
|
||||
|
|
Loading…
Reference in New Issue