]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
Fix problem where screen_name and user_id parameters are being
authorZach Copley <zach@status.net>
Mon, 30 Nov 2009 21:08:55 +0000 (13:08 -0800)
committerZach Copley <zach@status.net>
Mon, 30 Nov 2009 21:08:55 +0000 (13:08 -0800)
ignored due to the router sending in '[a-zA-Z0-9]+' for the id
parameter when no id is specified as part of the URL.

lib/api.php

index e2ea87b43eb3d934d7c1d2d9bfa653fabcbe5037..539aac4af252adfafa14fa9b325d441c866f0caf 100644 (file)
@@ -1142,15 +1142,10 @@ class ApiAction extends Action
 
     function getTargetUser($id)
     {
-        if (empty($id)) {
+        if (!preg_match('/^[a-zA-Z0-9]+$/', $id)) {
 
             // Twitter supports these other ways of passing the user ID
-            if (is_numeric($this->arg('id'))) {
-                return User::staticGet($this->arg('id'));
-            } else if ($this->arg('id')) {
-                $nickname = common_canonical_nickname($this->arg('id'));
-                return User::staticGet('nickname', $nickname);
-            } else if ($this->arg('user_id')) {
+            if ($this->arg('user_id')) {
                 // This is to ensure that a non-numeric user_id still
                 // overrides screen_name even if it doesn't get used
                 if (is_numeric($this->arg('user_id'))) {
@@ -1159,6 +1154,12 @@ class ApiAction extends Action
             } else if ($this->arg('screen_name')) {
                 $nickname = common_canonical_nickname($this->arg('screen_name'));
                 return User::staticGet('nickname', $nickname);
+
+            } else if (is_numeric($this->arg('id'))) {
+                return User::staticGet($this->arg('id'));
+            } else if ($this->arg('id')) {
+                $nickname = common_canonical_nickname($this->arg('id'));
+                return User::staticGet('nickname', $nickname);
             } else {
                 // Fall back to trying the currently authenticated user
                 return $this->auth_user;