CodeSnippets: Difference between revisions

From Request Tracker Wiki
Jump to navigation Jump to search
m (2 revisions imported)
 
 
(One intermediate revision by the same user not shown)
Line 1: Line 1:
= Introduction =
= Introduction =


'''Code snippet''' is a perl code that you can use in many places to customize RT.
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.


Here was one page with code snippets, but now there are many splitted by place where you usually use them.
* [[CustomConditionSnippets]] - snippets that you'd usually use in [[ScripCondition]]s. As conditions shouldn't change anything about tickets or users, you'll find only code to retrieve information here. This is similar to [[TemplateSnippets]].
* [[CustomActionSnippets]] - [[ScripAction]]s change tickets, so here is where you'll find how to modify RT objects.
* [[TemplateSnippets]] - by default in RT, [[Template]]s are used only in notification actions. In such templates, you can insert information about tickets, users, queues, transactions, and so on into outgoing emails. No changes are allowed in templates; it's all about getting data. [[CustomConditionSnippets]] may be interesting as well.


* [[CustomConditionSnippets]] - snippets that you're usually use in [[ScripCondition]]s. As conditions shouldn't change anything so you wouldn't find there code to change propetiess of objects, but only code to retrieve information. This is similar to [[TemplateSnippets]] and you can reuse information.
= Miscellaneous Snippets =
* [[CustomActionSnippets]] - [[ScripAction]]s change tickets and there you'll find info about changes.
* [[TemplateSnippets]] - by default in RT [[Template]]s are used only in notification actions and in such templates you can use code to put info about ticket into outgoing email. No changes are allowed in templates, so it's all about getting data and [[CustomConditionSnippets]] may be interesting as well.
 
= Some code that is still here and has no its own place =


== Groups and users ==
== Groups and users ==
Line 25: Line 23:
   
   


Load a user from DB
Load a user from the database


  <nowiki>my $user = RT::User-&gt;new( $RT::SystemUser );
  <nowiki>my $user = RT::User-&gt;new( $RT::SystemUser );

Latest revision as of 15:38, 13 January 2017

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;