[Rt-commit] r18370 - rt/3.8/trunk/lib/RT
ruz at bestpractical.com
ruz at bestpractical.com
Fri Feb 13 12:32:14 EST 2009
Author: ruz
Date: Fri Feb 13 12:32:14 2009
New Revision: 18370
Modified:
rt/3.8/trunk/lib/RT/ACE_Overlay.pm
rt/3.8/trunk/lib/RT/User_Overlay.pm
Log:
* everything is ready turn on canonicalization that can
change right names
* now, single form is stored in DB and is equal to plural,
for example SeeCustomField and SeeCustomFields behave
in the same way
Modified: rt/3.8/trunk/lib/RT/ACE_Overlay.pm
==============================================================================
--- rt/3.8/trunk/lib/RT/ACE_Overlay.pm (original)
+++ rt/3.8/trunk/lib/RT/ACE_Overlay.pm Fri Feb 13 12:32:14 2009
@@ -540,6 +540,20 @@
# {{{ sub CanonicalizeRightName
+sub RightName {
+ my $self = shift;
+ my $val = $self->_Value('RightName');
+ return $val unless $val;
+
+ my $available = $self->Object->AvailableRights;
+ foreach my $right ( keys %$available ) {
+ return $right if $val eq $self->CanonicalizeRightName($right);
+ }
+
+ $RT::Logger->crit("Invalid right. Couldn't canonicalize right '$val'");
+ return $val;
+}
+
=head2 CanonicalizeRightName <RIGHT>
Takes a queue or system right name in any case and returns it in
@@ -547,10 +561,19 @@
=cut
+our %CANONICRIGHTNAMES = ();
+{ my $keys_cached = 0;
sub CanonicalizeRightName {
my $self = shift;
- return $LOWERCASERIGHTNAMES{ lc shift };
-}
+ unless ( $keys_cached == keys %LOWERCASERIGHTNAMES ) {
+ foreach my $right ( values %LOWERCASERIGHTNAMES ) {
+ $right =~ s/s$//i;
+ $CANONICRIGHTNAMES{ lc $right } = $right;
+ $CANONICRIGHTNAMES{ lc $right .'s' } = $right;
+ }
+ }
+ return $CANONICRIGHTNAMES{ lc shift };
+} }
# }}}
Modified: rt/3.8/trunk/lib/RT/User_Overlay.pm
==============================================================================
--- rt/3.8/trunk/lib/RT/User_Overlay.pm (original)
+++ rt/3.8/trunk/lib/RT/User_Overlay.pm Fri Feb 13 12:32:14 2009
@@ -1494,7 +1494,7 @@
IncludeGroupMembership => 1);
$deleg_acl->Limit( FIELD => 'RightName',
OPERATOR => '=',
- VALUE => 'DelegateRights' );
+ VALUE => 'DelegateRight' );
my @allowed_deleg_objects = map {$_->Object()}
@{$deleg_acl->ItemsArrayRef()};
More information about the Rt-commit
mailing list