Change Management Multiple Owners

Hello,

I am trying to implement CM solution using Request Tracker. I am using
version 4.0.4. Is there any way I can add multiple owners to approve tickets
instead of just one?

I know there is an “AdminCC group” option for version 4.0.5 or later. This
is not an option for us at this time. Is there any way to do this without
updating RT?

All the best,

Aaron

View this message in context: http://requesttracker.8502.n7.nabble.com/Change-Management-Multiple-Owners-tp57759.html

I am trying to implement CM solution using Request Tracker. I am
using version 4.0.4. Is there any way I can add multiple owners to
approve tickets instead of just one?

I know there is an “AdminCC group” option for version 4.0.5 or
later.

RT does not allow multiple owners, and never will. However, AdminCcs are
in no way new in 4.0.5 (where did you find that misinformation?).
If you grant the AdminCc role appropriate rights, they work just fine
for letting any one of multiple users approve the ticket.

This is not an option for us at this time. Is there any way to do
this without updating RT?

Upgrade. There are multiple disclosed security vulnerabilities against
4.0.4, including SQL injection, arbitrary information disclosure, and
cross-site request forgery. Upgrades within a stable series are
designed to be as painless as possible.

  • Alex

Sorry to bother you again.

Keep all replies on-list. I do not have time to reply to every email,
and replying to me directly means that (a) others do not have the
opportunity to respond, and (b) denies answers to current and future
readers of the list.

If you need commercial support, which does get you a direct, reliable
line to the BPS engineers for complete answers, I can put you in touch
with our sales side.

I have tried using the code because it seems like it is what i’m
looking for, however, the tickets do not come up as "pending approval"
anymore, they are coming up as “new”.

“Pending Approval” is not a status; “new” is. You’ll need to be more
specific.

This is what I am using:
===Create-Ticket: approval
{ # Find out who the administrators of the group called “HR”

of which the creator of this ticket is a member

my $name = "DL_IT_Request_Tracker_Admins";

my $groups = RT::Groups->new(RT->SystemUser);
$groups->LimitToUserDefinedGroups();
$groups->Limit(FIELD => "Name", OPERATOR => "=", VALUE => "$name");
$groups->WithMember($TransactionObj->CreatorObj->Id);

my $groupid = $groups->First->Id;

This finds you a group named “DL_IT_Request_Tracker_Admins” which the
triggering user is a member of. I’m skeptical that the latter half of
the phrase is what you want; I expect you want:

my $group = RT::Group->new(RT->SystemUser);
$group->LoadUserDefinedGroup( "DL_IT_Request_Tracker_Admins" );
my $adminccs = RT::Users->new(RT->SystemUser);
$adminccs->WhoHaveRight(
    Right => "AdminGroup",
    Object =>$groups->First,
    IncludeSystemRights => undef,
    IncludeSuperusers => 0,
    IncludeSubgroupMembers => 0,
);

This finds people who have the ability to add and remove users from the
aforementioned group. I see no reason that this is what you want.

 my @admins;
 while (my $admin = $adminccs->Next) {
     push (@admins, $admin->EmailAddress);
 }

This is unnecessary; see below.

}
Queue: ___Approvals
Type: approval
AdminCc: {join ("\nAdminCc: ",@admins) }

Use:

AdminCc: { $group->MemberEmailAddressesAsString }

Depended-On-By: TOP
Refers-To: TOP
Subject: Approval for ticket: {$Tickets{“TOP”}->Id} - {$Tickets{“TOP”}->Subject}
Due: {time + 86400}
Content-Type: text/plain
Content: Your approval is requested for the ticket {$Tickets{“TOP”}->Id}: {$Tickets{“TOP”}->Subject}
Blah
Blah
ENDOFCONTENT
===Create-Ticket: two
Subject: Manager approval
Type: approval
Depended-On-By: TOP
Refers-To: {$Tickets{“create-approval”}->Id}
Queue: ___Approvals
Content-Type: text/plain
Content:
Your approval is required for this ticket, too.
ENDOFCONTENT

This second approval has no owner or admincc.

  • Alex

Keep all replies on-list. I do not have time to reply to every email,
and replying to me directly means that (a) others do not have the
opportunity to respond, and (b) denies answers to current and future
readers of the list.

Having the mailing list software consistently inject a “Reply-To” header
into all emails it sends out (which it definitely doesn’t do) would
probably help a lot here. Just saying.

Use:

AdminCc: { $group->MemberEmailAddressesAsString }

Wouldn’t it be better to use the group id as AdminCc?
Group Member changes would immediately affect also the approvals and you
can avoid loading the group within the approval create template.

Chris

Hi Alex,

I do apologize for replying to you directly.

Thank you for your feedback. Greatly appreciated.

I have a simple template (one owner) and a complex template (Group AdminCc).

When I have the simple template implemented and I reveive an approval
ticket. Under status I see (/Pending Approval/). Which will in turn allow me
to approve a ticket.

When I implement the complex template and a new approval ticket arrives,
Under status I see “new”. I am not able to Approve the ticket.

The only difference between the two Templates is the Perl Code Snippet.

===Create-Ticket: approval
{
my $group = RT::Groups->new(RT->SystemUser);
$group->LoadUserDefinedGroup( “DL_IT_Request_Tracker_Admins” );
}

Queue: ___Approvals
Type: approval
AdminCc: { $group->MemberEmailAddressesAsString }
Depended-On-By: TOP
{$Tickets{“TOP”}->Subject}
Due: {time + 86400}
Content-Type: text/plain
Content: Need your approval for ticket
{$Tickets{“TOP”}->Id}:{$Tickets{“TOP”}->Subject}

http://requesttracker.8502.n7.nabble.com/file/n57772/RT_Image.png

Hope this gives you a bit more information on my problem.

Thanks again,

Aaron

View this message in context: http://requesttracker.8502.n7.nabble.com/Change-Management-Multiple-Owners-tp57759p57772.html

Hi Alex,

I forgot to mention that in the logs. The error I am receiving is:

AdminCc: Can’t call method “MemberEmailAddressesAsString” on an undefined
value at template line 8.

At line 8 in the template is: Queue: ___Approvals

I feel that its something small I am missing

View this message in context: http://requesttracker.8502.n7.nabble.com/Change-Management-Multiple-Owners-tp57759p57775.html

$group doesn’t remain defined across the other sets of curly braces when
defined as “my.” Changing “my $group” to “our $group” should get rid of
this error.On 27/06/2014 2:40 am, “Aaron McCarthy” aaron.mccarthy@southwestern.ie wrote:

Hi Alex,

I forgot to mention that in the logs. The error I am receiving is:

AdminCc: Can’t call method “MemberEmailAddressesAsString” on an undefined
value at template line 8.

At line 8 in the template is: Queue: ___Approvals

I feel that its something small I am missing


View this message in context:
http://requesttracker.8502.n7.nabble.com/Change-Management-Multiple-Owners-tp57759p57775.html
Sent from the Request Tracker - User mailing list archive at Nabble.com.

RT Training - Boston, September 9-10
Training — Best Practical Solutions

Am 25.06.2014 19:11, schrieb Alex Vandiver:

Use:

AdminCc: { $group->MemberEmailAddressesAsString }

Wouldn’t it be better to use the group id as AdminCc?
Group Member changes would immediately affect also the approvals and you
can avoid loading the group within the approval create template.

Unfortunately, that doesn’t work with AdminCc, it expects email
addresses. You can use AdminCcGroup, but that was added in 4.0.5,
as noted by the original poster who is using 4.0.4. I suspect this is
why Alex suggested the available field.

-kevin