mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-05 17:51:40 +09:00
문서의 검색, 확장변수와 관련된 비효율적인 코드 정리
- setToAllDocumentExtraVars() 최적화 - 확장변수(-1, -2)를 이용한 문서 다국어 기능 관련 버그 수정 및 개선 - getDocumentList() 최적화 (비효율적인 코드 대거 삭제) - _setSortIndex(), _setSearchOption() 최적화 (확장 변수 관련 쿼리들 정리) - 권한자가 아니라면 공개글만 검색되도록 개선 (검색 옵션과 상관없이) --- 문서 검색(제목+내용,내용,댓글)시 권한자도 비밀글을 검색할 수 없었던 문제 수정 - 'NOTICE Undefined variable' 조차 발생되지 않도록 getGrant() 수정 - '(포인트가 부족한 경우) 글 열람 금지' 옵션 사용시 본문 뿐만 아니라 확장 변수도 볼 수 없도록 숨김 - 기타 버그 수정 (많이 잡은 것 같은 데 정확히 기억안남ㅠ)
This commit is contained in:
parent
6c28f5ac5a
commit
9fb23bd3dd
14 changed files with 544 additions and 603 deletions
|
|
@ -2015,11 +2015,16 @@ class moduleModel extends module
|
|||
/**
|
||||
* @brief Return privileges(granted) information by using module info, xml info and member info
|
||||
*/
|
||||
function getGrant($module_info, $member_info, $xml_info = '')
|
||||
function getGrant($module_info, $member_info, $xml_info = null)
|
||||
{
|
||||
$__cache = &$GLOBALS['__MODULE_GRANT__'][$module_info->module][intval($module_info->module_srl)][intval($member_info->member_srl)];
|
||||
if(empty($module_info->module))
|
||||
{
|
||||
$module_info = new stdClass;
|
||||
$module_info->module = $module_info->module_srl = 0;
|
||||
}
|
||||
|
||||
if (!$xml_info && is_object($__cache))
|
||||
$__cache = &$GLOBALS['__MODULE_GRANT__'][$module_info->module][intval($module_info->module_srl)][intval($member_info->member_srl)];
|
||||
if (is_object($__cache) && !$xml_info)
|
||||
{
|
||||
return $__cache;
|
||||
}
|
||||
|
|
@ -2031,21 +2036,14 @@ class moduleModel extends module
|
|||
{
|
||||
$xml_info = $this->getModuleActionXml($module_info->module);
|
||||
}
|
||||
$xml_grant_list = isset($xml_info->grant) ? (array)$xml_info->grant : array();
|
||||
|
||||
// Get group information of member
|
||||
if(is_array($member_info->group_list))
|
||||
{
|
||||
$member_group = array_keys($member_info->group_list);
|
||||
}
|
||||
else
|
||||
{
|
||||
$member_group = array();
|
||||
}
|
||||
|
||||
$is_module_admin = $module_info->module_srl ? $this->isModuleAdmin($member_info, $module_info->module_srl) : false;
|
||||
$member_group = !empty($member_info->group_list) ? array_keys($member_info->group_list) : array();
|
||||
$is_module_admin = !empty($module_info->module_srl) ? $this->isModuleAdmin($member_info, $module_info->module_srl) : false;
|
||||
|
||||
// Get 'privilege name' list from module.xml
|
||||
$privilege_list = array_keys((array) $xml_info->grant);
|
||||
$privilege_list = array_keys($xml_grant_list);
|
||||
|
||||
// Prepend default 'privilege name'
|
||||
// manager, is_site_admin not distinguish because of compatibility.
|
||||
|
|
@ -2068,7 +2066,7 @@ class moduleModel extends module
|
|||
$grant->{$val} = true;
|
||||
}
|
||||
// If module_srl doesn't exist, grant access
|
||||
else if(!$module_info->module_srl && $val === 'access')
|
||||
else if(empty($module_info->module_srl) && $val === 'access')
|
||||
{
|
||||
$grant->{$val} = true;
|
||||
}
|
||||
|
|
@ -2143,41 +2141,38 @@ class moduleModel extends module
|
|||
}
|
||||
|
||||
// Grant privileges by default information of module
|
||||
if(!empty($grant_list = (array) $xml_info->grant))
|
||||
foreach($xml_grant_list as $name => $item)
|
||||
{
|
||||
foreach($grant_list as $name => $item)
|
||||
if(isset($checked[$name]) || $grant->{$name})
|
||||
{
|
||||
if(isset($checked[$name]) || $grant->{$name})
|
||||
{
|
||||
continue;
|
||||
}
|
||||
continue;
|
||||
}
|
||||
|
||||
// All user
|
||||
if($item->default == 'guest')
|
||||
{
|
||||
$grant->{$name} = true;
|
||||
|
||||
// All user
|
||||
if($item->default == 'guest')
|
||||
continue;
|
||||
}
|
||||
|
||||
// Log-in member only
|
||||
if($member_info->member_srl)
|
||||
{
|
||||
if($item->default == 'member')
|
||||
{
|
||||
$grant->{$name} = true;
|
||||
|
||||
continue;
|
||||
}
|
||||
|
||||
// Log-in member only
|
||||
if($member_info->member_srl)
|
||||
else if($item->default == 'site')
|
||||
{
|
||||
if($item->default == 'member')
|
||||
// Grant if no information of the currently connected site exists
|
||||
if(!Context::get('site_module_info')->site_srl)
|
||||
{
|
||||
$grant->{$name} = true;
|
||||
}
|
||||
else if($item->default == 'site')
|
||||
else if(count($member_group))
|
||||
{
|
||||
// Grant if no information of the currently connected site exists
|
||||
if(!Context::get('site_module_info')->site_srl)
|
||||
{
|
||||
$grant->{$name} = true;
|
||||
}
|
||||
else if(count($member_group))
|
||||
{
|
||||
$grant->{$name} = true;
|
||||
}
|
||||
$grant->{$name} = true;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue