summaryrefslogtreecommitdiff
path: root/rt/lib/RT/User_Overlay.pm
diff options
context:
space:
mode:
Diffstat (limited to 'rt/lib/RT/User_Overlay.pm')
-rw-r--r--rt/lib/RT/User_Overlay.pm169
1 files changed, 18 insertions, 151 deletions
diff --git a/rt/lib/RT/User_Overlay.pm b/rt/lib/RT/User_Overlay.pm
index bafcf0957..27ddd4cd0 100644
--- a/rt/lib/RT/User_Overlay.pm
+++ b/rt/lib/RT/User_Overlay.pm
@@ -2,7 +2,7 @@
#
# COPYRIGHT:
#
-# This software is Copyright (c) 1996-2007 Best Practical Solutions, LLC
+# This software is Copyright (c) 1996-2005 Best Practical Solutions, LLC
# <jesse@bestpractical.com>
#
# (Except where explicitly superseded by other copyright notices)
@@ -22,9 +22,7 @@
#
# 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/copyleft/gpl.html.
+# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
#
#
# CONTRIBUTION SUBMISSION POLICY:
@@ -45,6 +43,7 @@
# those contributions and any derivatives thereof.
#
# END BPS TAGGED BLOCK }}}
+
=head1 NAME
RT::User - RT User object
@@ -81,7 +80,7 @@ use Digest::MD5;
use RT::Principals;
use RT::ACE;
use RT::Interface::Email;
-use Encode;
+
# {{{ sub _Accessible
@@ -266,7 +265,7 @@ sub Create {
#If the create failed.
unless ($id) {
$RT::Handle->Rollback();
- $RT::Logger->error("Could not create a new user - " .join('-', %args));
+ $RT::Logger->error("Could not create a new user - " .join('-'. %args));
return ( 0, $self->loc('Could not create user') );
}
@@ -1064,7 +1063,7 @@ sub _GeneratePassword {
my $password = shift;
my $md5 = Digest::MD5->new();
- $md5->add(encode_utf8($password));
+ $md5->add($password);
return ($md5->hexdigest);
}
@@ -1081,7 +1080,7 @@ sub _GeneratePasswordBase64 {
my $password = shift;
my $md5 = Digest::MD5->new();
- $md5->add(encode_utf8($password));
+ $md5->add($password);
return ($md5->b64digest);
}
@@ -1098,11 +1097,18 @@ Returns true if the user has a valid password, otherwise returns false.
sub HasPassword {
my $self = shift;
- my $pwd = $self->__Value('Password');
- return undef if !defined $pwd
- || $pwd eq ''
- || $pwd eq '*NO-PASSWORD*';
+ if ( ( $self->__Value('Password') eq '' )
+ || ( $self->__Value('Password') eq undef ) )
+ {
+
+ return (undef);
+ }
+ if ( $self->__Value('Password') eq '*NO-PASSWORD*' ) {
+ return undef;
+ }
+
return 1;
+
}
@@ -1623,147 +1629,8 @@ sub CurrentUserHasRight {
return ( $self->CurrentUser->HasRight(Right => $right, Object => $RT::System) );
}
-sub _PrefName {
- my $name = shift;
- if (ref $name) {
- $name = ref ($name).'-'.$name->Id;
- }
-
- return 'Pref-'.$name;
-}
-
-# {{{ sub Preferences
-
-=head2 Preferences NAME/OBJ DEFAULT
-
- Obtain user preferences associated with given object or name.
- Returns DEFAULT if no preferences found. If DEFAULT is a hashref,
- override the entries with user preferences.
-
-=cut
-
-sub Preferences {
- my $self = shift;
- my $name = _PrefName (shift);
- my $default = shift;
-
- my $attr = RT::Attribute->new ($self->CurrentUser);
- $attr->LoadByNameAndObject (Object => $self, Name => $name);
-
- my $content = $attr->Id ? $attr->Content : undef;
- if (ref ($content) eq 'HASH') {
- if (ref ($default) eq 'HASH') {
- for (keys %$default) {
- exists $content->{$_} or $content->{$_} = $default->{$_};
- }
- }
- elsif (defined $default) {
- $RT::Logger->error("Preferences $name for user".$self->Id." is hash but default is not");
- }
- return $content;
- }
- else {
- return defined $content ? $content : $default;
- }
-}
-
# }}}
-# {{{ sub SetPreferences
-
-=head2 SetPreferences NAME/OBJ VALUE
-
- Set user preferences associated with given object or name.
-
-=cut
-
-sub SetPreferences {
- my $self = shift;
- my $name = _PrefName (shift);
- my $value = shift;
- my $attr = RT::Attribute->new ($self->CurrentUser);
- $attr->LoadByNameAndObject (Object => $self, Name => $name);
- if ($attr->Id) {
- return $attr->SetContent ($value);
- }
- else {
- return $self->AddAttribute ( Name => $name, Content => $value );
- }
-}
-
-# }}}
-
-
-=head2 WatchedQueues ROLE_LIST
-
-Returns a RT::Queues object containing every queue watched by the user.
-
-Takes a list of roles which is some subset of ('Cc', 'AdminCc'). Defaults to:
-
-$user->WatchedQueues('Cc', 'AdminCc');
-
-=cut
-
-sub WatchedQueues {
-
- my $self = shift;
- my @roles = @_ || ('Cc', 'AdminCc');
-
- $RT::Logger->debug('WatcheQueues got user ' . $self->Name);
-
- my $watched_queues = RT::Queues->new($self->CurrentUser);
-
- my $group_alias = $watched_queues->Join(
- ALIAS1 => 'main',
- FIELD1 => 'id',
- TABLE2 => 'Groups',
- FIELD2 => 'Instance',
- );
-
- $watched_queues->Limit(
- ALIAS => $group_alias,
- FIELD => 'Domain',
- VALUE => 'RT::Queue-Role',
- ENTRYAGGREGATOR => 'AND',
- );
- if (grep { $_ eq 'Cc' } @roles) {
- $watched_queues->Limit(
- SUBCLAUSE => 'LimitToWatchers',
- ALIAS => $group_alias,
- FIELD => 'Type',
- VALUE => 'Cc',
- ENTRYAGGREGATOR => 'OR',
- );
- }
- if (grep { $_ eq 'AdminCc' } @roles) {
- $watched_queues->Limit(
- SUBCLAUSE => 'LimitToWatchers',
- ALIAS => $group_alias,
- FIELD => 'Type',
- VALUE => 'AdminCc',
- ENTRYAGGREGATOR => 'OR',
- );
- }
-
- my $queues_alias = $watched_queues->Join(
- ALIAS1 => $group_alias,
- FIELD1 => 'id',
- TABLE2 => 'CachedGroupMembers',
- FIELD2 => 'GroupId',
- );
- $watched_queues->Limit(
- ALIAS => $queues_alias,
- FIELD => 'MemberId',
- VALUE => $self->PrincipalId,
- );
-
- $RT::Logger->debug("WatchedQueues got " . $watched_queues->Count . " queues");
-
- return $watched_queues;
-
-}
-
-
# {{{ sub _CleanupInvalidDelegations
=head2 _CleanupInvalidDelegations { InsideTransaction => undef }