CodeSnippets

From Request Tracker Wiki
Revision as of 15:38, 13 January 2017 by Ahall (talk | contribs) (→‎Some code that is still here and has no its own place: Adjusted section title)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

Introduction

A Code snippet is a bit of Perl code that you can use in many places to customize RT. Scrips and templates both use Perl code for most of what they do, so I've put together some pages of Perl snippets. organized by type.

Miscellaneous Snippets

Groups and users

Create a user

my $user = RT::User->new($RT::SystemUser);
my ($id) = $user->Create(
    Name         => 'my_user_login',
    Password     => 'secret',
    RealName     => 'Jhon Smith',
    EmailAddress => 'jhon.smith@example.com',
    Privileged   => 0,
);

Load a user from the database

my $user = RT::User->new( $RT::SystemUser );
 
 $user->Load( 'my_user_login' );
 # or
 $user->Load( 'my_user_id' );
 # or
 $user->LoadByEmail( 'my_user_email_address' );
 
 die "couldn't load user" unless $user->id;
 
 

Load user defined(public) group

my $group = RT::Group->new( $RT::SystemUser );
$group->LoadUserDefinedGroup( 'my group name' );
die "couldn't load group" unless $group->id;

List all user members of the group

my $users = $group->UserMembersObj;
while ( my $user = $users->Next ) {
    print $user->Name, "\n";
}

Add a user to a group

# see earlier how to load a user and a group
 my ($status, $msg) = $group->AddMember( $user->id );
 die "problem $msg" unless $status;