Re: [rt-users] How to set Global rights in Perl? (How do I get global into an object)
On Dec 30, 2009, at 3:25 PM, Kevin Falcone wrote: On Wed, Dec 30, 2009 at 10:47:08AM -0500, Johnathan Bell wrote: I've written a script that will process an ACL-like file and set a number of permissions on our RT server, but currently I have this only working for specific queues. How can I make this work for global rights? Currently, I have it working as such: --snip-- # $groupName and $queueName are specified in the function parameters. Assume they're correct. # $status and $msg are also defined globals. my $groupObj = new RT::Group($currentUser); my $queueObj = new RT::Queue($currentUser); # Load our RT queue ($status, $msg) = $queueObj-Load($queueName); # Do one of these based on the type of group: ($status, $msg) = $groupObj-LoadUserDefinedGroup($groupName); ($status, $msg) = $groupObj-LoadQueueRoleGroup(Queue = $queueObj-id, Type = $groupName); ($status, $msg) = $groupObj-LoadSystemInternalGroup($groupName); ($status, $msg) = $groupObj-PrincipalObj-GrantRight( Right = $rightName, Object = $queueObj); --snip-- I know that GrantRight takes a string RightName and an object to apply the right to and for. Can I use the same $groupObj-PrinciplaObj-GrantRight(RightName, $object) to specify global rights? How do I get global into an object? You probably want the $RT::System object -kevin ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com Kevin--That's exactly what I needed. Thanks. -- Johnathan Bell Internet System Administrator, Baker College Office Hours: 7A-4P, M-F ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com 2010 RT Training Sessions! San Francisco, CA, USA - Feb 22 23 Dublin, Ireland - Mar 15 16 Boston, MA, USA - April 5 6 Washington DC, USA - Oct 25 26 Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] How to set Global rights in Perl? (How do I get global into an object)
I've written a script that will process an ACL-like file and set a number of permissions on our RT server, but currently I have this only working for specific queues. How can I make this work for global rights? Currently, I have it working as such: --snip-- # $groupName and $queueName are specified in the function parameters. Assume they're correct. # $status and $msg are also defined globals. my $groupObj = new RT::Group($currentUser); my $queueObj = new RT::Queue($currentUser); # Load our RT queue ($status, $msg) = $queueObj-Load($queueName); # Do one of these based on the type of group: ($status, $msg) = $groupObj-LoadUserDefinedGroup($groupName); ($status, $msg) = $groupObj-LoadQueueRoleGroup(Queue = $queueObj-id, Type = $groupName); ($status, $msg) = $groupObj-LoadSystemInternalGroup($groupName); ($status, $msg) = $groupObj-PrincipalObj-GrantRight( Right = $rightName, Object = $queueObj); --snip-- I know that GrantRight takes a string RightName and an object to apply the right to and for. Can I use the same $groupObj-PrinciplaObj-GrantRight(RightName, $object) to specify global rights? How do I get global into an object? -- 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] Getting a list of privileged users...
I'm running a script that grabs a list of users from our LDAP directory and synchronizes group memberships and permissions. Currently, I use code similar to this, to get a list of members: --snip-- my $currentUser = GetCurrentUser(); my $workingUser = new RT::User($currentUser); my $systemUser = RT::User-new($RT::SystemUser); # RT Group $groupObj = new RT::Group($currentUser); $groupObj-LoadUserDefinedGroup($groupName); if ( not $groupObj-Id() ) { print Group .$groupName. not found in RequestTracker\n; next; } # Get our members into an array for easy work later. $groupMembersObj = $groupObj-MembersObj(); my @rtMembers; while ( $groupMember = $groupMembersObj-Next() ) { $groupMemberUser = $groupMember-UserObj(); $workingUser-Load($groupMember-MemberId()); $workingUser-Name(); push(@rtMembers, $workingUser-Name()); } --snip-- Basically, I load a group by name, and then loop through the array and grab each user into an array. Is there a way I can do this for privileged user names? I just want to get them into an array to work with them later. Thanks, Johnathan -- Johnathan Bell Internet System Administrator, Baker College Office Phone: 810-766-4097 Office Hours: 7A-4P, M-F ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] One user, multiple email addresses
Here's the situation; in our organization, one staff member can have several email aliases--these make the email address prettier and easier to say/remember. However, this creates a problem with some of our users, in that when they reply to tickets from the wrong email address, RT hasn't a clue as to who is posting, or what to do with it... Is there a way we can associate more than one email address with the same user? 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] Viewing user profiles without modification rights?
I figured it out. It may not be the cleanest, but it works... I have an overlaid version of Ticket/Elements/ShowRequestor, below are my modificaitons (in the order that they are in the file): Change this: next if $requestor-Privileged; To this: #next if $requestor-Privileged; Change this: title_href = $has_right_adminusers? RT-Config-Get('WebPath')./ Admin/Users/Modify.html?id=.$requestor-id: undef, To this: title_href = RT-Config-Get('WebPath')./Admin/Users/Modify.html? id=.$requestor-id, Add this: |/lUser Profile/:br/ % my $requestorP = RT::User-new($RT::SystemUser); % $requestorP-Load($requestor-id); % my @items = ( %# Change etc to whatever makes sense for your org. % [etc, $requestorP-Organization], % [etc, $requestorP-WorkPhone], % [etc, $requestorP-City], % [etc, $requestorP-Address2] ); ul % foreach my $item ( @items ) { % if ( ${$item}[1] ne ) { li% ${$item}[0] %: % ${$item}[1] %/li % } % } /ul Wherever you want in the profile (I do just before |/lGroups this user belongs to/) Thanks, Johnathan On Aug 6, 2009, at 2:01 PM, Jerrad Pierce wrote: On Mon, Jul 27, 2009 at 08:57, Johnathan Belljohnathan.b...@baker.edu wrote: Actually, no, the modify user page produces an error... the page actually doesn't say anything, (except for the page footer text of Time to display: x.xxx and RT 3.8.4 Copyright 1996-2009 Best Practical blah blah blah... the long itself says nothing either. Apparently you also need ShowConfigTab -- Cambridge Energy Alliance: Save money. Save the planet. -- Johnathan Bell Internet System Administrator, Baker College Office Hours: 7A - 4P Eastern, M-F ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] Adding arbitrary CC email addresses?
On Jul 31, 2009, at 3:57 PM, Kevin Falcone wrote: On Fri, Jul 31, 2009 at 03:18:10PM -0400, Johnathan Bell wrote: RT creates a User account behind your back when you do that. They're an unprivileged user without a password, but RT needs the User account to track things internally. That makes sense Are you using RT::Authen::ExternalAuth or just normal RT auth? If the former, go look at the AutoCreateNonExternalUsers config setting (and your logs) Yes. Set that to 1 and it works Just to be sure, these people who are auto created can't log in to RT? How are they keyed, by email address? 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] Virus Scanning of ticket attachments?
Where would I put the hook when people are uploading files directly to the web form? I can use spamassassain or clam for email-based attachments, will RT hook all attachments through this same place? Thanks, Johnathan On Jul 28, 2009, at 4:01 PM, Jerrad Pierce wrote: There are hooks for processing incoming messages see RT/Interface/Email/Filter/SpamAssassin.pm -- Cambridge Energy Alliance: Save money. Save the planet. -- 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] Adding arbitrary CC email addresses?
I think I don't completely understand something about how RT works. How can I add a CC to a ticket that's just the raw email address, ie. the user doesn't have an account on our server? Any time I try, I receive the error message Could not find or create that user. I don't really want to litter our system with a bunch of randomly created users - I just want to be able to send correspondance to users without them actually having an account. Is that even possible? If it's not, then where am I overthinking this? What would be the normal way of doing things? 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] Virus Scanning of ticket attachments?
Is there some Request Tracker extension/plugin that I can use to automatically scan file attachments to tickets? I didn't see anything on the mailing list archive, or the wiki. 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] Viewing user profiles without modification rights?
I thought there was some way for ticket responders to view the information about the user who requested the ticket, specifically, the user's profile. However, I can't see that anywhere. I know that I can turn on the AdminUsers right, but I don't really want to give out the ability to modify a user's profile, just view it. Is this possible? What do I need to do? 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] How ACL/E info needed and question about accessing a queue in Perl API?
Thanks again, that worked! You've been indispensable with these questions! - Johnathan On Jun 16, 2009, at 11:25 AM, Ruslan Zakirov wrote: On Tue, Jun 16, 2009 at 7:14 PM, Johnathan Belljohnathan.b...@baker.edu wrote: I'm trying to modify some ACL's from a script. In particular, the user- created group access rights for queues. Looking at the database, and docs, it seems that ACE's only reference PrincipalID's. Example of adding ACL you can find in lib/RT/Handle.pm, there is big funtions that turns etc/initialdata files into records in the DB. Also, search for GrantRight method that is more suitable. My first question is, is what I just said true? Second, does the Id() function of many (all?) objects return the same ID that needs to go into the ACE in the ACL? Third... How do I load an existing queue in the Perl API? For instance, to load a Group, I can: --snip-- my $groupObj = new RT::Group($currentUser); $groupObj-LoadUserDefinedGroup($groupName); --/snip-- and then reference the $groupObj for it's name, id, members, and so on... How can I do this for a queue? Pretty similar using -Load method: my $queue_obj = RT::Queue-new( $current_user ); $queue_obj-Load( $name || $qid ); Is there something similar for queues, or do I need to attack this from a different angle? The docs for queue and queues don't indicate this is so, so I'm guessing that I need to go some other route. How do I go about getting a queue into an RT::Queue variable? 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: sa...@bestpractical.com 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 ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] Scripted modifications to RT's Database or LDAP Group Synchronization?
Thanks, that works. On May 16, 2009, at 1:31 PM, Kevin Falcone wrote: On May 16, 2009, at 8:11 AM, Johnathan Bell wrote: Ah, I was afraid that would be the answer. I suppose using the API is more future-ready anyway. Thanks for the clear and concise answer. It looks like the Perl API is documented in the RT::OnlineDocs extension, is this the best way to access it? perldoc /opt/rt3/lib/RT/*.pm is my preferred method I also couldn't find any documentation for the REST API on the wiki, where would I find docs for this? http://wiki.bestpractical.com/view/REST /opt/rt3/bin/rt help -kevin ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com -- Johnathan Bell Internet System Administrator, Baker College Office Phone: 810-766-4097 Office Hours: 7A - 4P Eastern, M-F ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] How ACL/E info needed and question about accessing a queue in Perl API?
I'm trying to modify some ACL's from a script. In particular, the user- created group access rights for queues. Looking at the database, and docs, it seems that ACE's only reference PrincipalID's. My first question is, is what I just said true? Second, does the Id() function of many (all?) objects return the same ID that needs to go into the ACE in the ACL? Third... How do I load an existing queue in the Perl API? For instance, to load a Group, I can: --snip-- my $groupObj = new RT::Group($currentUser); $groupObj-LoadUserDefinedGroup($groupName); --/snip-- and then reference the $groupObj for it's name, id, members, and so on... How can I do this for a queue? Is there something similar for queues, or do I need to attack this from a different angle? The docs for queue and queues don't indicate this is so, so I'm guessing that I need to go some other route. How do I go about getting a queue into an RT::Queue variable? 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
[rt-users] No object mapping for field when referencing the UserObject of a MembersObject...
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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] No object mapping for field when referencing the UserObject of a MembersObject...
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 ruslan.zaki...@gmail.com 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 johnathan.b...@baker.edu 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: sa...@bestpractical.com 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com
Re: [rt-users] Scripted modifications to RT's Database or LDAP Group Synchronization?
Kevin Falcone wrote: On May 15, 2009, at 2:56 PM, Johnathan Bell wrote: Not sure if this should go into RT-Users or RT-Devel, so I thought I'd start here first. Please let me know if this should go to the other list. I'm trying to find or create some way for LDAP group memberships to appear in Request Tracker. Digging through the wiki and the gossamer-threads site, the only thing I can find that looks like it will do what I want is the rtimportldap.pl script, and it's woefully out of date by all appearances. Furthermore, this was written more with Active Directory in mind. We are using Samba and a homegrown LDAP solution. You're probably better off extending or working from http://search.cpan.org/~falcone/RT-Extension-LDAPImport-0.04/ which is decidedly more recent, but doesn't support LDAP groups because the client who sponsored it didn't want them. To that end, I'm trying to write a utility in Python to sync various LDAP groups with their respective groups on RT. I know that RT is written in perl, but I am much more familiar with Python and was hoping I can continue using it. I have a utility that mostly works, but I've hit a snag. I need to know how RT defines a user as Privileged in the database. It appears that there's a special group that there has to be an entry in GroupMembers for membership in the unnamed group of type Privileged. Modifying this entry (and making sure that users aren't part of the Unprivileged group) seems to give them everything that makes a Privileged user special, except that they don't show up in the Privileged Users list in Configuration - Users... Are there some database entries that I missed? I can't seem to see anything obvious. You really want to use one of the APIs, either the perl or REST one, rather than trying to munge the DB directly. -kevin ___ http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users Community help: http://wiki.bestpractical.com Commercial support: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com Ah, I was afraid that would be the answer. I suppose using the API is more future-ready anyway. Thanks for the clear and concise answer. It looks like the Perl API is documented in the RT::OnlineDocs extension, is this the best way to access it? I also couldn't find any documentation for the REST API on the wiki, where would I find docs for this? Thanks. -- 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: sa...@bestpractical.com Discover RT's hidden secrets with RT Essentials from O'Reilly Media. Buy a copy at http://rtbook.bestpractical.com