diff --git a/classes/module/ModuleObject.class.php b/classes/module/ModuleObject.class.php index 0d7ca9723..e41b1f18b 100644 --- a/classes/module/ModuleObject.class.php +++ b/classes/module/ModuleObject.class.php @@ -92,7 +92,13 @@ } // act값에 admin이 들어 있는데 관리자가 아닌 경우 오류 표시 - if(!$grant->is_admin && substr_count($this->act, 'Admin')) return $this->stop('msg_not_permitted_act'); + if(substr_count($this->act, 'Admin')) { + if(!$is_logged) { + $this->setAct("dispMemberLoginForm"); + } elseif(!$grant->is_admin) { + return $this->stop('msg_not_permitted_act'); + } + } // 권한 설정 if($xml_info->grant) { diff --git a/common/js/common.js b/common/js/common.js index 5f57a9e40..775b01f04 100644 --- a/common/js/common.js +++ b/common/js/common.js @@ -26,21 +26,23 @@ String.prototype.getQuery = function(key) { String.prototype.setQuery = function(key, val) { var href = location.href; var idx = href.indexOf('?'); - if(idx == -1) return; - var uri = href.substr(0, idx); - var query_string = href.substr(idx+1, href.length); - var args = {} - query_string.replace(/([^=]+)=([^&]*)(&|$)/g, function() { args[arguments[1]] = arguments[2]; }); - - args[key] = val; - - var q_list = new Array(); - for(var i in args) { - if(!args[i].trim()) continue; - q_list[q_list.length] = i+'='+args[i]; + var uri = href; + if(idx != -1) { + uri = href.substr(0, idx); + var query_string = href.substr(idx+1, href.length); + var args = {} + query_string.replace(/([^=]+)=([^&]*)(&|$)/g, function() { args[arguments[1]] = arguments[2]; }); + args[key] = val; + var q_list = new Array(); + for(var i in args) { + if(!args[i].trim()) continue; + q_list[q_list.length] = i+'='+args[i]; + } + return uri+"?"+q_list.join("&"); + } else { + if(val.trim()) return uri+"?"+key+"="+val; + else return uri; } - - return uri+'?'+q_list.join('&'); } /** diff --git a/modules/admin/admin.view.php b/modules/admin/admin.view.php index 4b643c72a..0db51631e 100644 --- a/modules/admin/admin.view.php +++ b/modules/admin/admin.view.php @@ -11,6 +11,8 @@ * @brief 초기화 **/ function init() { + if(!$this->grant->is_admin) return; + // template path 지정 $this->setTemplatePath($this->module_path.'tpl'); @@ -18,12 +20,6 @@ $oMemberModel = &getModel('member'); $logged_info = $oMemberModel->getLoggedInfo(); - // 로그인 하지 않았다면 로그인 폼 출력 - if(!$oMemberModel->isLogged()) return $this->act = 'dispLogin'; - - // 로그인되었는데 관리자(member->is_admin!=1)가 아니면 오류 표시 - if($logged_info->is_admin != 'Y') return $this->stop('msg_is_not_administrator'); - // 관리자용 레이아웃으로 변경 $this->setLayoutPath($this->getTemplatePath()); $this->setLayoutFile('layout.html'); diff --git a/modules/admin/tpl/layout.html b/modules/admin/tpl/layout.html index e92f1fd62..9ab326620 100644 --- a/modules/admin/tpl/layout.html +++ b/modules/admin/tpl/layout.html @@ -6,7 +6,7 @@
- {$lang->cmd_logout} + {$lang->cmd_logout}
diff --git a/modules/member/skins/default/js/member.js b/modules/member/skins/default/js/member.js index c5627bbbb..49ff487cf 100644 --- a/modules/member/skins/default/js/member.js +++ b/modules/member/skins/default/js/member.js @@ -20,6 +20,7 @@ function completeInsert(ret_obj, response_tags, args, fo_obj) { /* 로그인 후 */ function completeLogin(ret_obj) { + var url = location.href.setQuery('act',''); location.href = location.href.setQuery('act',''); }