]> source.dussan.org Git - nextcloud-server.git/commitdiff
Changed behaviour of remember checkbox
authorBartek Przybylski <bart.p.pl@gmail.com>
Sun, 18 Sep 2011 07:15:30 +0000 (09:15 +0200)
committerBartek Przybylski <bart.p.pl@gmail.com>
Sun, 18 Sep 2011 07:15:30 +0000 (09:15 +0200)
index.php
lib/user.php

index 52a00465f225623c0b1fd8665dd2ccb6990e225f..3c8a0e3bed62bbc59a62e52fd249a6c1ba8e851f 100644 (file)
--- a/index.php
+++ b/index.php
@@ -59,13 +59,37 @@ elseif(OC_User::isLoggedIn()) {
        }
 }
 
+// Semeone set remember login when login
+elseif(isset($_COOKIE["oc_remember_login"]) && $_COOKIE["oc_remember_login"]) {
+       OC_App::loadApps();
+       error_log("Trying to login from cookie");
+       if(OC_User::login($_COOKIE["oc_username"], $_COOKIE["oc_password"])) {
+               header("Location: ". $WEBROOT.'/'.OC_Appconfig::getValue("core", "defaultpage", "files/index.php"));
+               if(!empty($_POST["remember_login"])){
+                       OC_User::setUsernameInCookie($_POST["user"], $_POST["password"]);
+               }
+               else {
+                       OC_User::unsetUsernameInCookie();
+               }
+               exit();
+       }
+       else {
+               if(isset($_COOKIE["username"])){
+                       OC_Template::printGuestPage("", "login", array("error" => true, "username" => $_COOKIE["username"]));
+               }else{
+                       OC_Template::printGuestPage("", "login", array("error" => true));
+               }
+       }
+}
+
 // Someone wants to log in :
 elseif(isset($_POST["user"]) && isset($_POST['password'])) {
        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"]);
+                       error_log("Setting remember login to cookie");
+                       OC_User::setUsernameInCookie($_POST["user"], $_POST["password"]);
                }
                else {
                        OC_User::unsetUsernameInCookie();
@@ -73,8 +97,8 @@ elseif(isset($_POST["user"]) && isset($_POST['password'])) {
                exit();
        }
        else {
-               if(isset($_COOKIE["username"])){
-                       OC_Template::printGuestPage("", "login", array("error" => true, "username" => $_COOKIE["username"]));
+               if(isset($_COOKIE["oc_username"])){
+                       OC_Template::printGuestPage("", "login", array("error" => true, "username" => $_COOKIE["oc_username"]));
                }else{
                        OC_Template::printGuestPage("", "login", array("error" => true));
                }
index 0630ebb93848d233a6266530559b8246d9bcaf25..72dfd7970bbc582e10d12870c6e4894f477df33f 100644 (file)
@@ -215,6 +215,7 @@ class OC_User {
        public static function logout(){
                OC_Hook::emit( "OC_User", "logout", array());
                $_SESSION['user_id'] = false;
+               OC_User::unsetUsernameInCookie();
                return true;
        }
 
@@ -340,15 +341,21 @@ class OC_User {
         * @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);
+       public static function setUsernameInCookie($username, $password){
+               setcookie("oc_username", $username, time()+60*60*24*15);
+               setcookie("oc_password", $password, time()+60*60*24*15);
+               setcookie("oc_remember_login", true, time()+60*60*24*15);
        }
 
        /**
         * @brief Remove cookie for "remember username"
         */
        public static function unsetUsernameInCookie(){
-               unset($_COOKIE["username"]);
-               setcookie("username", NULL, -1);
+               unset($_COOKIE["oc_username"]);
+               unset($_COOKIE["oc_password"]);
+               unset($_COOKIE["oc_remember_login"]);
+               setcookie("oc_username", NULL, -1);
+               setcookie("oc_password", NULL, -1);
+               setcookie("oc_remember_login", NULL, -1);
        }
 }