[Rt-devel] Re: [Rt-commit] r6534 - in rt/branches/3.7-EXPERIMENTAL: .

Jesse Vincent jesse at bestpractical.com
Sun Nov 26 18:02:41 EST 2006


This change to RT::CurrentUser is kind of scary to me. I recall there
being some good reasons why we _didn't_ want currentuser to be a user
object. What's your plan? What are you trying to do?

-j


On Sun, Nov 26, 2006 at 05:48:22PM -0500, ruz at bestpractical.com wrote:
> Author: ruz
> Date: Sun Nov 26 17:48:21 2006
> New Revision: 6534
> 
> Modified:
>    rt/branches/3.7-EXPERIMENTAL/   (props changed)
>    rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm
>    rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm
> 
> Log:
> 
> 
> Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm
> ==============================================================================
> --- rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm	(original)
> +++ rt/branches/3.7-EXPERIMENTAL/lib/RT/CurrentUser.pm	Sun Nov 26 17:48:21 2006
> @@ -74,7 +74,7 @@
>  use RT::User;
>  
>  use strict;
> -use base qw/RT::Record/;
> +use base qw/RT::User/;
>  
>  # {{{ sub _Init 
>  
> @@ -90,11 +90,8 @@
>  
>      if ( defined $User ) {
>  
> -        if (   UNIVERSAL::isa( $User, 'RT::User' )
> -            || UNIVERSAL::isa( $User, 'RT::CurrentUser' ) )
> -        {
> -            $self->Load( $User->id );
> -
> +        if ( UNIVERSAL::isa( $User, 'RT::User' ) ) {
> +            $self->LoadById( $User->id );
>          }
>          elsif ( ref $User ) {
>              $RT::Logger->crit(
> @@ -149,37 +146,6 @@
>  }
>  # }}}
>  
> -# {{{ sub PrincipalObj
> -
> -=head2 PrincipalObj
> -
> -Returns this user's principal object.  this is just a helper routine for
> -$self->UserObj->PrincipalObj
> -
> -=cut
> -
> -sub PrincipalObj { return $_[0]->UserObj->PrincipalObj }
> -
> -
> -# }}}
> -
> -
> -# {{{ sub PrincipalId 
> -
> -=head2 PrincipalId
> -
> -Returns this user's principal Id.  this is just a helper routine for
> -$self->UserObj->PrincipalId
> -
> -=cut
> -
> -sub PrincipalId {
> -    my $self = shift;
> -    return($self->UserObj->PrincipalId);
> -}
> -
> -# }}}
> -
>  # {{{ sub _Accessible 
>  
>  sub _CoreAccessible  {
> @@ -195,25 +161,6 @@
>  }
>  # }}}
>  
> -# {{{ sub LoadByEmail
> -
> -=head2 LoadByEmail
> -
> -Loads a User into this CurrentUser object.
> -Takes the email address of the user to load.
> -
> -=cut
> -
> -sub LoadByEmail  {
> -    my $self = shift;
> -    my $identifier = shift;
> -
> -    $identifier = RT::User::CanonicalizeEmailAddress( undef, $identifier );
> -
> -    return $self->LoadByCol( "EmailAddress", $identifier );
> -}
> -# }}}
> -
>  # {{{ sub LoadByGecos
>  
>  =head2 LoadByGecos
> @@ -244,89 +191,6 @@
>  }
>  # }}}
>  
> -# {{{ sub Load 
> -
> -=head2 Load
> -
> -Loads a User into this CurrentUser object.
> -Takes either an integer (users id column reference) or a Name
> -The latter is deprecated. Instead, you should use LoadByName.
> -Formerly, this routine also took email addresses. 
> -
> -=cut
> -
> -sub Load {
> -    my $self = shift;
> -    my $identifier = shift;
> -  
> -    #if it's an int, load by id. otherwise, load by name.
> -    if ( $identifier !~ /\D/ ) {
> -        return $self->SUPER::LoadById( $identifier );
> -    }
> -    elsif ( UNIVERSAL::isa( $identifier, 'RT::User' ) ) {
> -        # DWIM if they pass a user in
> -        return $self->SUPER::LoadById( $identifier->Id );
> -    } 
> -    else {
> -        # This is a bit dangerous, we might get false authen if somebody
> -        # uses ambigous userids or real names:
> -        return $self->LoadByCol( "Name", $identifier );
> -    }
> -}
> -
> -# }}}
> -
> -# {{{ sub IsPassword
> -
> -=head2 IsPassword
> -
> -Takes a password as a string.  Passes it off to IsPassword in this
> -user's UserObj.  If it is the user's password and the user isn't
> -disabled, returns 1.
> -
> -Otherwise, returns undef.
> -
> -=cut
> -
> -sub IsPassword { 
> -    my $self = shift;
> -    return $self->UserObj->IsPassword( shift );
> -}
> -
> -# }}}
> -
> -# {{{ sub Privileged
> -
> -=head2 Privileged
> -
> -Returns true if the current user can be granted rights and be
> -a member of groups.
> -
> -=cut
> -
> -sub Privileged {
> -    my $self = shift;
> -    return $self->UserObj->Privileged;
> -}
> -
> -# }}}
> -
> -
> -# {{{ sub HasRight
> -
> -=head2 HasRight
> -
> -calls $self->UserObj->HasRight with the arguments passed in
> -
> -=cut
> -
> -sub HasRight {
> -    my $self = shift;
> -    return ($self->UserObj->HasRight(@_));
> -}
> -
> -# }}}
> -
>  # {{{ Localization
>  
>  =head2 LanguageHandle
> 
> Modified: rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm
> ==============================================================================
> --- rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm	(original)
> +++ rt/branches/3.7-EXPERIMENTAL/lib/RT/User_Overlay.pm	Sun Nov 26 17:48:21 2006
> @@ -519,21 +519,25 @@
>  =head2 Load
>  
>  Load a user object from the database. Takes a single argument.
> -If the argument is numerical, load by the column 'id'. Otherwise, load by
> -the "Name" column which is the user's textual username.
> +If the argument is numerical, load by the column 'id'. If a user
> +object or its subclass passed then loads the same user by id.
> +Otherwise, load by the "Name" column which is the user's textual
> +username.
>  
>  =cut
>  
>  sub Load {
> -    my $self       = shift;
> +    my $self = shift;
>      my $identifier = shift || return undef;
>  
> -    #if it's an int, load by id. otherwise, load by name.
>      if ( $identifier !~ /\D/ ) {
> -        $self->SUPER::LoadById($identifier);
> +        return $self->SUPER::LoadById( $identifier );
> +    }
> +    elsif ( UNIVERSAL::isa( $identifier, 'RT::User' ) ) {
> +        return $self->SUPER::LoadById( $identifier->Id );
>      }
>      else {
> -        $self->LoadByCol( "Name", $identifier );
> +        return $self->LoadByCol( "Name", $identifier );
>      }
>  }
>  
> _______________________________________________
> Rt-commit mailing list
> Rt-commit at lists.bestpractical.com
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-commit
> 

-- 


More information about the Rt-devel mailing list