[Rt-commit] rt branch, 3.9-trunk, updated. rt-3.8.8-923-g227892a

Kevin Falcone falcone at bestpractical.com
Mon Sep 27 18:58:00 EDT 2010


The branch, 3.9-trunk has been updated
       via  227892a322f62a6af71a7f5bc55b83279c5295f1 (commit)
      from  4446bd52ebdadf3b0aa71c83977a1ecd528343bb (commit)

Summary of changes:
 share/html/Admin/Elements/SelectRights |  121 ++++++++++++++++++++++++++++++++
 1 files changed, 121 insertions(+), 0 deletions(-)
 create mode 100755 share/html/Admin/Elements/SelectRights

- Log -----------------------------------------------------------------
commit 227892a322f62a6af71a7f5bc55b83279c5295f1
Author: Kevin Falcone <falcone at bestpractical.com>
Date:   Mon Sep 27 15:43:33 2010 -0700

    Bring back SelectRights for RTFM compatibility
    
    this was lost in 8e85e99d08dff694ee166b539d6f3dcb29e1033e

diff --git a/share/html/Admin/Elements/SelectRights b/share/html/Admin/Elements/SelectRights
new file mode 100755
index 0000000..c5fe015
--- /dev/null
+++ b/share/html/Admin/Elements/SelectRights
@@ -0,0 +1,121 @@
+%# BEGIN BPS TAGGED BLOCK {{{
+%# 
+%# COPYRIGHT:
+%# 
+%# This software is Copyright (c) 1996-2010 Best Practical Solutions, LLC
+%#                                          <jesse at 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
+%# you are the copyright holder for those contributions and you grant
+%# Best Practical Solutions,  LLC a nonexclusive, worldwide, irrevocable,
+%# 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 }}}
+<input type="hidden" class="hidden" name="CheckACL"  value="<%$ACLDesc%>" />
+     <table border="0">
+<tr>
+<td valign="top" width="180" align="left">
+<%PERL>
+my %current_rights;
+my @pairs;
+while ( my $ace = $ACLObj->Next ) {
+    my $right = $ace->RightName;
+    $current_rights{ $right } = 1;
+    push @pairs, [$right, loc($right)];
+}
+ at pairs = sort { $a->[1] cmp $b->[1] } @pairs;
+</%PERL>
+<h3><&|/l&>Current rights</&></h3>
+% unless ( @pairs ) {
+<i><&|/l&>No rights granted.</&></i> <br />
+% } else {
+<i>(<&|/l&>Check box to revoke right</&>)</i><br />
+% foreach my $pair ( @pairs ) {
+<input type="checkbox" class="checkbox" value="<% $pair->[0] %>" name="RevokeRight-<% $ACLDesc %>" />&nbsp;<% $pair->[1] %><br />
+% } }
+</td>
+<td valign="top">
+<h3><&|/l&>New rights</&></h3> 
+<select size="5" multiple="multiple" name="GrantRight-<%$ACLDesc%>">
+% foreach my $pair (sort { $a->[1] cmp $b->[1] } map [$_, loc($_)], grep !$current_rights{$_}, keys %Rights) {
+      <option value="<% $pair->[0] %>" title="<% loc($Rights{$pair->[0]}) %>"><% $pair->[1] %></option>
+% }
+<option value="" selected="selected"><&|/l&>(no value)</&></option>
+</select>
+</td>
+</tr>
+</table>
+<%INIT>
+    my ($ACLDesc, $AppliesTo, %Rights);
+
+    # if the principal id points to a user, we really want to point
+    # to their ACL equivalence group. The machinations we're going through
+    # lead me to start to suspect that we really want users and groups
+    # to just be the same table. or _maybe_ that we want an object db.
+    my $princ = RT::Principal->new($RT::SystemUser);
+    $princ->Load($PrincipalId);
+    if ($princ->PrincipalType eq 'User') {
+    my $group = RT::Group->new($RT::SystemUser);
+        $group->LoadACLEquivalenceGroup($princ);
+        $PrincipalId = $group->PrincipalId;
+    }
+
+
+    my $ACLObj = RT::ACL->new($session{'CurrentUser'});
+    my $ACE = RT::ACE->new($session{'CurrentUser'});
+
+
+    $ACLObj->LimitToObject( $Object);
+    $ACLObj->LimitToPrincipal( Id => $PrincipalId);
+    $ACLObj->OrderBy(FIELD=>'RightName'); 
+
+    if (ref($Object) && UNIVERSAL::can($Object, 'AvailableRights')) { 
+        %Rights = %{$Object->AvailableRights};
+    } 
+
+        else {
+                %Rights = ( loc('System Error') => loc("No rights found") );
+        }
+        
+    $ACLDesc = "$PrincipalId-".ref($Object)."-".$Object->Id;
+</%INIT>
+    
+<%ARGS>
+$PrincipalType => undef
+$PrincipalId => undef
+$Object =>undef
+</%ARGS>

-----------------------------------------------------------------------


More information about the Rt-commit mailing list