summaryrefslogtreecommitdiff
path: root/actions/joingroup.php
diff options
context:
space:
mode:
authorEvan Prodromou <evan@status.net>2010-02-25 18:45:32 -0500
committerEvan Prodromou <evan@status.net>2010-02-25 18:45:32 -0500
commit4aa82f75ed692e254c573096168e1cd7c0890ac6 (patch)
tree9fb87849f1f09c69c1c8e1a7c93d76fa283d5330 /actions/joingroup.php
parent6578e0e1afed8e8738bbcb31d200927e10074f11 (diff)
parente254c660f66e1a04ac18220c95ef47aa88117e3c (diff)
Merge branch 'testing' of git@gitorious.org:statusnet/mainline into testing
Diffstat (limited to 'actions/joingroup.php')
-rw-r--r--actions/joingroup.php39
1 files changed, 21 insertions, 18 deletions
diff --git a/actions/joingroup.php b/actions/joingroup.php
index ba642f712..f87e5dae2 100644
--- a/actions/joingroup.php
+++ b/actions/joingroup.php
@@ -62,30 +62,33 @@ class JoingroupAction extends Action
}
$nickname_arg = $this->trimmed('nickname');
- $nickname = common_canonical_nickname($nickname_arg);
-
- // Permanent redirect on non-canonical nickname
+ $id = intval($this->arg('id'));
+ if ($id) {
+ $this->group = User_group::staticGet('id', $id);
+ } else if ($nickname_arg) {
+ $nickname = common_canonical_nickname($nickname_arg);
+
+ // Permanent redirect on non-canonical nickname
+
+ if ($nickname_arg != $nickname) {
+ $args = array('nickname' => $nickname);
+ common_redirect(common_local_url('leavegroup', $args), 301);
+ return false;
+ }
- if ($nickname_arg != $nickname) {
- $args = array('nickname' => $nickname);
- common_redirect(common_local_url('joingroup', $args), 301);
- return false;
- }
+ $local = Local_group::staticGet('nickname', $nickname);
- if (!$nickname) {
- $this->clientError(_('No nickname.'), 404);
- return false;
- }
-
- $local = Local_group::staticGet('nickname', $nickname);
+ if (!$local) {
+ $this->clientError(_('No such group.'), 404);
+ return false;
+ }
- if (!$local) {
- $this->clientError(_('No such group.'), 404);
+ $this->group = User_group::staticGet('id', $local->group_id);
+ } else {
+ $this->clientError(_('No nickname or ID.'), 404);
return false;
}
- $this->group = User_group::staticGet('id', $local->group_id);
-
if (!$this->group) {
$this->clientError(_('No such group.'), 404);
return false;