X-Git-Url: http://git.freeside.biz/gitweb/?p=freeside.git;a=blobdiff_plain;f=rt%2Fhtml%2FAdmin%2FCustomFields%2FGroupRights.html;h=86dd0d2ddc4d9851dd5a09c562b201f64e3ebdda;hp=380fee479427ca537fcfb376875e89cb7fc9057b;hb=e70abd21bab68b23488f7ef1ee2e693a3b365691;hpb=d4d0590bef31071e8809ec046717444b95b3f30a diff --git a/rt/html/Admin/CustomFields/GroupRights.html b/rt/html/Admin/CustomFields/GroupRights.html index 380fee479..86dd0d2dd 100644 --- a/rt/html/Admin/CustomFields/GroupRights.html +++ b/rt/html/Admin/CustomFields/GroupRights.html @@ -2,7 +2,7 @@ %# %# COPYRIGHT: %# -%# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC +%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC %# %# %# (Except where explicitly superseded by other copyright notices) @@ -22,7 +22,9 @@ %# %# 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., 675 Mass Ave, Cambridge, MA 02139, USA. +%# 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: @@ -51,46 +53,46 @@ &> <& /Elements/ListActions, actions => \@results &> -
- + +

<&|/l&>System groups

- +
% $Groups = RT::Groups->new($session{'CurrentUser'}); % $Groups->LimitToSystemInternalGroups(); % while (my $Group = $Groups->Next()) { - - + - + - + + % } -
+
<% loc($Group->Type) %> - + <& /Admin/Elements/SelectRights, PrincipalId => $Group->PrincipalId, Object => $CustomFieldObj &> -
+

<&|/l&>User defined groups

- +
% $Groups = RT::Groups->new($session{'CurrentUser'}); % $Groups->LimitToUserDefinedGroups(); % while (my $Group = $Groups->Next()) { - - + - + - + + % } -
+
<% $Group->Name %> - + <& /Admin/Elements/SelectRights, PrincipalId => $Group->PrincipalId, Object => $CustomFieldObj &> -
+ <& /Elements/Submit, Caption => loc("Be sure to save your changes"), Reset => 1 &> -
+ <%INIT> @@ -107,60 +109,7 @@ my $CustomFieldObj = RT::CustomField->new($session{'CurrentUser'}); $CustomFieldObj->Load($id) || $m->comp("/Elements/Error", Why => loc("Couldn't load CustomField [_1]",$id)); my $Groups; - - my ( $ACL, @results ); - - foreach my $arg (keys %ARGS) { - if ($arg =~ /GrantRight-(\d+)-(.*?)-(\d+)$/) { - my $principal_id = $1; - my $object_type = $2; - my $object_id = $3; - my $rights = $ARGS{$arg}; - - my $principal = RT::Principal->new($session{'CurrentUser'}); - $principal->Load($principal_id); - my $obj; - - if ($object_type eq 'RT::CustomField') { - $obj = RT::CustomField->new($session{'CurrentUser'}); - $obj->Load($object_id); - } else { - push (@results, loc("System Error"). - loc("Rights could not be granted for [_1]", $object_type)); - next; - } - - my @rights = ref($ARGS{$arg}) eq 'ARRAY' ? @{$ARGS{$arg}} : ($ARGS{$arg}); - foreach my $right (@rights) { - next unless ($right); - my ($val, $msg) = $principal->GrantRight(Object => $obj, Right => $right); - push (@results, $msg); - } - } - elsif ($arg =~ /RevokeRight-(\d+)-(.*?)-(\d+)-(.*?)$/) { - my $principal_id = $1; - my $object_type = $2; - my $object_id = $3; - my $right = $4; - - my $principal = RT::Principal->new($session{'CurrentUser'}); - $principal->Load($principal_id); - next unless ($right); - my $obj; - - if ($object_type eq 'RT::CustomField') { - $obj = RT::CustomField->new($session{'CurrentUser'}); - $obj->Load($object_id); - } else { - push (@results, loc("System Error"). - loc("Rights could not be revoked for [_1]", $object_type)); - next; - } - my ($val, $msg) = $principal->RevokeRight(Object => $obj, Right => $right); - push (@results, $msg); - } -} - +my @results = ProcessACLChanges(\%ARGS); my $title = loc('Modify group rights for custom field [_1]', $CustomFieldObj->Name);