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
|
EndGroupEditFormData: Ending the group edit form entries
|
||||||
- $form: The form widget being shown
|
- $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->mainpage = $mainpage;
|
||||||
$group->created = common_sql_now();
|
$group->created = common_sql_now();
|
||||||
|
|
||||||
$result = $group->insert();
|
if (Event::handle('StartGroupSave', array(&$group))) {
|
||||||
|
|
||||||
if (!$result) {
|
$result = $group->insert();
|
||||||
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) {
|
if (!$result) {
|
||||||
common_log_db_error($local_group, 'INSERT', __FILE__);
|
common_log_db_error($group, 'INSERT', __FILE__);
|
||||||
// TRANS: Server exception thrown when saving local group information failed.
|
// TRANS: Server exception thrown when creating a group failed.
|
||||||
throw new ServerException(_('Could not save local group info.'));
|
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;
|
return $group;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user