X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=classes%2FUser_group.php;h=c86eadf8fa7fff1e21ca9cb2f496d4aa4ce9acb4;hb=2eadeca74515802dccc63d7ec84af1bc7d1338d9;hp=b92638f7aa4615668a2f368b359432c2d96b8893;hpb=76b0e6e6f4151235d5032d1aa90f0937b415bd87;p=quix0rs-gnu-social.git diff --git a/classes/User_group.php b/classes/User_group.php index b92638f7aa..c86eadf8fa 100644 --- a/classes/User_group.php +++ b/classes/User_group.php @@ -354,4 +354,66 @@ class User_group extends Memcached_DataObject return $xs->getString(); } + + static function register($fields) { + + // MAGICALLY put fields into current scope + + extract($fields); + + $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.'), + 500, + $this->format + ); + return; + } + $result = $group->setAliases($aliases); + + if (!$result) { + $this->serverError( + _('Could not create aliases.'), + 500, + $this->format + ); + return; + } + + $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__); + $this->serverError( + _('Could not set group membership.'), + 500, + $this->format + ); + return; + } + + $group->query('COMMIT'); + return $group; + } }