%# BEGIN BPS TAGGED BLOCK {{{
-%#
+%#
%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@bestpractical.com>
-%#
+%#
+%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC
+%# <sales@bestpractical.com>
+%#
%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
+%#
+%#
%# LICENSE:
-%#
+%#
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
-%#
+%#
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%# General Public License for more details.
-%#
+%#
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%# 02110-1301 or visit their web page on the internet at
%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
+%#
+%#
%# CONTRIBUTION SUBMISSION POLICY:
-%#
+%#
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
-%#
+%#
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
-%#
+%#
%# END BPS TAGGED BLOCK }}}
%# REST/1.0/Forms/group/default
%#
my @comments;
my ($c, $o, $k, $e) = ("", [], {}, 0);
my %data = %$changes;
-my $group = new RT::Group $session{CurrentUser};
-my @fields = qw(Name Description);
+my $group = RT::Group->new($session{CurrentUser});
+
+my @fields = qw(Name Description Disabled);
+if ( $fields && %$fields ) {
+ @fields = grep { exists $fields->{ lc $_ } } @fields;
+}
+
my %fields = map { lc $_ => $_ } @fields;
if ($id ne 'new') {
my @data;
push @data, [ id => "group/".$group->Id ];
- push @data, [ Name => $group->Name ];
- push @data, [ Description => $group->Description ];
-
+ foreach my $key (@fields) {
+ push @data, [ $key => $group->$key ];
+ }
# Members
- my $gms = [];
- my $GroupMembers = $group->MembersObj();
- while ( my $mo = $GroupMembers->Next() ) {
- if ( $mo->MemberObj->IsGroup ) {
- my $us = $mo->MemberObj->Object->UserMembersObj();
- my @users;
- while ( my $u = $us->Next() ) {
- push @users, $u->RealName . ' <' . $u->EmailAddress . '>';
+ unless ( $fields && !exists $fields->{members} ) {
+ my $gms = [];
+ my $GroupMembers = $group->MembersObj();
+ while ( my $mo = $GroupMembers->Next() ) {
+ if ( $mo->MemberObj->IsGroup ) {
+ my $us = $mo->MemberObj->Object->UserMembersObj();
+ my @users;
+ while ( my $u = $us->Next() ) {
+ push @users, $u->RealName . ' <' . $u->EmailAddress . '>';
+ }
+ push @$gms,
+ 'GROUP ['
+ . $mo->MemberObj->Object->Name . ']' . ' ('
+ . join( ';', @users ) . ')';
+ } elsif ( $mo->MemberObj->IsUser ) {
+ push @$gms,
+ $mo->MemberObj->Object->RealName . ' <'
+ . $mo->MemberObj->Object->EmailAddress . '>';
}
- push @$gms,
- 'GROUP ['
- . $mo->MemberObj->Object->Name . ']' . ' ('
- . join( ';', @users ) . ')';
- } elsif ( $mo->MemberObj->IsUser ) {
- push @$gms,
- $mo->MemberObj->Object->RealName . ' <'
- . $mo->MemberObj->Object->EmailAddress . '>';
}
+ push @data, [ Members => $gms ];
}
- push @data, [ Members => $gms ];
# Custom fields
my $CustomFields = $group->CustomFields;
}
else {
my ($get, $set, $key, $val, $n, $s);
-
+ my $updated;
foreach $key (keys %data) {
$val = $data{$key};
$key = lc $key;
$k = $changes;
}
}
+ else {
+ $updated ||= 1;
+ }
}
- push(@comments, "# Group $id updated.") unless $n == 0;
+ push(@comments, "# Group $id updated.") if $updated;
}
DONE: