rt 4.2.13 ticket#13852
[freeside.git] / rt / lib / RT / ACL.pm
index 83423ad..fb3f401 100755 (executable)
@@ -2,7 +2,7 @@
 #
 # COPYRIGHT:
 #
-# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2016 Best Practical Solutions, LLC
 #                                          <sales@bestpractical.com>
 #
 # (Except where explicitly superseded by other copyright notices)
@@ -65,10 +65,10 @@ my $ACL = RT::ACL->new($CurrentUser);
 
 
 package RT::ACL;
-use RT::ACE;
-
 use base 'RT::SearchBuilder';
 
+use RT::ACE;
+
 sub Table { 'ACL'}
 
 use strict;
@@ -122,40 +122,6 @@ sub LimitToObject {
 
 
 
-=head2 LimitNotObject $object
-
-Limit the ACL to rights NOT on the object $object.  $object needs to be
-an RT::Record class.
-
-=cut
-
-sub LimitNotObject {
-    my $self = shift;
-    my $obj  = shift;
-    unless ( defined($obj)
-        && ref($obj)
-        && UNIVERSAL::can( $obj, 'id' )
-        && $obj->id )
-    {
-        return undef;
-    }
-    $self->Limit( FIELD => 'ObjectType',
-                 OPERATOR => '!=',
-                 VALUE => ref($obj),
-                 ENTRYAGGREGATOR => 'OR',
-                 SUBCLAUSE => $obj->id
-               );
-    $self->Limit( FIELD => 'ObjectId',
-                 OPERATOR => '!=',
-                 VALUE => $obj->id,
-                 ENTRYAGGREGATOR => 'OR',
-                 QUOTEVALUE => 0,
-                 SUBCLAUSE => $obj->id
-               );
-}
-
-
-
 =head2 LimitToPrincipal { Type => undef, Id => undef, IncludeGroupMembership => undef }
 
 Limit the ACL to the principal with PrincipalId Id and PrincipalType Type
@@ -239,86 +205,9 @@ sub AddRecord {
     return $self->SUPER::AddRecord( $record );
 }
 
+# The singular of ACL is ACE.
+sub _SingularClass { "RT::ACE" }
 
-
-
-#wrap around _DoSearch  so that we can build the hash of returned
-#values 
-sub _DoSearch {
-    my $self = shift;
-   # $RT::Logger->debug("Now in ".$self."->_DoSearch");
-    my $return = $self->SUPER::_DoSearch(@_);
-  #  $RT::Logger->debug("In $self ->_DoSearch. return from SUPER::_DoSearch was $return");
-    if ( $self->{'must_redo_search'} ) {
-        $RT::Logger->crit(
-"_DoSearch is not so successful as it still needs redo search, won't call _BuildHash"
-        );
-    }
-    else {
-        $self->_BuildHash();
-    }
-    return ($return);
-}
-
-
-#Build a hash of this ACL's entries.
-sub _BuildHash {
-    my $self = shift;
-
-    while (my $entry = $self->Next) {
-        my $hashkey = join '-', map $entry->__Value( $_ ),
-            qw(ObjectType ObjectId RightName PrincipalId PrincipalType);
-
-        $self->{'as_hash'}->{"$hashkey"} =1;
-
-    }
-}
-
-
-
-=head2 HasEntry
-
-=cut
-
-sub HasEntry {
-
-    my $self = shift;
-    my %args = ( RightScope => undef,
-                 RightAppliesTo => undef,
-                 RightName => undef,
-                 PrincipalId => undef,
-                 PrincipalType => undef,
-                 @_ );
-
-    #if we haven't done the search yet, do it now.
-    $self->_DoSearch();
-
-    if ($self->{'as_hash'}->{ $args{'RightScope'} . "-" .
-                             $args{'RightAppliesTo'} . "-" . 
-                             $args{'RightName'} . "-" .
-                             $args{'PrincipalId'} . "-" .
-                             $args{'PrincipalType'}
-                            } == 1) {
-       return(1);
-    }
-    else {
-       return(undef);
-    }
-}
-
-# }}}
-
-
-=head2 NewItem
-
-Returns an empty new RT::ACE item
-
-=cut
-
-sub NewItem {
-    my $self = shift;
-    return(RT::ACE->new($self->CurrentUser));
-}
 RT::Base->_ImportOverlays();
 
 1;