[rt-users] Easily assigning "requestor" a username rather than an email

Todd Chapman rt at chaka.net
Tue Jan 11 14:03:28 EST 2005


This is not the cleanest way to do it but it is the easiest.

Create /opt/rt3/local/lib/RT/User_Local.pm with this content:

no warnings qw(redefine);

sub LoadByEmail {
    my $self    = shift;
    my $address = shift;

    # Never load an empty address as an email address.
    unless ($address) {
        return (undef);
    }

    if ($address !~ /\@/) {
        $self->Load($address) && return $self;
    }
    $address = $self->CanonicalizeEmailAddress($address);

    #$RT::Logger->debug("Trying to load an email address: $address\n");
    return $self->LoadByCol( "EmailAddress", $address );
}

You may need to restart Apache.

-Todd

On Tue, Jan 11, 2005 at 12:51:41PM -0600, Jonathan Reeder wrote:
> Cool, this sounds very promising.  I'm a bit unindoctrinated though, so
> you'll have to excuse me.  Is this going to allow me to put a username in
> the "Requestor" field, then when I save the ticket, it will automatically
> assign that user's email address to the "Requestor" field?
> 
> Thanks a bunch.
> 
> -----Original Message-----
> From: Todd Chapman [mailto:rt at chaka.net]
> Sent: Tuesday, January 11, 2005 11:40 AM
> To: Jonathan Reeder
> Cc: rt-users at lists.bestpractical.com
> Subject: Re: [rt-users] Easily assigning "requestor" a username rather
> than an email
> 
> 
> I think there are some places in RT where LoadByEmail is called and
> it should probably just be Load(). User_Overlay::Load() should
> be changed to:
> 
> sub Load {
>     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);
>     }
>     elsif ($identifier =~ /\@/) {
>         $self->LoadByEmail( $identifier );
>     }
>     else {
>         $self->LoadByCol( "Name", $identifier );
>     }
> }
> 
> On Tue, Jan 11, 2005 at 11:21:49AM -0600, Jonathan Reeder wrote:
> > Since this question requires a little bit of background, I'm going to
> state
> > the question itself as simply as possible before I get into the
> back-story.
> >
> > Q: How can I easily make the "requestor" of a ticket a user other than
> > myself, without necessarily knowing that user's email address?  Secondary
> to
> > that, is it possible to search through tickets by a requestor's username
> > rather than by his email address?
> >
> > If this makes sense as is, read no further.  If not, you can see why I'm
> > asking below:
> >
> > The way we have our RT set up is such that our clients are set up as users
> > in the system.  They can each login, search tickets, create tickets, etc.
> > However, they also call us quite frequently.  When they call us, an
> internal
> > support staff member will create a new ticket, and change the requestor
> from
> > himself to the client's email address as listed in their "Edit User" form.
> > Unfortunately, its obviously a lot easier to ask a caller "What is your
> > company name?" (which we use as their username) than it is to say "What
> > email address to you have on file with us?".  So it would be awesome if
> the
> > person fielding the call could just pop in a username rather than having
> to
> > find the email address associated with that username.
> >
> > Also, I'd like to be able to search through tickets by providing a
> > requestor's username rather than his email address.  Right now, the search
> > criteria only has "(Requestor's|CC's|AdminCC's) email address
> > (contains|doesn't contain) __________".  I'm wondering if any of you guys
> > have come up with an easier way to search through tickets by a requesting
> > user rather than by a requesting user's email address.
> >
> > Thanks a bunch for taking the time to help out.
> >
> > Jonathan Reeder
> 
> > _______________________________________________
> > http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
> >
> > Be sure to check out the RT wiki at http://wiki.bestpractical.com
> 



More information about the rt-users mailing list