Simple latest comment list
[anoweco.git] / www / auth.php
index d3325b05fd5e15384e2150807c651e327a439b1c..22e3de9f0195375b6425083b2575ac94a958b97c 100644 (file)
@@ -8,17 +8,20 @@ namespace anoweco;
 header('HTTP/1.0 500 Internal Server Error');
 require 'www-header.php';
 
-function getOrCreateUser($mode, $name, $email)
+function getOrCreateUser($mode, $name, $imageurl, $email)
 {
     if ($mode == 'anonymous') {
-        $name  = 'Anonymous';
-        $email = '';
+        $name     = 'Anonymous';
+        $email    = '';
+        $imageurl = '';
     } else {
         if ($name == '') {
             $name = 'Anonymous';
         }
     }
-    $imageurl = getImageUrl($email);
+    if ($imageurl == '') {
+        $imageurl = getImageUrl($email);
+    }
 
     $storage = new Storage();
     $id = $storage->findUser($name, $imageurl);
@@ -52,7 +55,24 @@ if ($_SERVER['REQUEST_METHOD'] == 'GET') {
     $response_type = getOptionalParameter($_GET, 'response_type', 'id');
     $scope         = getOptionalParameter($_GET, 'scope', null);
 
-    //FIXME: if $me is an actual user, load his data
+    $id = array(
+        'mode'     => 'anonymous',
+        'name'     => '',
+        'imageurl' => '',
+    );
+    $userId = Urls::userId($me);
+    if ($userId !== null) {
+        $storage = new Storage();
+        $rowUser = $storage->getUser($userId);
+        if ($rowUser !== null) {
+            $id['mode']     = 'data';
+            $id['name']     = $rowUser->user_name;
+            $id['imageurl'] = $rowUser->user_imageurl;
+            if ($id['imageurl'] == Urls::userImg()) {
+                $id['imageurl'] = '';
+            }
+        }
+    }
 
     //let the user choose his identity
     header('HTTP/1.0 200 OK');
@@ -66,6 +86,7 @@ if ($_SERVER['REQUEST_METHOD'] == 'GET') {
                 'response_type' => $response_type,
                 'scope'         => $scope,
             ),
+            'id' => $id,
             'formaction' => '/auth.php?action=login',
         )
     );
@@ -84,7 +105,8 @@ if ($_SERVER['REQUEST_METHOD'] == 'GET') {
         verifyParameter($id, 'mode');
 
         $userId = getOrCreateUser(
-            $id['mode'], trim($id['name']), trim($id['email'])
+            $id['mode'], trim($id['name']), trim($id['imageurl']),
+            trim($id['email'])
         );
         $me = Urls::full(Urls::user($userId));