X-Git-Url: http://git.freeside.biz/gitweb/?a=blobdiff_plain;ds=sidebyside;f=rt%2Fshare%2Fhtml%2FREST%2F1.0%2FForms%2Fgroup%2Fdefault;h=96d913f76aeb26de03cbb63b1dd0103d34738f2d;hb=187086c479a09629b7d180eec513fb7657f4e291;hp=b286c85fa28d2f910242a14ee2904addbc097304;hpb=b4b0c7e72d7eaee2fbfc7022022c9698323203dd;p=freeside.git diff --git a/rt/share/html/REST/1.0/Forms/group/default b/rt/share/html/REST/1.0/Forms/group/default index b286c85fa..96d913f76 100644 --- a/rt/share/html/REST/1.0/Forms/group/default +++ b/rt/share/html/REST/1.0/Forms/group/default @@ -1,40 +1,40 @@ %# BEGIN BPS TAGGED BLOCK {{{ -%# +%# %# COPYRIGHT: -%# -%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC -%# -%# +%# +%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC +%# +%# %# (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 @@ -43,7 +43,7 @@ %# 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 %# @@ -57,8 +57,13 @@ $changes => {} 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') { @@ -109,31 +114,33 @@ if (%data == 0) { 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; @@ -156,7 +163,7 @@ if (%data == 0) { } else { my ($get, $set, $key, $val, $n, $s); - + my $updated; foreach $key (keys %data) { $val = $data{$key}; $key = lc $key; @@ -192,9 +199,12 @@ else { $k = $changes; } } + else { + $updated ||= 1; + } } - push(@comments, "# Group $id updated.") unless $n == 0; + push(@comments, "# Group $id updated.") if $updated; } DONE: