From cdf6a11e636b6223866bfa5e8e88fabb44b3a354 Mon Sep 17 00:00:00 2001 From: zero Date: Thu, 14 Feb 2008 08:42:23 +0000 Subject: [PATCH] =?UTF-8?q?#402=20=EC=99=80=20=EC=97=B0=EA=B3=84=EB=90=98?= =?UTF-8?q?=EC=96=B4=20=EB=82=B4=EC=9A=A9=20=EC=A7=81=EC=A0=91=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=EC=8B=9C=20=EA=B6=8C=ED=95=9C=EC=97=86=EC=9D=8C=20?= =?UTF-8?q?=EB=AC=B8=EC=A0=9C=EB=8F=84=20=ED=95=B4=EA=B2=B0?= 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@3668 201d5d3c-b55e-5fd7-737f-ddc643e51545 --- modules/widget/widget.class.php | 37 +++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/modules/widget/widget.class.php b/modules/widget/widget.class.php index 8be456250..7bedf4803 100644 --- a/modules/widget/widget.class.php +++ b/modules/widget/widget.class.php @@ -49,5 +49,42 @@ // widget 생성 캐시 파일 삭제 FileHandler::removeFilesInDir("./files/cache/widget_cache"); } + + /** + * @brief 권한 체크를 실행하는 method + * 모듈 객체가 생성된 경우는 직접 권한을 체크하지만 기능성 모듈등 스스로 객체를 생성하지 않는 모듈들의 경우에는 + * ModuleObject에서 직접 method를 호출하여 권한을 확인함 + * + * isAdminGrant는 관리권한 이양시에만 사용되도록 하고 기본은 false로 return 되도록 하여 잘못된 권한 취약점이 생기지 않도록 주의하여야 함 + **/ + function isAdmin() { + // 로그인이 되어 있지 않으면 무조건 return false + $is_logged = Context::get('is_logged'); + if(!$is_logged) return false; + + // 사용자 아이디를 구함 + $logged_info = Context::get('logged_info'); + + // 모듈 요청에 사용된 변수들을 가져옴 + $args = Context::getRequestVars(); + + // act의 값에 따라서 관리 권한 체크 + switch($args->act) { + case 'dispWidgetAdminAddContent' : + // 레이아웃 정보에 할당된 srl이 없으면 패스 + if(!$args->module_srl) return false; + + // 모듈중 레이아웃이 해당 srl에 연결될 것이 있는지 확인 + $oModuleModel = &getModel('module'); + $module_info = $oModuleModel->getModuleInfoByModuleSrl($args->module_srl); + + if($oModuleModel->isModuleAdmin($module_info,$logged_info)) $is_granted = true; + else $is_granted = false; + return $is_granted; + break; + } + + return false; + } } ?>