Merge branch 'master' of git.freeside.biz:/home/git/freeside
[freeside.git] / rt / share / html / Admin / Elements / SelectScripAction
index 4dd39f5..395a1a3 100755 (executable)
@@ -2,7 +2,7 @@
 %#
 %# COPYRIGHT:
 %#
-%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# This software is Copyright (c) 1996-2015 Best Practical Solutions, LLC
 %#                                          <sales@bestpractical.com>
 %#
 %# (Except where explicitly superseded by other copyright notices)
 %# those contributions and any derivatives thereof.
 %#
 %# END BPS TAGGED BLOCK }}}
-<select name="<%$Name%>"
-onchange="var idobj = document.getElementsByName('id')[0]; 
-if (idobj.value=='new') idobj.value = '';
-form.submit()">
+<select name="<%$Name%>">
 <option value="" 
 <% ! defined $Default && qq[ selected="selected"] |n %>
 >-</option>
@@ -62,10 +59,19 @@ form.submit()">
 
 <%INIT>
 my $ScripActions = RT::ScripActions->new($session{'CurrentUser'});
-$ScripActions->UnLimit;
-$ScripActions->OrderBy(FIELD => 'Name');
 
+# hide user-defined if the user can't execute code
+if ($session{CurrentUser}->HasRight(Object => $RT::System, Right => 'ExecuteCode')) {
+    $ScripActions->UnLimit;
+} else {
+    $ScripActions->Limit(
+        FIELD    => 'ExecModule',
+        OPERATOR => '!=',
+        VALUE    => 'UserDefined',
+    );
+}
 
+$ScripActions->OrderBy(FIELD => 'Name');
 
 </%INIT>
 <%ARGS>