<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=AddAdminCc</id>
	<title>AddAdminCc - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://rt-wiki.bestpractical.com/index.php?action=history&amp;feed=atom&amp;title=AddAdminCc"/>
	<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=AddAdminCc&amp;action=history"/>
	<updated>2026-08-22T02:34:57Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=AddAdminCc&amp;diff=26369&amp;oldid=prev</id>
		<title>Tharn at 21:14, 17 August 2016</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=AddAdminCc&amp;diff=26369&amp;oldid=prev"/>
		<updated>2016-08-17T21:14:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 17:14, 17 August 2016&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l33&quot;&gt;Line 33:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 33:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action preparation code: return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action preparation code: return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action cleanup code:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action cleanup code:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  my $admincclist = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;AdminCc;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  my $admincclist = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;AdminCc;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  my $user = RT::User-&amp;amp;gt;new($RT::SystemUser);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  my $user = RT::User-&amp;amp;gt;new($RT::SystemUser);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l44&quot;&gt;Line 44:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 45:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    return 0;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;    return 0;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A More Refined Version of That Idea&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;A More Refined Version of That Idea&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l60&quot;&gt;Line 60:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 61:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action preparation code: return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action preparation code: return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action cleanup code:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action cleanup code:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   $self-&amp;amp;gt;TicketObj-&amp;amp;gt;DeleteWatcher(Type=&amp;amp;gt;&amp;quot;Cc&amp;quot;,Email=&amp;amp;gt;&amp;quot;somethingreallyweird\@domain.com&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   $self-&amp;amp;gt;TicketObj-&amp;amp;gt;DeleteWatcher(Type=&amp;amp;gt;&amp;quot;Cc&amp;quot;,Email=&amp;amp;gt;&amp;quot;somethingreallyweird\@domain.com&amp;quot;);&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-added&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Another Modification&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;Another Modification&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l79&quot;&gt;Line 79:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 80:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action preparation code: return 1;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action preparation code: return 1;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action cleanup code:&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;  Custom action cleanup code:&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt; &lt;/del&gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt; &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;pre&amp;gt; &lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   my $owner = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;Owner;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   my $owner = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;Owner;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   return 1 if $owner == $RT::Nobody-&amp;amp;gt;id;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   return 1 if $owner == $RT::Nobody-&amp;amp;gt;id;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l98&quot;&gt;Line 98:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 100:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;   &lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-side-deleted&quot;&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;&amp;lt;/pre&amp;gt;&lt;/ins&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You need to set this scrip as a global scrip, as [[OnQueueChange]] scrips on a queue B are executed when entering B from A, not leaving queue B. Thus, if you need to add [[AdminCc]] when going to more than one queue, you would need to set this scrip on many queue. A mess to administer... Here, you could manage that only by testing $self-&amp;amp;gt;[[TransactionObj]]-&amp;amp;gt;[[OldValue]] and $self-&amp;amp;gt;[[TransactionObj]]-&amp;amp;gt;Value and take appropriate action. Another Modification&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;You need to set this scrip as a global scrip, as [[OnQueueChange]] scrips on a queue B are executed when entering B from A, not leaving queue B. Thus, if you need to add [[AdminCc]] when going to more than one queue, you would need to set this scrip on many queue. A mess to administer... Here, you could manage that only by testing $self-&amp;amp;gt;[[TransactionObj]]-&amp;amp;gt;[[OldValue]] and $self-&amp;amp;gt;[[TransactionObj]]-&amp;amp;gt;Value and take appropriate action. Another Modification&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;

&lt;!-- diff cache key bestpractical_mediawiki1459887241:diff:1.41:old-31:rev-26369:php=table --&gt;
&lt;/table&gt;</summary>
		<author><name>Tharn</name></author>
	</entry>
	<entry>
		<id>https://rt-wiki.bestpractical.com/index.php?title=AddAdminCc&amp;diff=31&amp;oldid=prev</id>
		<title>Admin: 2 revisions imported</title>
		<link rel="alternate" type="text/html" href="https://rt-wiki.bestpractical.com/index.php?title=AddAdminCc&amp;diff=31&amp;oldid=prev"/>
		<updated>2016-04-06T20:03:11Z</updated>

		<summary type="html">&lt;p&gt;2 revisions imported&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Contributed by [[JohannesVerelst]] Overview&lt;br /&gt;
&lt;br /&gt;
This scrip will add the emailaddress &amp;#039;[mailto:somebody@somewhere.com somebody@somewhere.com]&amp;#039; as an [[AdminCc]] (it needs to be available as a user already). You can use this if you reroute tickets between queues, and do not want to set [[AdminCc]] on all those queues. Scrip&lt;br /&gt;
&lt;br /&gt;
 Description: AddAdminCC&lt;br /&gt;
 Condition: On Create&lt;br /&gt;
 Action: User defined&lt;br /&gt;
 Template: Global template: blank&lt;br /&gt;
 Stage: TransactionCreate&lt;br /&gt;
 Custom Condition:&lt;br /&gt;
 Custom action preparation code: return 1;&lt;br /&gt;
 Custom action cleanup code:&lt;br /&gt;
  my $admincclist = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;AdminCc;&lt;br /&gt;
 &lt;br /&gt;
  my $user = RT::User-&amp;amp;gt;new($RT::SystemUser);&lt;br /&gt;
  $user-&amp;amp;gt;LoadByEmail(&amp;#039;somebody@somewhere.com&amp;#039;);&lt;br /&gt;
 &lt;br /&gt;
  $admincclist-&amp;amp;gt;AddMember($user-&amp;amp;gt;Id);&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Modification&lt;br /&gt;
&lt;br /&gt;
Modification: Adding someone as an [[AdminCc]] for a ticket if it moves from a specific queue to another specific queue. - By Mike Patterson. Help From Stephen Turner on mailing list.&lt;br /&gt;
&lt;br /&gt;
If a ticket moves from our &amp;quot;web&amp;quot; queue (#5) to our &amp;quot;systems&amp;quot; queue (#10) I want &amp;quot;[mailto:myuser@myuniversity.edu myuser@myuniversity.edu]&amp;quot; to become an [[AdminCc]] for that ticket. I create this scrip on the queue I&amp;#039;m moving the ticket into. Scrip&lt;br /&gt;
&lt;br /&gt;
 Description: AddAdminCCIfFromWeb&lt;br /&gt;
 Condition: On Queue Change&lt;br /&gt;
 Action: User defined&lt;br /&gt;
 Template: Global template: blank&lt;br /&gt;
 Stage: TransactionCreate&lt;br /&gt;
 Custom Condition:&lt;br /&gt;
 Custom action preparation code: return 1;&lt;br /&gt;
 Custom action cleanup code:&lt;br /&gt;
 my $admincclist = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;AdminCc;&lt;br /&gt;
 my $user = RT::User-&amp;amp;gt;new($RT::SystemUser);&lt;br /&gt;
 if ($self-&amp;amp;gt;TransactionObj-&amp;amp;gt;Type eq &amp;quot;Set&amp;quot;&lt;br /&gt;
     &amp;amp;amp;&amp;amp;amp; $self-&amp;amp;gt;TransactionObj-&amp;amp;gt;Field eq &amp;quot;Queue&amp;quot;&lt;br /&gt;
     &amp;amp;amp;&amp;amp;amp; $self-&amp;amp;gt;TransactionObj-&amp;amp;gt;OldValue eq &amp;quot;5&amp;quot;&lt;br /&gt;
   ) {&lt;br /&gt;
   $user-&amp;amp;gt;LoadByEmail(&amp;#039;!myuser@myuniversity.edu&amp;#039;);&lt;br /&gt;
   $admincclist-&amp;amp;gt;AddMember($user-&amp;amp;gt;Id);&lt;br /&gt;
 } else {&lt;br /&gt;
   return 0;&lt;br /&gt;
 }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
A More Refined Version of That Idea&lt;br /&gt;
&lt;br /&gt;
You can also use the verbosely-named RT::Extension::[[AddAdminCcsOnQueueChange]] (from CPAN) to do exactly what its name implies – add all the [[AdminCcs]] on the current queue to the ticket when it moves to a new queue. Another Modification&lt;br /&gt;
&lt;br /&gt;
Modification: If you have many, weird aliases for a single Queue, RT sometimes adds those aliases to the CC of the ticket. Then when you correspond, it &amp;quot;bounces&amp;quot; because it trys to send to itself (the requester never sees this though). This scrip will remove these known aliases from the CC of a ticket Scrip&lt;br /&gt;
&lt;br /&gt;
 Description: DeleteCC&lt;br /&gt;
 Condition: On Create&lt;br /&gt;
 Action: User defined&lt;br /&gt;
 Template: Global template: blank&lt;br /&gt;
 Stage: TransactionCreate&lt;br /&gt;
 Custom Condition:&lt;br /&gt;
 Custom action preparation code: return 1;&lt;br /&gt;
 Custom action cleanup code:&lt;br /&gt;
  $self-&amp;amp;gt;TicketObj-&amp;amp;gt;DeleteWatcher(Type=&amp;amp;gt;&amp;quot;Cc&amp;quot;,Email=&amp;amp;gt;&amp;quot;somethingreallyweird\@domain.com&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
Another Modification&lt;br /&gt;
&lt;br /&gt;
by [[JFenal]].&lt;br /&gt;
&lt;br /&gt;
If you have a workflow between queues (Unix-&amp;amp;gt;Storage and back for instance), and having differents groups having rights on their only queues, you may allow ticket owners to still see the ticket they transfered by automatically adding them as [[AdminCc]] to the ticket on queue change.&lt;br /&gt;
&lt;br /&gt;
You will need then to set global rights for [[AdminCc]] role such as [[ShowTicket]], and maybe more, depending of your own setup : Scrip&lt;br /&gt;
&lt;br /&gt;
 Description: AddAsAdminCcOnQueueChange&lt;br /&gt;
 Condition: On Queue Change&lt;br /&gt;
 Action: User defined&lt;br /&gt;
 Template: Global template: blank&lt;br /&gt;
 Stage: TransactionCreate&lt;br /&gt;
 Custom Condition:&lt;br /&gt;
 Custom action preparation code: return 1;&lt;br /&gt;
 Custom action cleanup code:&lt;br /&gt;
 &lt;br /&gt;
  my $owner = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;Owner;&lt;br /&gt;
  return 1 if $owner == $RT::Nobody-&amp;amp;gt;id;&lt;br /&gt;
  my $admincclist = $self-&amp;amp;gt;TicketObj-&amp;amp;gt;AdminCc;&lt;br /&gt;
 &lt;br /&gt;
  if ($self-&amp;amp;gt;TransactionObj-&amp;amp;gt;Type eq &amp;quot;Set&amp;quot;&lt;br /&gt;
     &amp;amp;amp;&amp;amp;amp; $self-&amp;amp;gt;TransactionObj-&amp;amp;gt;Field eq &amp;quot;Queue&amp;quot;&lt;br /&gt;
     &amp;amp;amp;&amp;amp;amp; $self-&amp;amp;gt;TransactionObj-&amp;amp;gt;OldValue eq &amp;quot;8&amp;quot;    # 8: Storage queue -&amp;amp;gt; any queue&lt;br /&gt;
     ) {&lt;br /&gt;
    my ($status, $msg) = $admincclist-&amp;amp;gt;AddMember($owner);&lt;br /&gt;
    unless( $status ) {&lt;br /&gt;
      $RT::Logger-&amp;amp;gt;warning( &amp;quot;can&amp;#039;t add ticket owner as AdminCc : $msg&amp;quot; );&lt;br /&gt;
      return undef;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  else {&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You need to set this scrip as a global scrip, as [[OnQueueChange]] scrips on a queue B are executed when entering B from A, not leaving queue B. Thus, if you need to add [[AdminCc]] when going to more than one queue, you would need to set this scrip on many queue. A mess to administer... Here, you could manage that only by testing $self-&amp;amp;gt;[[TransactionObj]]-&amp;amp;gt;[[OldValue]] and $self-&amp;amp;gt;[[TransactionObj]]-&amp;amp;gt;Value and take appropriate action. Another Modification&lt;br /&gt;
&lt;br /&gt;
by Riccardo Capecchi&lt;br /&gt;
&lt;br /&gt;
Small change from the idea of the former, on queue change we needed to set all old watchers of the old queue as new [[AdminCc]] for the ticket, so they can follow the ticket also in different queue where they have no rights.&lt;br /&gt;
&lt;br /&gt;
You will need then to set global rights for [[AdminCc]] role such as [[ShowTicket]], and maybe more, depending of your own setup : Scrip&lt;br /&gt;
&lt;br /&gt;
 Description: AddAsAdminCcOnQueueChange&lt;br /&gt;
 Condition: On Queue Change&lt;br /&gt;
 Action: User defined&lt;br /&gt;
 Template: Global template: blank&lt;br /&gt;
 Stage: TransactionCreate&lt;br /&gt;
 Custom Condition:&lt;br /&gt;
 Custom action preparation code: return 1;&lt;br /&gt;
 Custom action cleanup code:&lt;br /&gt;
  my $OldQueueID = $self-&amp;amp;gt;TransactionObj-&amp;amp;gt;OldValue;&lt;br /&gt;
  my $OldQueue = new RT::Queue($RT::SystemUser);&lt;br /&gt;
  $OldQueue-&amp;amp;gt;Load($OldQueueID);&lt;br /&gt;
  my @oldadmincclist = $OldQueue-&amp;amp;gt;AdminCc-&amp;amp;gt;MemberEmailAddresses;&lt;br /&gt;
  foreach my $addr (@oldadmincclist) {&lt;br /&gt;
    my ($success, $msg)= $self-&amp;amp;gt;TicketObj-&amp;amp;gt;AddWatcher(&lt;br /&gt;
                               Type =&amp;amp;gt; &amp;quot;AdminCc&amp;quot;,&lt;br /&gt;
                               Email =&amp;amp;gt; $addr);&lt;br /&gt;
    if (! $success) {&lt;br /&gt;
      $RT::Logger-&amp;amp;gt;info($msg);&lt;br /&gt;
      return undef;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  return 1;&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
You can set this as global, then will work for any change of queue or set as scrip for only some queue, it depend on your workflow..&lt;/div&gt;</summary>
		<author><name>Admin</name></author>
	</entry>
</feed>