[rt-users] RTx::EmailCompletion adding name/other fields to pop down display
Giuseppe Sollazzo
gsollazz at sgul.ac.uk
Wed Mar 2 12:00:22 EST 2011
Hi Kevin, hi all.
After a couple of tries I've realised that despite maybe not being the
most elegant way of doing it, this can be done by modifying
/opt/rt3/local/plugins/RTx-EmailCompletion/lib/RTx/EmailCompletion/Ldap.pm.
However I seem to have a "strange" issue.
One step at a time. Where it does
my @emails = map { $_->get_attribute( $RT::EmailCompletionLdapAttrShow
) } $mesg->entries;
which of course gives for granted $RT::EmailCompletionLdapAttrShow to be
constituted of one element only,
replace with something like
my @emails = ();
foreach $entry ($mesg->entries) {
my $outstring = '';
foreach $attribute ($RT::EmailCompletionLdapAttrShow) {
$outstring=$outstring . $entry->get_attribute($attribute);
}
@emails{$_} = $outstring;
}
which basically creates the same output, but after concatenating the
result of all the attributes. So, for example, rather than having a map
constituted by only e-mail addresses, it will be e-mail addresses + name.
Now, this should work but I have a preliminary problem.
You will remember that the search and show variables are configured in
RT_SiteConfig.pm. In my case:
Set($EmailCompletionLdapAttrSearch, [qw/mail cn/]);
Set($EmailCompletionLdapAttrShow, [qw/mail cn/]);
I've verified that albeit the search being executed over "mail" and
"cn", the "show" is ignored. As a debug, I've added file logging to
/opt/rt3/local/plugins/RTx-EmailCompletion/lib/RTx/EmailCompletion.pm.
To my understanding, this is the primary "hook" in RT for
EmailCompletion, and it's the one that calls Ldap.pm->search_ldap.
Guess what? If I put a debug print (Dumper) in EmailCompletion.pm to
show the content of the two variables, I get:
This is the dump of EmailCompletionLdapAttrShow = 'cn';
This is the dump of EmailCompletionLdapAttrSearch = [
'mail',
'cn'
];
Do you know why does it happen? I'm assuming I've overlooked
something... but can't tell what.
Thanks,
Giuseppe
PS: Of course, I've tried different variable names and numbers, and it's
always the very first in EmailCompletionLdapAttrShow that gets picked,
which rules out a default value (that would be 'mail', anyway).
On 25/02/11 16:45, Kevin Falcone wrote:
> On Fri, Feb 25, 2011 at 04:37:32PM +0000, Giuseppe Sollazzo wrote:
>> On 25/02/11 15:28, Kevin Falcone wrote:
>>> It shouldn't actually require any JS hacking (or didn't when I last
>>> overrode this extension to do it).
>>>
>> Hi Kevin,
>> thanks - I'll give it a look.
>>
>>> You have to hack search in the .pm to return extra data about the user
>>> and the EmailCompletion mason template to print it out.
>>>
>>> Be aware that RT considers some data to be sensitive (such as phone
>>> numbers) so it'll refuse to show it unless you mark it as accessible.
>> Uhm... how do you mean "mark"?
> Check the methods in User/User_Overlay named *Accessible to get an
> idea, there should be docs there and in DBIx::SearchBuilder about what
> is going on. You'll need a LocalAccessible to declare some fields
> 'non admin'.
>
>>> In 4.0, this becomes 'write a custom ShowUser option' which isn't
>>> as flexible as I'd like it to be, but is a step forward.
>> I'll check it out - however we'll stay for 3.8 for a while I guess,
>> but I'll start getting documentation about how to migrate.
--
____________________________________
Giuseppe Sollazzo
Senior Systems Analyst
Computing Services
Information Services
St. George's, University Of London
Cranmer Terrace
London SW17 0RE
Email: gsollazz at sgul.ac.uk
Direct Dial: +44 20 8725 5160
Fax: +44 20 8725 3583
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.bestpractical.com/pipermail/rt-users/attachments/20110302/76675c18/attachment.htm>
More information about the rt-users
mailing list