From 234e6a10b1b95b271bacd11687e1dcb168712147 Mon Sep 17 00:00:00 2001 From: Zach Copley Date: Mon, 30 Nov 2009 13:08:55 -0800 Subject: [PATCH] Fix problem where screen_name and user_id parameters are being 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 | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/lib/api.php b/lib/api.php index e2ea87b43e..539aac4af2 100644 --- a/lib/api.php +++ b/lib/api.php @@ -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; -- 2.39.2