You need a user object loaded that represents actor - a user who changing things. GetCurrentUser function is for command line tools that can be executed by many users on your system, like bin/rt tool. If you don't need mulit-user script then you can use $RT::SystemUser. Each object you construct using ->new call needs the current user provided as the only argument of the method.
In the script below you messing two concepts. You're trying to add user X as member into a group acting under user X's credentials. If user X has no rights to modify membership of the group X then he obviously gets "permissions denied" error. On Thu, May 21, 2009 at 11:11 PM, Johnathan Bell <[email protected]> wrote: > Thanks... But another snippet on that page is now giving me trouble... > > --code-- > my $currentUser = GetCurrentUser(); > $currentUser->Load("tester97"); > my ($status, $msg) = $groupObj->AddMember($currentUser->id()); > die $msg unless $status; > exit(0); > --/code-- > > That code dies stating "Permission Denied"... do I need to authenticate > as root first? The perldoc on CurrentUser_Overlay.pm is a bit to obscure > for me and an example would really help. > > Thanks again, > Johnathan > > Ruslan Zakirov wrote: >> There is example in: >> http://wiki.bestpractical.com/view/CodeSnippets >> >> On Thu, May 21, 2009 at 10:11 PM, Ruslan Zakirov >> <[email protected]> wrote: >> >>> As group may have another group as meber as well as user, so records >>> in GroupMembers and CachedGroupMembers objects reference Principals. >>> >>> If you are looking for users only that are members of a group then >>> it's easier to do the following: >>> >>> my $group = ... >>> $group->Load... >>> >>> my $users = $group->UserMembersObj; >>> while ( my $user = $users->Next ) { >>> ... >>> } >>> >>> On Thu, May 21, 2009 at 9:46 PM, Johnathan Bell >>> <[email protected]> wrote: >>> >>>> Please let me know if this is supposed to go to RT-Users or RT-Devel. >>>> >>>> I'm trying to write a utility to interface with Request Tracker, and >>>> part of what that utility has to do is get the members of some user >>>> created groups. Just sub in actual groups for what you want in there, >>>> CurrentUser works and is already initialized by the time my program gets >>>> here. Mostly borrowing this code from the old rtimportldap script, I >>>> came up with this: >>>> >>>> --code-- >>>> # RT Group >>>> $groupObj = new RT::Group($CurrentUser); >>>> $groupObj->LoadUserDefinedGroup($groupName); >>>> $groupObj->Id() || die "Group ".$groupName." not found in >>>> RequestTracker"; >>>> >>>> $groupMembersObj = $groupObj->MembersObj(); >>>> print $groupObj->Id().":".$groupObj.":".$groupMembersObj.":" >>>> .$groupMembersObj->Next()->UserObj()."\n"; ## This creates an error >>>> while ( $groupMember = $groupMembersObj->Next() ) >>>> { >>>> $groupMemberUser = $groupMember->UserObj(); >>>> print $groupMemberUser->Name()."\n"; ## This does too >>>> #$memberName = $groupMemberUser->Name(); >>>> #push(@rtMembers, $memberName); >>>> } >>>> --/code-- >>>> >>>> What it seems is that GroupObj->MembersObj()->Next()->UserObj() causes >>>> the problem, as UserObj() returns, not a UserObject, but a string >>>> stating "No object mapping for field" Attempting to use the Name() >>>> function of course doesn't work because "No object..."->Name() doesn't >>>> make sense... What's going on? >>>> >>>> Thanks, >>>> Johnathan >>>> >>>> -- >>>> Johnathan Bell >>>> Internet System Administrator, Baker College >>>> >>>> _______________________________________________ >>>> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users >>>> >>>> Community help: http://wiki.bestpractical.com >>>> Commercial support: [email protected] >>>> >>>> >>>> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. >>>> Buy a copy at http://rtbook.bestpractical.com >>>> >>>> >>> >>> -- >>> Best regards, Ruslan. >>> >>> >> >> >> >> > > -- > Johnathan Bell > Internet System Administrator, Baker College > > > > > -- > Johnathan Bell > 810.766.4097 > > Office Hours: 7A-4P, M-F > Internet System Administrator, Baker College > > _______________________________________________ > http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users > > Community help: http://wiki.bestpractical.com > Commercial support: [email protected] > > > Discover RT's hidden secrets with RT Essentials from O'Reilly Media. > Buy a copy at http://rtbook.bestpractical.com > -- Best regards, Ruslan. _______________________________________________ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: [email protected] Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
