]> source.dussan.org Git - nextcloud-server.git/commitdiff
remember login added
authorBartek Przybylski <bart.p.pl@gmail.com>
Wed, 20 Jul 2011 13:04:14 +0000 (15:04 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Wed, 20 Jul 2011 13:04:14 +0000 (15:04 +0200)
core/css/styles.css
core/templates/login.php
index.php
lib/user.php

index f0dfd1e9b1534db3f6a44fb676fef2a765f2085a..678ad009d1a1392e4de8c899c17ae7b501cba7c6 100644 (file)
@@ -107,7 +107,10 @@ div.controls { width:91%; margin:1em 1em 1em 2em; padding:0.5em 0; background-co
     background-color: #666;
     color: #FFF;
 }
-
+#login_form input[type="checkbox"]
+{
+       width:15px;
+}
 
 #setup_form {
        margin: 3em auto;
index 0ed4178a984d5fe3be1084ace181ec2afe1ebcd9..7c0efa9fa4f74557411e7f4bfa06ebddeda5c8eb 100644 (file)
@@ -5,8 +5,15 @@
                        <?php if($_['error']): ?>
                                <?php echo $l->t( 'Login failed!' ); ?>
                        <?php endif; ?>
+                       <?php if(empty($_["username"])){?>
                        <input type="text" name="user" id="user" value="" autofocus />
+                       <input type="checkbox" name="remember_login"/> <?php echo $l->t('Remember login'); ?>
                        <input type="password" name="password" id="password" value="" />
+                       <?php }else{ ?>
+                       <input type="text" name="user" id="user" value="<?php echo $_['username']; ?>">
+                       <input type="checkbox" name="remember_login" checked /> <?php echo $l->t('Remember login'); ?>
+                       <input type="password" name="password" id="password" value="" autofocus />
+                       <?php } ?>
                        <input type="submit" value="Log in" />
                </fieldset>
        </form>
index d1726676c66be108eea969b2316f324324a8d2ae..2e2d495fda619a81463ce4dfaf52bda6ae97cc21 100644 (file)
--- a/index.php
+++ b/index.php
@@ -31,7 +31,6 @@ OC_UTIL::addScript('setup');
 
 $not_installed = !OC_CONFIG::getValue('installed', false);
 $install_called = (isset($_POST['install']) AND $_POST['install']=='true');
-
 // First step : check if the server is correctly configured for ownCloud :
 $errors = OC_UTIL::checkServer();
 if(count($errors) > 0) {
@@ -61,17 +60,23 @@ elseif(isset($_POST["user"])) {
        OC_APP::loadApps();
        if(OC_USER::login($_POST["user"], $_POST["password"])) {
                header("Location: ".$WEBROOT.'/'.OC_APPCONFIG::getValue("core", "defaultpage", "files/index.php"));
+               if(!empty($_POST["remember_login"])){
+                       OC_USER::setUsernameInCookie($_POST["user"]);
+               }
+               else {
+                       OC_USER::unsetUsernameInCookie();
+               }
                exit();
        }
        else {
-               OC_TEMPLATE::printGuestPage("", "login", array("error" => true));
+               OC_TEMPLATE::printGuestPage("", "login", array("error" => true, "username" => $_COOKIE["username"]));
        }
 }
 
 // For all others cases, we display the guest page :
 else {
        OC_APP::loadApps();
-       OC_TEMPLATE::printGuestPage("", "login", array("error" => false));
+       OC_TEMPLATE::printGuestPage("", "login", array("error" => false, "username" => $_COOKIE["username"]));
 }
 
 ?>
\ No newline at end of file
index 25f555b47b125767c24504468993ccfc72f7b348..a64ce05f2c937aee9cdced3b3cd204d42df24b4b 100644 (file)
@@ -337,4 +337,20 @@ class OC_USER {
                }
                return false;
        }
+
+       /**
+        * @brief Set cookie value to use in next page load
+        * @param string $username username to be set
+        */
+       public static function setUsernameInCookie($username){
+               setcookie("username", $username, mktime().time()+60*60*24*15);
+       }
+
+       /**
+        * @brief Remove cookie for "remember username"
+        */
+       public static function unsetUsernameInCookie(){
+               unset($_COOKIE["username"]);
+               setcookie("username", NULL, -1);
+       }
 }