events for creating a group
This commit is contained in:
parent
5fee38b025
commit
2682915b99
|
@ -1063,3 +1063,9 @@ StartGroupEditFormData: Beginning the group edit form entries
|
|||
|
||||
EndGroupEditFormData: Ending the group edit form entries
|
||||
- $form: The form widget being shown
|
||||
|
||||
StartGroupSave: After initializing but before saving a group
|
||||
- &$group: group about to be saved
|
||||
|
||||
EndGroupSave: After saving a group, aliases, and first member
|
||||
- $group: group that was saved
|
||||
|
|
|
@ -512,64 +512,70 @@ class User_group extends Memcached_DataObject
|
|||
$group->mainpage = $mainpage;
|
||||
$group->created = common_sql_now();
|
||||
|
||||
$result = $group->insert();
|
||||
if (Event::handle('StartGroupSave', array(&$group))) {
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($group, 'INSERT', __FILE__);
|
||||
// TRANS: Server exception thrown when creating a group failed.
|
||||
throw new ServerException(_('Could not create group.'));
|
||||
}
|
||||
|
||||
if (!isset($uri) || empty($uri)) {
|
||||
$orig = clone($group);
|
||||
$group->uri = common_local_url('groupbyid', array('id' => $group->id));
|
||||
$result = $group->update($orig);
|
||||
if (!$result) {
|
||||
common_log_db_error($group, 'UPDATE', __FILE__);
|
||||
// TRANS: Server exception thrown when updating a group URI failed.
|
||||
throw new ServerException(_('Could not set group URI.'));
|
||||
}
|
||||
}
|
||||
|
||||
$result = $group->setAliases($aliases);
|
||||
|
||||
if (!$result) {
|
||||
// TRANS: Server exception thrown when creating group aliases failed.
|
||||
throw new ServerException(_('Could not create aliases.'));
|
||||
}
|
||||
|
||||
$member = new Group_member();
|
||||
|
||||
$member->group_id = $group->id;
|
||||
$member->profile_id = $userid;
|
||||
$member->is_admin = 1;
|
||||
$member->created = $group->created;
|
||||
|
||||
$result = $member->insert();
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($member, 'INSERT', __FILE__);
|
||||
// TRANS: Server exception thrown when setting group membership failed.
|
||||
throw new ServerException(_('Could not set group membership.'));
|
||||
}
|
||||
|
||||
if ($local) {
|
||||
$local_group = new Local_group();
|
||||
|
||||
$local_group->group_id = $group->id;
|
||||
$local_group->nickname = $nickname;
|
||||
$local_group->created = common_sql_now();
|
||||
|
||||
$result = $local_group->insert();
|
||||
$result = $group->insert();
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($local_group, 'INSERT', __FILE__);
|
||||
// TRANS: Server exception thrown when saving local group information failed.
|
||||
throw new ServerException(_('Could not save local group info.'));
|
||||
common_log_db_error($group, 'INSERT', __FILE__);
|
||||
// TRANS: Server exception thrown when creating a group failed.
|
||||
throw new ServerException(_('Could not create group.'));
|
||||
}
|
||||
|
||||
if (!isset($uri) || empty($uri)) {
|
||||
$orig = clone($group);
|
||||
$group->uri = common_local_url('groupbyid', array('id' => $group->id));
|
||||
$result = $group->update($orig);
|
||||
if (!$result) {
|
||||
common_log_db_error($group, 'UPDATE', __FILE__);
|
||||
// TRANS: Server exception thrown when updating a group URI failed.
|
||||
throw new ServerException(_('Could not set group URI.'));
|
||||
}
|
||||
}
|
||||
|
||||
$result = $group->setAliases($aliases);
|
||||
|
||||
if (!$result) {
|
||||
// TRANS: Server exception thrown when creating group aliases failed.
|
||||
throw new ServerException(_('Could not create aliases.'));
|
||||
}
|
||||
|
||||
$member = new Group_member();
|
||||
|
||||
$member->group_id = $group->id;
|
||||
$member->profile_id = $userid;
|
||||
$member->is_admin = 1;
|
||||
$member->created = $group->created;
|
||||
|
||||
$result = $member->insert();
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($member, 'INSERT', __FILE__);
|
||||
// TRANS: Server exception thrown when setting group membership failed.
|
||||
throw new ServerException(_('Could not set group membership.'));
|
||||
}
|
||||
|
||||
if ($local) {
|
||||
$local_group = new Local_group();
|
||||
|
||||
$local_group->group_id = $group->id;
|
||||
$local_group->nickname = $nickname;
|
||||
$local_group->created = common_sql_now();
|
||||
|
||||
$result = $local_group->insert();
|
||||
|
||||
if (!$result) {
|
||||
common_log_db_error($local_group, 'INSERT', __FILE__);
|
||||
// TRANS: Server exception thrown when saving local group information failed.
|
||||
throw new ServerException(_('Could not save local group info.'));
|
||||
}
|
||||
}
|
||||
|
||||
$group->query('COMMIT');
|
||||
|
||||
Event::handle('EndGroupSave', array($group));
|
||||
}
|
||||
|
||||
$group->query('COMMIT');
|
||||
return $group;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user