summaryrefslogtreecommitdiff
path: root/rt/lib/RT/Attributes_Overlay.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/Attributes_Overlay.pm')
-rw-r--r--rt/lib/RT/Attributes_Overlay.pm205
1 files changed, 0 insertions, 205 deletions
diff --git a/rt/lib/RT/Attributes_Overlay.pm b/rt/lib/RT/Attributes_Overlay.pm
deleted file mode 100644
index ebe8c4c..0000000
--- a/rt/lib/RT/Attributes_Overlay.pm
+++ /dev/null
@@ -1,205 +0,0 @@
-# BEGIN BPS TAGGED BLOCK {{{
-#
-# COPYRIGHT:
-#
-# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-# <jesse@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 }}}
-
-=head1 NAME
-
-RT::Attributes - collection of RT::Attribute objects
-
-=head1 SYNOPSIS
-
- use RT::Attributes;
- my $Attributes = new RT::Attributes($CurrentUser);
-
-=head1 DESCRIPTION
-
-
-=head1 METHODS
-
-=cut
-
-
-package RT::Attributes;
-
-use strict;
-no warnings qw(redefine);
-
-
-sub _DoSearch {
- my $self = shift;
- $self->SUPER::_DoSearch();
- $self->_BuildAccessTable();
-}
-
-
-sub _BuildAccessTable {
- my $self = shift;
- delete $self->{'attr'};
- while (my $attr = $self->Next) {
- push @{$self->{'attr'}->{$attr->Name}}, $attr;
- }
-}
-
-
-sub _AttrHash {
- my $self = shift;
- $self->_DoSearch if ($self->{'must_redo_search'});
- unless ($self->{'attr'}) {
- $self->{'attr'}->{'__none'} = RT::Attribute->new($self->CurrentUser);
- }
- return ($self->{'attr'});
-}
-
-=head2 Names
-
-Returns a list of the Names of all attributes for this object.
-
-=cut
-
-sub Names {
- my $self = shift;
- my @keys = keys %{$self->_AttrHash};
- return(@keys);
-
-
-}
-
-=head2 Named STRING
-
-Returns an array of all the RT::Attribute objects with the name STRING
-
-=cut
-
-sub Named {
- my $self = shift;
- my $name = shift;
- my @attributes;
- if ($self->_AttrHash) {
- @attributes = @{($self->_AttrHash->{$name}||[])};
- }
- return (@attributes);
-}
-
-=head2 WithId ID
-
-Returns the RT::Attribute objects with the id ID
-
-XXX TODO XXX THIS NEEDS A BETTER ACL CHECK
-
-=cut
-
-sub WithId {
- my $self = shift;
- my $id = shift;
-
- my $attr = RT::Attribute->new($self->CurrentUser);
- $attr->LoadByCols( id => $id );
- return($attr);
-}
-
-=head2 DeleteEntry { Name => Content => , id => }
-
-Deletes attributes with
- the matching name
- and the matching content or id
-
-If Content and id are both undefined, delete all attributes with
-the matching name.
-
-=cut
-
-
-sub DeleteEntry {
- my $self = shift;
- my %args = (
- Name => undef,
- Content => undef,
- id => undef,
- @_
- );
- my $found = 0;
- foreach my $attr ( $self->Named( $args{'Name'} ) ) {
- if ( ( !defined $args{'id'} and !defined $args{'Content'} )
- or ( defined $args{'id'} and $attr->id eq $args{'id'} )
- or ( defined $args{'Content'} and $attr->Content eq $args{'Content'} ) )
- {
- my ($id, $msg) = $attr->Delete;
- return ($id, $msg) unless $id;
- $found = 1;
- }
- }
- return (0, "No entry found") unless $found;
- $self->RedoSearch;
- # XXX: above string must work but because of bug in DBIx::SB it doesn't,
- # to reproduce delete string below and run t/api/attribute-tests.t
- $self->_DoSearch;
- return (1, $self->loc('Attribute Deleted'));
-}
-
-
-# {{{ LimitToObject
-
-=head2 LimitToObject $object
-
-Limit the Attributes to rights for the object $object. It needs to be an RT::Record class.
-
-=cut
-
-sub LimitToObject {
- 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');
- $self->Limit(FIELD => 'ObjectId', OPERATOR=> '=', VALUE => $obj->id, ENTRYAGGREGATOR => 'OR', QUOTEVALUE => 0);
-
-}
-
-# }}}
-
-1;