# -*- Mode: perl; indent-tabs-mode: nil -*- # # The contents of this file are subject to the Mozilla Public # License Version 1.1 (the "License"); you may not use this file # except in compliance with the License. You may obtain a copy of # the License at http://www.mozilla.org/MPL/ # # Software distributed under the License is distributed on an "AS # IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or # implied. See the License for the specific language governing # rights and limitations under the License. # # The Original Code is the Bugzilla Bug Tracking System. # # Contributor(s): # Carole Pryfer <carole.pryfer@dgfip.finances.gouv.fr> package Bugzilla::WebService::Group; use strict; use base qw(Bugzilla::WebService); use Bugzilla::Constants; use Bugzilla::Error; sub create { my ($self, $params) = @_; Bugzilla->login(LOGIN_REQUIRED); Bugzilla->user->in_group('creategroups') || ThrowUserError("auth_failure", { group => "creategroups", action => "add", object => "group"}); # Create group my $group = Bugzilla::Group->create({ name => $params->{name}, description => $params->{description}, userregexp => $params->{user_regexp}, isactive => $params->{is_active}, isbuggroup => 1, icon_url => $params->{icon_url} }); return { id => $self->type('int', $group->id) }; } 1; __END__ =head1 NAME Bugzilla::Webservice::Group - The API for creating, changing, and getting information about Groups. =head1 DESCRIPTION This part of the Bugzilla API allows you to create Groups and get information about them. =head1 METHODS See L<Bugzilla::WebService> for a description of how parameters are passed, and what B<STABLE>, B<UNSTABLE>, and B<EXPERIMENTAL> mean. =head1 Group Creation =head2 create B<UNSTABLE> =over =item B<Description> This allows you to create a new group in Bugzilla. =item B<Params> Some params must be set, or an error will be thrown. These params are marked B<Required>. =over =item C<name> B<Required> C<string> A short name for this group. Must be unique. This is not usually displayed in the user interface, except in a few places. =item C<description> B<Required> C<string> A human-readable name for this group. Should be relatively short. This is what will normally appear in the UI as the name of the group. =item C<user_regexp> C<string> A regular expression. Any user whose Bugzilla username matches this regular expression will automatically be granted membership in this group. =item C<is_active> C<boolean> C<True> if new group can be used for bugs, C<False> if this is a group that will only contain users and no bugs will be restricted to it. =item C<icon_url> C<string> A URL pointing to a small icon used to identify the group. This icon will show up next to users' names in various parts of Bugzilla if they are in this group. =back =item B<Returns> A hash with one element, C<id>. This is the id of the newly-created group. =item B<Errors> =over =item 800 (Empty Group Name) You must specify a value for the C<name> field. =item 801 (Group Exists) There is already another group with the same C<name>. =item 802 (Group Missing Description) You must specify a value for the C<description> field. =item 803 (Group Regexp Invalid) You specified an invalid regular expression in the C<user_regexp> field. =back =back =cut