From 6222a6aef8c8cd388f6a911911380d4a5b33b713 Mon Sep 17 00:00:00 2001 From: zero Date: Fri, 19 Jun 2009 02:36:24 +0000 Subject: [PATCH] =?UTF-8?q?1.=20fileModel::getIsPermitted()=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=20=EC=A0=9C=EA=B1=B0=20(=EB=82=B4=EB=B6=80=20?= =?UTF-8?q?=EA=B5=AC=ED=98=84=EC=BD=94=EB=93=9C=EA=B0=80=20=EB=AF=B8?= =?UTF-8?q?=EC=99=84=EC=84=B1=EC=9D=B4=EB=9D=BC=20=EC=9D=B4=20=ED=95=A8?= =?UTF-8?q?=EC=88=98=EB=A5=BC=20=EC=A0=9C=EA=B1=B0=ED=95=98=EA=B3=A0=20edi?= =?UTF-8?q?tor=5Fsequence,=20uploadTargetSrl=20=EC=9D=84=20=EC=9D=B4?= =?UTF-8?q?=EC=9A=A9=ED=95=98=EC=97=AC=20=ED=8C=8C=EC=9D=BC=20=EC=97=85?= =?UTF-8?q?=EB=A1=9C=EB=93=9C=20=EC=A0=90=EA=B2=80=ED=95=98=EB=8F=84?= =?UTF-8?q?=EB=A1=9D=20=EC=88=98=EC=A0=95)=202.=20=EA=B4=80=EB=A6=AC?= =?UTF-8?q?=EC=9E=90=20=ED=8E=98=EC=9D=B4=EC=A7=80=EC=97=90=EC=84=9C=20?= =?UTF-8?q?=EB=B9=84=EB=A1=9C=EA=B7=B8=EC=9D=B8=20=ED=9A=8C=EC=9B=90?= =?UTF-8?q?=EC=9D=B4=20=EC=97=85=EB=A1=9C=EB=93=9C=ED=95=9C=20=EA=B2=83?= =?UTF-8?q?=EC=9D=84=20=EC=A0=9C=EB=8C=80=EB=A1=9C=20=EB=B3=B4=EC=97=AC?= =?UTF-8?q?=EC=A3=BC=EB=8F=84=EB=A1=9D=20file.getFileList.xml=20=EC=BF=BC?= =?UTF-8?q?=EB=A6=AC=EB=AC=B8=EC=97=90=20=EB=8C=80=ED=95=B4=EC=84=9C=20fil?= =?UTF-8?q?e,=20member=EA=B0=84=EC=9D=98=20left=20outer=20join=20=EC=9D=84?= =?UTF-8?q?=20=EC=A0=95=EC=9D=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://xe-core.googlecode.com/svn/sandbox@6598 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- .../queries/getDocumentsExtraVars.xml | 2 +- modules/editor/editor.class.php | 13 ++-- modules/editor/editor.controller.php | 12 ---- modules/file/file.controller.php | 65 +++++++------------ modules/file/file.model.php | 50 +++----------- modules/file/queries/getFileList.xml | 7 +- 6 files changed, 43 insertions(+), 106 deletions(-) diff --git a/modules/document/queries/getDocumentsExtraVars.xml b/modules/document/queries/getDocumentsExtraVars.xml index 48e3fc1ce..f50fc7c12 100644 --- a/modules/document/queries/getDocumentsExtraVars.xml +++ b/modules/document/queries/getDocumentsExtraVars.xml @@ -26,4 +26,4 @@ - \ No newline at end of file + diff --git a/modules/editor/editor.class.php b/modules/editor/editor.class.php index fdce6c860..f92fd2281 100644 --- a/modules/editor/editor.class.php +++ b/modules/editor/editor.class.php @@ -40,9 +40,6 @@ // 2009. 04. 14 editor component 변환 코드를 trigger로 독립 $oModuleController->insertTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before'); - // 2009. 06. 13 자동 저장된 SRL 체크 - $oModuleController->insertTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before'); - return new Object(); } @@ -71,8 +68,8 @@ // 2009. 04. 14 editor component 변환 코드를 trigger로 독립 if(!$oModuleModel->getTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before')) return true; - // 2009. 06. 13 자동 저장된 SRL 체크 - if(!$oModuleModel->getTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before')) return true; + // 2009. 06. 19 사용하지 않는 트리거 제거 + if($oModuleModel->getTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before')) return true; return false; } @@ -109,9 +106,9 @@ if(!$oModuleModel->getTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before')) $oModuleController->insertTrigger('display', 'editor', 'controller', 'triggerEditorComponentCompile', 'before'); - // 2009. 06. 13 자동 저장된 SRL 체크 - if(!$oModuleModel->getTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before')) - $oModuleController->insertTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before'); + // 2009. 06. 19 사용하지 않는 트리거 제거 + if($oModuleModel->getTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before')) + $oModuleController->deleteTrigger('file.getIsPermitted', 'editor', 'controller', 'triggerSrlSetting', 'before'); return new Object(0, 'success_updated'); } diff --git a/modules/editor/editor.controller.php b/modules/editor/editor.controller.php index cb46d9a77..32976befe 100644 --- a/modules/editor/editor.controller.php +++ b/modules/editor/editor.controller.php @@ -242,18 +242,6 @@ return executeQuery('editor.insertSavedDoc', $args); } - - /** - * @brief 자동 저장글 Srl 로드 (자기글인지 확인) - **/ - function triggerSrlSetting(&$obj) { - $oEditorModel = &getModel('editor'); - $saved_doc = $oEditorModel->getSavedDoc(null); - if($obj->uploadTargetSrl == $saved_doc->document_srl) Context::set("getIsPermitted",$saved_doc->document_srl); - return $output; - } - - /** * @brief 자동 저장글 Srl 로드 - XE 이전 버전 사용자를 위함. **/ diff --git a/modules/file/file.controller.php b/modules/file/file.controller.php index bc4281a1a..99c759f2a 100644 --- a/modules/file/file.controller.php +++ b/modules/file/file.controller.php @@ -16,45 +16,30 @@ /** * @brief 에디터에서 첨부파일 업로드 + * editor_sequence, uploadTargetSrl 변수값을 받아서 이를 바탕으로 첨부 대상 srl을 결정함. + * 만약 uploadTargetSrl이 없다면 새로 생성하고 return 하여 UI에서 이에 대한 값을 재설정하도록 하여 + * sync이상없도록 함 **/ function procFileUpload() { // 기본적으로 필요한 변수 설정 $oFileModel = &getModel('file'); $editor_sequence = Context::get('editor_sequence'); + $upload_target_srl = Context::get('uploadTargetSrl'); $module_srl = $this->module_srl; // 업로드 권한이 없거나 정보가 없을시 종료 if(!$_SESSION['upload_info'][$editor_sequence]->enabled) exit(); - // upload_target_srl 구함 - $tmp_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; - if(!$tmp_target_srl) { - if($oFileModel->getIsPermitted(Context::get('uploadTargetSrl'))) { - $tmp_target_srl = Context::get('uploadTargetSrl'); - } - } + // upload_target_srl 값이 명시되지 않았을 경우 세션정보에서 추출 + if(!$upload_target_srl) $upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; - $tmp_files = $oFileModel->getFiles($tmp_target_srl); - if(is_array($tmp_files)) $tmp_file = $tmp_files[0]; - - // 첨부될 target_srl이 이전에 쓰인 target_srl인지 확인, 쓰였다면 이 모듈에서 쓰인게 맞는지 확인 - if(!$tmp_file || !$tmp_file->file_srl || $tmp_file->module_srl == $module_srl) { - $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = $tmp_target_srl; - } - else { - $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = ''; - } - unset($tmp_files); - unset($tmp_file); - - if(!$upload_target_srl) { - $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = getNextSequence(); - } + // 세션정보에도 정의되지 않았다면 새로 생성 + if(!$upload_target_srl) $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = getNextSequence(); $file_info = Context::get('Filedata'); // 정상적으로 업로드된 파일이 아니면 오류 출력 - if(!is_uploaded_file($file_info['tmp_name'])) return false; + if(!is_uploaded_file($file_info['tmp_name'])) exit(); return $this->insertFile($file_info, $module_srl, $upload_target_srl); } @@ -68,33 +53,31 @@ $editor_sequence = Context::get('editor_sequence'); $callback = Context::get('callback'); $module_srl = $this->module_srl; + $upload_target_srl = Context::get('uploadTargetSrl'); + // 업로드 권한이 없거나 정보가 없을시 종료 if(!$_SESSION['upload_info'][$editor_sequence]->enabled) exit(); - $file_srl = Context::get('file_srl'); - if($file_srl){ - $this->deleteFile($file_srl); - } - - // upload_target_srl 구함 - $upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; - if(!$upload_target_srl) { - $oFileModel = &getModel('file'); - if($oFileModel->getIsPermitted(Context::get('uploadTargetSrl'))) { - $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = Context::get('uploadTargetSrl'); - } - } - if(!$upload_target_srl) { - $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = getNextSequence(); - } + // upload_target_srl 값이 명시되지 않았을 경우 세션정보에서 추출 + if(!$upload_target_srl) $upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; + // 세션정보에도 정의되지 않았다면 새로 생성 + if(!$upload_target_srl) $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = getNextSequence(); + + // file_srl이 요청되었을 경우 삭제 후 재업로드 시도 + $file_srl = Context::get('file_srl'); + if($file_srl) $this->deleteFile($file_srl); + $file_info = Context::get('Filedata'); + // 정상적으로 업로드된 파일이 아니면 오류 출력 - if(is_uploaded_file($file_info['tmp_name'])){ + if(is_uploaded_file($file_info['tmp_name'])) { $output = $this->insertFile($file_info, $module_srl, $upload_target_srl); Context::set('uploaded_fileinfo',$output); } + Context::set('layout','none'); + $this->setTemplatePath($this->module_path.'tpl'); $this->setTemplateFile('iframe'); diff --git a/modules/file/file.model.php b/modules/file/file.model.php index c344b0657..669e21ccd 100644 --- a/modules/file/file.model.php +++ b/modules/file/file.model.php @@ -15,20 +15,17 @@ /** * @brief 특정 문서에 속한 첨부파일 목록을 return + * 문서 생성/ 수정시 ajax로 특정 upload_target_srl에 대해서 파일 목록을 요청받을 때 사용됨. + * upload_target_srl이 정해지지 않은 경우 서버측 session의 값으로 대체 시도 **/ function getFileList() { - - $mid = Context::get("mid"); $oModuleModel = &getModel('module'); - $config = $oModuleModel->getModuleInfoByMid($mid); - Context::set("module_srl",$config->module_srl); - $editor_sequence = Context::get("editor_sequence"); - $upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; - if(!$upload_target_srl) { - if($this->getIsPermitted(Context::get('upload_target_srl'))) - $_SESSION['upload_info'][$editor_sequence]->upload_target_srl = $upload_target_srl = Context::get('upload_target_srl'); - } + $mid = Context::get('mid'); + $editor_sequence = Context::get('editor_sequence'); + $upload_target_srl = Context::get('upload_target_srl'); + if(!$upload_target_srl) $upload_target_srl = $_SESSION['upload_info'][$editor_sequence]->upload_target_srl; + if($upload_target_srl) { $tmp_files = $this->getFiles($upload_target_srl); $file_count = count($tmp_files); @@ -58,6 +55,7 @@ $upload_status = $this->getUploadStatus($attached_size); // 남은 용량 체크 + $config = $oModuleModel->getModuleInfoByMid($mid); $file_config = $this->getUploadConfig(); $left_size = $file_config->allowed_attach_size*1024*1024 - $attached_size; @@ -211,37 +209,5 @@ function getFileModuleConfig($module_srl) { return $this->getFileConfig($module_srl); } - - /** - * @brief 사용자가 해당 SRL에 첨부된 파일 수정 권한이 있는지 확인 - 트리거를 통해 반환되는 정보를 이용. - **/ - function getIsPermitted($checking_target) { - Context::set("getIsPermitted", ''); - - // 문서가 있는지 확인 - $oDocumentModel = &getModel('document'); - $oDocument = $oDocumentModel->getDocument($checking_target); - if($oDocument->isExists() && $oDocument->document_srl == $document_srl) { - if($oDocument->isGranted()) { - Context::set("getIsPermitted", $checking_target); - return $checking_target; - } - } - - // 댓글이 있는지 확인 - $oCommentModel = &getModel('comment'); - $oComment = $oCommentModel->getComment($checking_target); - if($comment->comment_srl == $comment_srl) { - if($oComment->isGranted()) { - Context::set("getIsPermitted", $checking_target); - return $checking_target; - } - } - - // 그 외 모듈에 있는지 확인 (eg. 자동저장 문서) - $obj->uploadTargetSrl = $checking_target; - $output = ModuleHandler::triggerCall('file.getIsPermitted', 'before', $obj); - return Context::get("getIsPermitted"); - } } ?> diff --git a/modules/file/queries/getFileList.xml b/modules/file/queries/getFileList.xml index 714fc4bc4..61512f712 100644 --- a/modules/file/queries/getFileList.xml +++ b/modules/file/queries/getFileList.xml @@ -1,7 +1,11 @@ -
+
+ + + +
@@ -10,7 +14,6 @@ -