Ticket #2166: accept aliases for local group names in API

Also simplifies the code by using User_group::getForNickname instead of duplicating half of it :D
This commit is contained in:
Brion Vibber 2011-01-07 16:23:54 -08:00
parent 5616bfb5ff
commit cb56f445b8

View File

@ -1437,41 +1437,23 @@ class ApiAction extends Action
{ {
if (empty($id)) { if (empty($id)) {
if (self::is_decimal($this->arg('id'))) { if (self::is_decimal($this->arg('id'))) {
return User_group::staticGet($this->arg('id')); return User_group::staticGet('id', $this->arg('id'));
} else if ($this->arg('id')) { } else if ($this->arg('id')) {
$nickname = common_canonical_nickname($this->arg('id')); return User_group::getForNickname($this->arg('id'));
$local = Local_group::staticGet('nickname', $nickname);
if (empty($local)) {
return null;
} else {
return User_group::staticGet('id', $local->id);
}
} else if ($this->arg('group_id')) { } else if ($this->arg('group_id')) {
// This is to ensure that a non-numeric user_id still // This is to ensure that a non-numeric group_id still
// overrides screen_name even if it doesn't get used // overrides group_name even if it doesn't get used
if (self::is_decimal($this->arg('group_id'))) { if (self::is_decimal($this->arg('group_id'))) {
return User_group::staticGet('id', $this->arg('group_id')); return User_group::staticGet('id', $this->arg('group_id'));
} }
} else if ($this->arg('group_name')) { } else if ($this->arg('group_name')) {
$nickname = common_canonical_nickname($this->arg('group_name')); return User_group::getForNickname($this->arg('group_name'));
$local = Local_group::staticGet('nickname', $nickname);
if (empty($local)) {
return null;
} else {
return User_group::staticGet('id', $local->group_id);
}
} }
} else if (self::is_decimal($id)) { } else if (self::is_decimal($id)) {
return User_group::staticGet($id); return User_group::staticGet('id', $id);
} else { } else {
$nickname = common_canonical_nickname($id); return User_group::getForNickname($id);
$local = Local_group::staticGet('nickname', $nickname);
if (empty($local)) {
return null;
} else {
return User_group::staticGet('id', $local->group_id);
}
} }
} }