fixed a few bugs and logic problems in groups
This commit is contained in:
parent
c20d0612bf
commit
e272adb321
@ -88,7 +88,12 @@ class EditgroupAction extends Action
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->group = User_group::staticGet('nickname', $nickname);
|
||||
$groupid = $this->trimmed('groupid');
|
||||
if ($groupid) {
|
||||
$this->group = User_group::staticGet('id', $groupid);
|
||||
} else {
|
||||
$this->group = User_group::staticGet('nickname', $nickname);
|
||||
}
|
||||
|
||||
if (!$this->group) {
|
||||
$this->clientError(_('No such group'), 404);
|
||||
@ -97,7 +102,7 @@ class EditgroupAction extends Action
|
||||
|
||||
$cur = common_current_user();
|
||||
|
||||
if (!$cur->isAdmin($group)) {
|
||||
if (!$cur->isAdmin($this->group)) {
|
||||
$this->clientError(_('You must be an admin to edit the group'), 403);
|
||||
return false;
|
||||
}
|
||||
@ -155,6 +160,13 @@ class EditgroupAction extends Action
|
||||
|
||||
function trySave()
|
||||
{
|
||||
$cur = common_current_user();
|
||||
if (!$cur->isAdmin($this->group)) {
|
||||
$this->clientError(_('You must be an admin to edit the group'), 403);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
$nickname = common_canonical_nickname($this->trimmed('nickname'));
|
||||
$fullname = $this->trimmed('fullname');
|
||||
$homepage = $this->trimmed('homepage');
|
||||
@ -222,4 +234,5 @@ class EditgroupAction extends Action
|
||||
$group != false &&
|
||||
$group->id != $this->group->id);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -57,12 +57,12 @@ class LeavegroupAction extends Action
|
||||
parent::prepare($args);
|
||||
|
||||
if (!common_config('inboxes','enabled')) {
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work'));
|
||||
$this->serverError(_('Inboxes must be enabled for groups to work.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
if (!common_logged_in()) {
|
||||
$this->clientError(_('You must be logged in to join a group.'));
|
||||
$this->clientError(_('You must be logged in to leave a group.'));
|
||||
return false;
|
||||
}
|
||||
|
||||
@ -78,24 +78,30 @@ class LeavegroupAction extends Action
|
||||
}
|
||||
|
||||
if (!$nickname) {
|
||||
$this->clientError(_('No nickname'), 404);
|
||||
$this->clientError(_('No nickname.'), 404);
|
||||
return false;
|
||||
}
|
||||
|
||||
$this->group = User_group::staticGet('nickname', $nickname);
|
||||
|
||||
if (!$this->group) {
|
||||
$this->clientError(_('No such group'), 404);
|
||||
$this->clientError(_('No such group.'), 404);
|
||||
return false;
|
||||
}
|
||||
|
||||
$cur = common_current_user();
|
||||
|
||||
if (!$cur->isMember($group)) {
|
||||
$this->clientError(_('You are not a member of that group'), 403);
|
||||
if (!$cur->isMember($this->group)) {
|
||||
$this->clientError(_('You are not a member of that group.'), 403);
|
||||
return false;
|
||||
}
|
||||
|
||||
if ($cur->isAdmin($this->group)) {
|
||||
$this->clientError(_('You may not leave a group while you are its administrator.'), 403);
|
||||
return false;
|
||||
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
@ -150,4 +156,4 @@ class LeavegroupAction extends Action
|
||||
$this->group->nickname)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -201,4 +201,5 @@ class NewgroupAction extends Action
|
||||
$group = User_group::staticGet('nickname', $nickname);
|
||||
return (!is_null($group) && $group != false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -267,8 +267,10 @@ class ShowgroupAction extends Action
|
||||
$cur = common_current_user();
|
||||
if ($cur) {
|
||||
if ($cur->isMember($this->group)) {
|
||||
$lf = new LeaveForm($this, $this->group);
|
||||
$lf->show();
|
||||
if (!$cur->isAdmin($this->group)) {
|
||||
$lf = new LeaveForm($this, $this->group);
|
||||
$lf->show();
|
||||
}
|
||||
} else {
|
||||
$jf = new JoinForm($this, $this->group);
|
||||
$jf->show();
|
||||
|
@ -133,6 +133,7 @@ class GroupEditForm extends Form
|
||||
{
|
||||
$this->out->elementStart('ul', 'form_data');
|
||||
$this->out->elementStart('li');
|
||||
$this->out->hidden('groupid', $this->group->id);
|
||||
$this->out->input('nickname', _('Nickname'),
|
||||
($this->out->arg('nickname')) ? $this->out->arg('nickname') : $this->group->nickname,
|
||||
_('1-64 lowercase letters or numbers, no punctuation or spaces'));
|
||||
|
Loading…
Reference in New Issue
Block a user