[Rt-devel] Add GroupMembers as CC on create ( help required)
Roy Sowa
Roy.Sowa at rcmp-grc.gc.ca
Thu Dec 6 14:08:50 EST 2007
looking for some guidance.
I have tried numerous versions of scrips , approaches and examples that I have found thanks to this list,
but I just can't get things to work as I expect/want.
The below scrip ( found on the list...thank you ) , does work , but it requires that I have the hardcoded "Group_Here_Works" entry.
Usin different group names does produce those members as CC's.
What I really want to have happen is;
the requestor's group/s members be automatically figured out and those members be added as CC's to the ticket on creation.
but I can't seem to grasp how.
I am struggling to get my head around all this, so any assistance is very welcomed.
==============================
my $ticket = $self->TicketObj;
my $transaction = $self->TransactionObj;
my $derivedGroupName = 'GROUPNAME_HERE_WORKS';
# instantiate a group object
my $addGroupObj = RT::Group->new($RT::SystemUser);
$addGroupObj->LoadUserDefinedGroup($derivedGroupName);
return undef unless $addGroupObj;
my $addGroupMembersObj = $addGroupObj->UserMembersObj;
my $userObj;
# walk through members of group to add; if a given member is not already on the ticket, add to the CC list
while ($userObj = $addGroupMembersObj->Next) {
if (($ticket->IsRequestor($userObj->PrincipalId)) or ($ticket->IsCc($userObj->PrincipalId))) {
$RT::Logger->debug("On Create Add Group CC: '" . $userObj->Name . "' is already a ticket watcher; not adding Cc on ticket \#" . $ticket->id );
} else {
$RT::Logger->debug("On Create Add Group CC: Adding '" . $userObj->Name ."' to ticket \#" .$ticket->id);
my ($success, $msg)= $ticket->AddWatcher(
Type => "Cc",
PrincipalId => $userObj->Id);
if (! $success) {
$RT::Logger->info("On Create Add Group CC: couldn't add '" . $userObj->Name . "' to " . $ticket->id . "': got '" . $msg ."'");
}
}
}
return 1;
More information about the Rt-devel
mailing list