return false;
}
+ $user = common_current_user();
+ $profile = $user->getProfile();
+ if (!$profile->hasRight(Right::CREATEGROUP)) {
+ // TRANS: Client exception thrown when a user tries to create a group while banned.
+ throw new ClientException(_('You are not allowed to create groups on this site.'), 403);
+ }
+
return true;
}
$this->showForm(_('Homepage is not a valid URL.'));
return;
} else if (!is_null($fullname) && mb_strlen($fullname) > 255) {
- $this->showForm(_('Full name is too long (max 255 chars).'));
+ $this->showForm(_('Full name is too long (maximum 255 characters).'));
return;
} else if (User_group::descriptionTooLong($description)) {
- $this->showForm(sprintf(_('description is too long (max %d chars).'), User_group::maxDescription()));
+ // TRANS: Form validation error creating a new group because the description is too long.
+ // TRANS: %d is the maximum number of allowed characters.
+ $this->showForm(sprintf(_m('Description is too long (maximum %d character).',
+ 'Description is too long (maximum %d characters).',
+ User_group::maxDescription()),
+ User_group::maxDescription()));
return;
} else if (!is_null($location) && mb_strlen($location) > 255) {
- $this->showForm(_('Location is too long (max 255 chars).'));
+ $this->showForm(_('Location is too long (maximum 255 characters).'));
return;
}
}
if (count($aliases) > common_config('group', 'maxaliases')) {
- $this->showForm(sprintf(_('Too many aliases! Maximum %d.'),
+ // TRANS: Client error shown when providing too many aliases during group creation.
+ // TRANS: %d is the maximum number of allowed aliases.
+ $this->showForm(sprintf(_m('Too many aliases! Maximum %d allowed.',
+ 'Too many aliases! Maximum %d allowed.',
+ common_config('group', 'maxaliases')),
common_config('group', 'maxaliases')));
return;
}
}
}
+ $mainpage = common_local_url('showgroup', array('nickname' => $nickname));
+
$cur = common_current_user();
// Checked in prepare() above
assert(!is_null($cur));
- $group = new User_group();
-
- $group->query('BEGIN');
-
- $group->nickname = $nickname;
- $group->fullname = $fullname;
- $group->homepage = $homepage;
- $group->description = $description;
- $group->location = $location;
- $group->created = common_sql_now();
-
- $result = $group->insert();
-
- if (!$result) {
- common_log_db_error($group, 'INSERT', __FILE__);
- $this->serverError(_('Could not create group.'));
- }
-
- $result = $group->setAliases($aliases);
-
- if (!$result) {
- $this->serverError(_('Could not create aliases.'));
- }
-
- $member = new Group_member();
-
- $member->group_id = $group->id;
- $member->profile_id = $cur->id;
- $member->is_admin = 1;
- $member->created = $group->created;
-
- $result = $member->insert();
-
- if (!$result) {
- common_log_db_error($member, 'INSERT', __FILE__);
- $this->serverError(_('Could not set group membership.'));
- }
-
- $group->query('COMMIT');
+ $group = User_group::register(array('nickname' => $nickname,
+ 'fullname' => $fullname,
+ 'homepage' => $homepage,
+ 'description' => $description,
+ 'location' => $location,
+ 'aliases' => $aliases,
+ 'userid' => $cur->id,
+ 'mainpage' => $mainpage,
+ 'local' => true));
common_redirect($group->homeUrl(), 303);
}
function nicknameExists($nickname)
{
- $group = User_group::staticGet('nickname', $nickname);
+ $local = Local_group::staticGet('nickname', $nickname);
- if (!empty($group)) {
+ if (!empty($local)) {
return true;
}