summaryrefslogtreecommitdiff
path: root/rt/share/html/Search/Elements/EditSearches
diff options
context:
space:
mode:
Diffstat (limited to 'rt/share/html/Search/Elements/EditSearches')
-rw-r--r--rt/share/html/Search/Elements/EditSearches70
1 files changed, 48 insertions, 22 deletions
diff --git a/rt/share/html/Search/Elements/EditSearches b/rt/share/html/Search/Elements/EditSearches
index 62871fd..08f84c7 100644
--- a/rt/share/html/Search/Elements/EditSearches
+++ b/rt/share/html/Search/Elements/EditSearches
@@ -1,40 +1,40 @@
%# BEGIN BPS TAGGED BLOCK {{{
-%#
+%#
%# COPYRIGHT:
-%#
-%# This software is Copyright (c) 1996-2009 Best Practical Solutions, LLC
-%# <jesse@bestpractical.com>
-%#
+%#
+%# This software is Copyright (c) 1996-2011 Best Practical Solutions, LLC
+%# <sales@bestpractical.com>
+%#
%# (Except where explicitly superseded by other copyright notices)
-%#
-%#
+%#
+%#
%# LICENSE:
-%#
+%#
%# This work is made available to you under the terms of Version 2 of
%# the GNU General Public License. A copy of that license should have
%# been provided with this software, but in any event can be snarfed
%# from www.gnu.org.
-%#
+%#
%# This work is distributed in the hope that it will be useful, but
%# WITHOUT ANY WARRANTY; without even the implied warranty of
%# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
%# General Public License for more details.
-%#
+%#
%# You should have received a copy of the GNU General Public License
%# along with this program; if not, write to the Free Software
%# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
%# 02110-1301 or visit their web page on the internet at
%# http://www.gnu.org/licenses/old-licenses/gpl-2.0.html.
-%#
-%#
+%#
+%#
%# CONTRIBUTION SUBMISSION POLICY:
-%#
+%#
%# (The following paragraph is not intended to limit the rights granted
%# to you to modify and distribute this software under the terms of
%# the GNU General Public License and is only of importance to you if
%# you choose to contribute your changes and enhancements to the
%# community by submitting them to Best Practical Solutions, LLC.)
-%#
+%#
%# By intentionally submitting any modifications, corrections or
%# derivatives to this work, or any other work intended for use with
%# Request Tracker, to Best Practical Solutions, LLC, you confirm that
@@ -43,7 +43,7 @@
%# royalty-free, perpetual, license to use, copy, create derivative
%# works based on those contributions, and sublicense and distribute
%# those contributions and any derivatives thereof.
-%#
+%#
%# END BPS TAGGED BLOCK }}}
<&| /Widgets/TitleBox, title => loc($Title)&>
@@ -180,7 +180,11 @@ elsif ( $ARGS{'SavedSearchDelete'} ) {
my ($container, $id) = _parse_saved_search( $SavedSearch->{'Id'} );
if ( $container && $container->id ) {
# We have the object the entry is an attribute on; delete the entry...
- $container->Attributes->DeleteEntry( Name => 'SavedSearch', id => $id );
+ my ($val, $msg) = $container->Attributes->DeleteEntry( Name => 'SavedSearch', id => $id );
+ unless ( $val ) {
+ push @results, $msg;
+ return @results;
+ }
}
$SavedSearch->{'Id'} = 'new';
$SavedSearch->{'Object'} = undef;
@@ -250,13 +254,35 @@ if ( $obj && $obj->id ) {
if ( $new_obj_type && $new_obj_id ) {
my ($val, $msg);
- if ( $new_obj_type ne $obj_type ) {
- ($val, $msg ) = $obj->SetObjectType($new_obj_type);
- push @results, loc ('Unable to set privacy object: [_1]', $msg) unless ( $val );
+
+ # we need to check right before we change any of ObjectType and ObjectId,
+ # or it will fail the 2nd change if we use SetObjectType and
+ # SetObjectId sequentially
+
+ if ( $obj->CurrentUserHasRight('update') ) {
+ if ( $new_obj_type ne $obj_type ) {
+ ( $val, $msg ) = $obj->__Set(
+ Field => 'ObjectType',
+ Value => $new_obj_type,
+ );
+ push @results, loc( 'Unable to set privacy object: [_1]', $msg )
+ unless ($val);
+ }
+ if ( $new_obj_id != $obj_id ) {
+ ( $val, $msg ) = $obj->__Set(
+ Field => 'ObjectId',
+ Value => $new_obj_id,
+ );
+ push @results, loc( 'Unable to set privacy id: [_1]', $msg )
+ unless ($val);
+ }
}
- if ( $new_obj_id != $obj_id ) {
- ($val, $msg) = $obj->SetObjectId($new_obj_id);
- push @results, loc ('Unable to set privacy id: [_1]', $msg) unless ( $val );
+ else {
+ # two loc are just for convenience so we don't need to
+ # write an extra i18n translation item
+ push @results,
+ loc( 'Unable to set privacy object or id: [_1]',
+ loc('Permission Denied') )
}
} else {
push @results, loc('Unable to determine object type or id');