]> source.dussan.org Git - nextcloud-server.git/commitdiff
Change authentication method to basic http auth instead of using $_GET variables
authorHans Bakker <hansmbakker@gmail.com>
Wed, 17 Aug 2011 10:47:56 +0000 (12:47 +0200)
committerHans Bakker <hansmbakker@gmail.com>
Wed, 17 Aug 2011 10:47:56 +0000 (12:47 +0200)
Also use OC_User::isLoggedIn to check if new authentication is needed for grouplist.php and userlist.php
For validateuser.php, credentials are always needed.

core/ajax/grouplist.php
core/ajax/userlist.php
core/ajax/validateuser.php

index 9b6c4bfa8a862130342e92ceb84f6abc131fbb81..d0d10f7a84e01dd65f1607b5a5cd610bb6e3bd40 100644 (file)
 *
 */
 
-
-// We send json data
-header( "Content-Type: application/jsonrequest" );
-
 $RUNTIME_NOAPPS = TRUE; //no apps, yet
 require_once('../../lib/base.php');
 
-if(isset($_GET["user"]) && isset($_GET["password"]))
-{
-       if(!OC_User::checkPassword($_GET["user"], $_GET["password"]))
-               exit();
-
-       $groups = array();
-
-       foreach( OC_Group::getGroups() as $i ){
-               // Do some more work here soon
-               $groups[] = array( "groupname" => $i );
+if(!OC_User::isLoggedIn()){
+       if(!isset($_SERVER['PHP_AUTH_USER'])){
+               header('WWW-Authenticate: Basic realm="ownCloud Server"');
+               header('HTTP/1.0 401 Unauthorized');
+               echo 'Valid credentials must be supplied';
+               exit();
+       } else {
+               if(!OC_User::checkPassword($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
+                       exit();
+               }
        }
+}
+
+$groups = array();
 
-       echo json_encode($groups);
+foreach( OC_Group::getGroups() as $i ){
+               // Do some more work here soon
+        $groups[] = array( "groupname" => $i );
 }
+
+// We send json data
+header( "Content-Type: application/jsonrequest" );
+echo json_encode($groups);
+
 ?>
index 16e89c2ee8f95a3629a0847e86e5c46366e114ff..0485f514550a3aaa9cb686eef0214ecdb8e8e725 100644 (file)
 *
 */
 
-
-// We send json data
-header( "Content-Type: application/jsonrequest" );
-
 $RUNTIME_NOAPPS = TRUE; //no apps, yet
 require_once('../../lib/base.php');
 
-if(isset($_GET["user"]) && isset($_GET["password"]))
-{
-        if(!OC_User::checkPassword($_GET["user"], $_GET["password"]))
+if(!OC_User::isLoggedIn()){
+        if(!isset($_SERVER['PHP_AUTH_USER'])){
+                header('WWW-Authenticate: Basic realm="ownCloud Server"');
+                header('HTTP/1.0 401 Unauthorized');
+                echo 'Valid credentials must be supplied';
                 exit();
+        } else {
+                if(!OC_User::checkPassword($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
+                        exit();
+                }
+        }
+}
 
-        $users = array();
-
-        foreach( OC_User::getUsers() as $i ){
-               $users[] = array( "username" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ));
-       }
-
-       echo json_encode($users);
-
+$users = array();
 
+foreach( OC_User::getUsers() as $i ){
+               $users[] = array( "username" => $i, "groups" => join( ", ", OC_Group::getUserGroups( $i ) ));
 }
 
+// We send json data
+header( "Content-Type: application/jsonrequest" );
+echo json_encode($users);
+
 ?>
index 967a5184a2c06373ef061a4f0c49c1818429cc36..032948fc331102fac4e7519b227db16bb4b390c1 100644 (file)
 *
 */
 
-header("Content-Type: application/jsonrequest");
-
 $RUNTIME_NOAPPS = TRUE; //no apps, yet
-
 require_once('../../lib/base.php');
 
-$not_installed = !OC_Config::getValue('installed', false);
-
-// First step : check if the server is correctly configured for ownCloud :
-$errors = OC_Util::checkServer();
-if(count($errors) > 0) {
-        echo json_encode(array("user_valid" => "false", "comment" => $errors));
-}
-
-// Setup required :
-elseif($not_installed) {
-        echo json_encode(array("user_valid" => "false", "comment" => "not_installed"));
-
-}
-
-// Someone wants to check a user:
-elseif(isset($_GET["user"]) and isset($_GET["password"])) {
-        if(OC_User::checkPassword($_GET["user"], $_GET["password"]))
-               echo json_encode(array("user_valid" => "true", "comment" => ""));
-       else
-               echo json_encode(array("user_valid" => "false", "comment" => ""));
-}
-
-// For all others cases:
-else {
-        echo json_encode(array("user_valid" => "false", "comment" => "unknown"));
+if(!isset($_SERVER['PHP_AUTH_USER'])){
+        header('WWW-Authenticate: Basic realm="ownCloud Server"');
+        header('HTTP/1.0 401 Unauthorized');
+        echo 'Valid credentials must be supplied';
+        exit();
+} else {
+       header("Content-Type: application/jsonrequest");
+        if(OC_User::checkPassword($_SERVER["PHP_AUTH_USER"], $_SERVER["PHP_AUTH_PW"])){
+               echo json_encode(array("username" => $_SERVER["PHP_AUTH_USER"], "user_valid" => "true"));
+       } else {
+               echo json_encode(array("username" => $_SERVER["PHP_AUTH_USER"], "user_valid" => "false"));
+       }
 }
 
 ?>