1<?php 2/* 3 * Gallery - a web based photo album viewer and editor 4 * Copyright (C) 2000-2008 Bharat Mediratta 5 * 6 * This program is free software; you can redistribute it and/or modify 7 * it under the terms of the GNU General Public License as published by 8 * the Free Software Foundation; either version 2 of the License, or (at 9 * your option) any later version. 10 * 11 * This program is distributed in the hope that it will be useful, but 12 * WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * General Public License for more details. 15 * 16 * You should have received a copy of the GNU General Public License 17 * along with this program; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA 02110-1301, USA. 19 */ 20 21/** 22 * Delete a watermark 23 * @package Watermark 24 * @subpackage UserInterface 25 * @author Alan Harder <alan.harder@sun.com> 26 * @version $Revision: 17580 $ 27 */ 28class ConfirmDeleteController extends GalleryController { 29 30 /** 31 * @see GalleryController::handleRequest 32 */ 33 function handleRequest($form) { 34 list ($ret, $canView) = 35 GalleryCoreApi::hasItemPermission($form['watermarkId'], 'core.view'); 36 if ($ret) { 37 return array($ret, null); 38 } 39 if (!$canView) { 40 /* Avoid information disclosure, act as if the item didn't exist. */ 41 return array(GalleryCoreApi::error(ERROR_MISSING_OBJECT), null); 42 } 43 /* Make sure we have permission to edit this item */ 44 $ret = GalleryCoreApi::assertHasItemPermission($form['watermarkId'], 'core.edit'); 45 if ($ret) { 46 return array($ret, null); 47 } 48 49 $status = array(); 50 if (isset($form['action']['delete'])) { 51 GalleryCoreApi::requireOnce('modules/watermark/classes/WatermarkHelper.class'); 52 53 list ($ret) = WatermarkHelper::deleteWatermarkImageById($form['watermarkId'], true); 54 if ($ret) { 55 return array($ret, null); 56 } 57 58 $status['delete'] = 1; 59 } /* else $form['action']['cancel'] */ 60 61 $results['redirect'] = isset($form['fromAdmin']) 62 ? array('view' => 'core.SiteAdmin', 'subView' => 'watermark.WatermarkSiteAdmin') 63 : array('view' => 'core.UserAdmin', 'subView' => 'watermark.UserWatermarks'); 64 $results['status'] = $status; 65 $results['error'] = array(); 66 67 return array(null, $results); 68 } 69} 70 71/** 72 * Confirm delete of a watermark 73 */ 74class ConfirmDeleteView extends GalleryView { 75 76 /** 77 * @see GalleryView::loadTemplate 78 */ 79 function loadTemplate(&$template, &$form) { 80 GalleryCoreApi::requireOnce('modules/watermark/classes/WatermarkHelper.class'); 81 if ($form['formName'] != 'ConfirmDelete') { 82 $form['formName'] = 'ConfirmDelete'; 83 list ($form['watermarkId'], $form['fromAdmin']) = 84 GalleryUtilities::getRequestVariables('watermarkId', 'fromAdmin'); 85 } 86 87 list ($ret, $item) = 88 GalleryCoreApi::loadEntitiesById($form['watermarkId'], 'WatermarkImage'); 89 if ($ret) { 90 return array($ret, null); 91 } 92 list ($ret, $canView) = 93 GalleryCoreApi::hasItemPermission($form['watermarkId'], 'core.view'); 94 if ($ret) { 95 return array($ret, null); 96 } 97 if (!$canView) { 98 /* Avoid information disclosure, act as if the item didn't exist. */ 99 return array(GalleryCoreApi::error(ERROR_MISSING_OBJECT), null); 100 } 101 102 /* Make sure we have permission to edit this item */ 103 $ret = GalleryCoreApi::assertHasItemPermission($form['watermarkId'], 'core.edit'); 104 if ($ret) { 105 return array($ret, null); 106 } 107 108 list ($ret, $itemIds) = WatermarkHelper::fetchWatermarkedItemIds($item); 109 if ($ret) { 110 return array($ret, null); 111 } 112 113 $template->setVariable('ConfirmDelete', 114 array('item' => (array)$item, 115 'count' => count($itemIds))); 116 $template->setVariable('controller', 'watermark.ConfirmDelete'); 117 118 return array(null, array('body' => 'modules/watermark/templates/ConfirmDelete.tpl')); 119 } 120} 121?> 122