X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fshare%2Fhtml%2FREST%2F1.0%2FForms%2Fgroup%2Fdefault;h=96d913f76aeb26de03cbb63b1dd0103d34738f2d;hp=7686f2176c244636c6d3d6e61a5263b383aeaa19;hb=187086c479a09629b7d180eec513fb7657f4e291;hpb=43a06151e47d2c59b833cbd8c26d97865ee850b6 diff --git a/rt/share/html/REST/1.0/Forms/group/default b/rt/share/html/REST/1.0/Forms/group/default index 7686f2176..96d913f76 100644 --- a/rt/share/html/REST/1.0/Forms/group/default +++ b/rt/share/html/REST/1.0/Forms/group/default @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2012 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2018 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -58,7 +58,12 @@ my @comments; my ($c, $o, $k, $e) = ("", [], {}, 0); my %data = %$changes; my $group = RT::Group->new($session{CurrentUser}); -my @fields = qw(Name Description); + +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: