[rt-users] Perl help

Ken Crocker kfcrocker at lbl.gov
Tue May 26 19:59:15 EDT 2009


Ruslan,

    My apologies on not CC'ing the list. I was trying to avoid letting 
the world see how ignorant I am on this stuff. Anyway, what I don't 
understand is how to get from an email address (which I DO have) to the 
ID or Name of the person that correlates to said Email address. Since I 
understand so little of how some of these commands work (for example, I 
may see the code "$self->TransactionObj->OldValue != 
RT::Nobody()->id();" but I have no idea why it won't work like this 
"$self->TransactionObj->OldValue != RT::Nobody()->name->id();"). I don't 
see or understand the mechanisms that make the "->" work. My problem is 
that I am completely sight-oriented. It's the old saying, "I can hear 
you talking, but I can't see a word you say". That's me. I've coded in 
over 20 languages in my 40 years in this business, but no perl. Perl is 
EXTREMELY harder to understand than COBOL, SQL, even Assembler. I have 
no framework of reference points to "See" what the explanations of the 
code means. Hence, my mind-boggling frustration (both experienced and 
caused) with trying to understand your explanations. Soooo, when you say 
"To call a method you need an object, so you can not 
do...->Name->EmailAddress cuz ->Name usually returns a string." I have a 
difficult time understanding the relationsship between Object and 
command so that I would know that 
"$self->TransactionObj->EmailAddress->User->Id" won't work. Does any of 
that diatribe make any sense?
    What I have is an Email address that someone helped me get from the 
Header of the email.It looks like this:
'KFCrocker at lbl.gov'

    So, how do I (or what do I code) get a users name of Id from that?

    Thank you soooo much for your patience.


Kenn
LBNL
On 5/26/2009 4:12 PM, Ruslan Zakirov wrote:
> Once again, ALWAYS cc mailing list! Comments below.
>
> On Wed, May 27, 2009 at 2:36 AM, Ken Crocker <kfcrocker at lbl.gov> wrote:
>   
>> Ruslan,
>>
>>
>>     What? I don't understand your answer. Perhaps I didn't explain myself
>> very well. Let me try again. I understand the principals, I just don't know
>> what code or command or whatever (ie. LOOKs something like
>> self->TransactionObj->Name(?)->EmailAddress(?) or however it would look) to
>>     
>
> To call a method you need an object, so you can not do
> ...->Name->EmailAddress cuz ->Name usually returns a string.
>
>   
>> get the Id or Name of the user when all I have is the email address.  I'm
>>     
>
> If you have an id, name or email then you can get other details about
> record by constructing an object and loading it, for example:
>
> my $user_obj = RT::User->new( $RT::SysteUser );
> $user_obj->Load($id); # or $name or use another ->Load* method
> unless ( $user_obj->id ) {
>    ... error handling ...
> }
>
> $user_obj->EmailAddress;
> $user_obj->Name;
> $user_obj->id;
> ...
>
>
>   
>> adding ticket watchers. I don't want them to be added by email address, but
>> by ID or name. I don't know how to code that command. I don't even know how
>> to say it correctly, let alone write it, code it, whatever. I've seen code
>> that looks like ($self->TransactionObj->CreatorObj->name; or
>> $self->TransactionObj->CreatorObj->Id;). Does that make any sense?
>>     
>
> If you're in an user defined scrip action then you can do above things.
>
>
>   
>> Kenn
>> LBNL
>>
>> On 5/26/2009 2:27 PM, Ruslan Zakirov wrote:
>>
>> I think you miss concepts:
>> * each user is principal
>> * each group is principal
>> * but three above are records in different tables
>> * id of a user is equal to id of its principal record
>> * the same applies to groups
>> * in DB couldn't be a group with id equal to id of a user
>>
>> * every watcher is a user
>> * id, name and email address are unique fields
>> * because of this uniquenes AddWatcher methods can take email address
>> as an argument
>>
>> On Wed, May 27, 2009 at 1:14 AM, Ken Crocker <kfcrocker at lbl.gov> wrote:
>>
>>
>> Greetings,
>>
>>    I need to know how to take an email address (directly from an email
>> header) and get the actual UserId/PrincipalId from RT. I have the
>> address split out and now I just need an ID. I'm assuming that the
>> PrincipalId is the same thing as the Name field from the USERS Table. In
>> other words, I do NOT want to add an entire email address as a Ticket
>> watcher, I want the Name field from the USers Table (ie. instead of
>> KFCrocker at lbl.gov I want KFCrocker or whatever name correlates to
>> KFCrocker at lbl.gov). Thank you in advance.
>>
>> Kenn
>> LBNL
>> _______________________________________________
>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
>>
>> Community help: http://wiki.bestpractical.com
>> Commercial support: sales at bestpractical.com
>>
>>
>> Discover RT's hidden secrets with RT Essentials from O'Reilly Media.
>> Buy a copy at http://rtbook.bestpractical.com
>>
>>
>>
>>
>>     
>
>
>
>   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20090526/2e5eccd0/attachment.htm>


More information about the rt-users mailing list