OSDN Git Service

add ACS webapp, sql, htdocs
[acs/acs.git] / webapp / modules / User / actions / DeleteProfileImageAction.class.php
diff --git a/webapp/modules/User/actions/DeleteProfileImageAction.class.php b/webapp/modules/User/actions/DeleteProfileImageAction.class.php
new file mode 100644 (file)
index 0000000..4d7fa30
--- /dev/null
@@ -0,0 +1,128 @@
+<?php
+/**
+ * ¥×¥í¥Õ¥£¡¼¥ë¼Ì¿¿ ºï½ü½èÍý¡¡¥¢¥¯¥·¥ç¥ó¥¯¥é¥¹
+ * DeleteProfileImageAction.class.php
+ *
+ * @author  $Author: y-yuki $
+ * @version ver1.0 $  2006/02/16 $
+ * @import  ACSFile.class.php
+ * @import  ACSCommunityImageFileModel.class.php
+ */
+// $Id: DeleteProfileImageAction.class.php,v 1.7 2008/03/24 07:00:36 y-yuki Exp $
+
+
+       require_once(ACS_CLASS_DIR . 'ACSFile.class.php');
+       require_once(ACS_CLASS_DIR . 'ACSCommunityImageFileModel.class.php');
+
+class DeleteProfileImageAction extends BaseAction
+{
+       // GET
+       function getDefaultView() {
+
+               $context = $this->getContext();
+               $controller = $context->getController();
+               $request =  $context->getRequest();
+               $user = $context->getUser();
+               // set parameter
+               $target_user_community_id       = $request->getParameter('id');
+
+               $image_change_url = $this->getControllerPath('User','EditProfileImage');
+               $image_change_url .= '&id=' . $target_user_community_id;
+               
+               $delete_image_url = $image_change_url;
+               $back_url = $image_change_url;
+
+               if (!$this->get_execute_privilege()) {
+                       $controller->forward(SECURE_MODULE, SECURE_ACTION);
+                       return;
+               }
+
+               $request->setAttribute('delete_image_url', $delete_image_url);
+               $request->setAttribute('back_url', $back_url);
+
+               // É½¼¨
+               return View::INPUT;
+       }
+
+       // POST
+       function execute() {
+               $context = $this->getContext();
+               $controller = $context->getController();
+               $request =  $context->getRequest();
+               $user = $context->getUser();
+               //ºï½ü½èÍý¤ò¹Ô¤¦
+               $target_user_community_id       = $request->getParameter('id');
+               $acs_user_info_row              = $user->getAttribute('acs_user_info_row');
+               $file_id                        = $request->getParameter('file_id');
+               $open_level_code        = $request->getParameter('open_level_code');
+
+               if (!$this->get_execute_privilege()) {
+                       $controller->forward(SECURE_MODULE, SECURE_ACTION);
+                       return;
+               }
+
+               // ¥Õ¥¡¥¤¥ë¾ðÊó¼èÆÀ
+               $file_obj = ACSFile::get_file_info_instance($file_id);
+               //¥Õ¥¡¥¤¥ë¾ðÊó¥Æ¡¼¥Ö¥ë¤Î¥Ç¡¼¥¿ºï½ü
+               ACSDB::_do_query("BEGIN");
+
+               $ret = ACSCommunityImageFileModel::delete_community_image_with_open_level(
+                               $file_obj, $open_level_code);
+               if (!$ret) {
+                       ACSDB::_do_query("ROLLBACK");
+                       print "ERROR: Delete image failed. :image_file";
+               } else {
+                       $row = ACSCommunityImageFileModel::get_file_id_with_open_level($file_obj->get_owner_community_id());
+                       if ($row == NULL || 
+                                       ($file_id != $row['file_id_ol05']
+                                               && $file_id != $row['file_id_ol02']
+                                               && $file_id != $row['file_id_ol01']
+                                       )
+                               ) {
+                                       // ¥Õ¥¡¥¤¥ë¤´¤Èºï½ü
+                                       $ret =  $file_obj->delete_file();
+                               }
+                       if (!$ret) {
+                                       ACSDB::_do_query("ROLLBACK");
+                                       print "ERROR: Delete image failed. :image_file";
+                       } else {
+                                       ACSDB::_do_query("COMMIT");
+                       }
+               }
+               //ɽ¼¨
+               $image_change_url = $this->getControllerPath('User','EditProfileImage');
+               $image_change_url .= '&id=' . $target_user_community_id;
+               header("Location: $image_change_url");
+               return View::INPUT;
+       }
+
+       function getRequestMethods () {
+               return Request::POST;
+       }
+
+       function isSecure () {
+               return false;
+       }
+
+       function getCredential() {
+               $context = $this->getContext();
+               $controller = $context->getController();
+               $request =  $context->getRequest();
+               $user = $context->getUser();
+               
+               return array('USER_PAGE_OWNER');
+       }
+
+       function get_execute_privilege () {
+               $context = $this->getContext();
+               $user = $context->getUser();
+
+               // Ëܿͤξì¹ç¤ÏOK
+               if ($user->hasCredential('USER_PAGE_OWNER')) {
+                       return true;
+               }
+               return false;
+       }
+
+}
+?>