[rt-devel] Getting Custom Fields for a User

Lee Wilson leefm40 at yahoo.co.uk
Mon Apr 16 15:29:17 EDT 2012


On 16/04/2012 15:25, Ruslan Zakirov wrote:
>
> If you have user object then you can just call my $cfs = $user->CustomFIelds;.
> You can take a look at CustomFIelds method in lib/RT/Record.pm.
>
> Even if you don't have user object then create one:
>
> my $cfs = RT::User->new( RT->SystemUser )->CustomFields;
>
> Use $session{CurrentUser} instead of SystemUser if it's web interface and
> you want to respect ACLs.


Hi Ruslan,

Thanks for that. Looking at the perldoc for User.pm doesn't give any 
mention of that but I guess it's inherited from Record.pm

Think I've sussed out the problem, I was trying to run this as a none 
privileged user but it didn't have access to SeeCustomFields based on 
the code in CustomFields->Next:

return $self->Next unless $CF->CurrentUserHasRight('SeeCustomField');

I tried granting the SeeCustomField and ModifyCustomField rights on the 
specific customer queue but that still didn't make the fields appear.

In the end I granted those two rights onto the global unprivileged group 
which has made the fields appear but it seems a bit too open to me.

Eventually I think applying those rights to the specific custom field 
has given what I needed.

Would this generally be the right way to do it?

Thanks again

Lee


More information about the rt-devel mailing list