Fix #955 exclude inaccessible modules from integration search

This commit is contained in:
Kijin Sung 2017-12-06 14:04:36 +09:00
parent f0ad692650
commit fbd9af16a9
3 changed files with 101 additions and 27 deletions

View file

@ -30,21 +30,24 @@ class integration_searchModel extends module
*/
function getDocuments($target, $module_srls_list, $search_target, $search_keyword, $page=1, $list_count = 20)
{
if(is_array($module_srls_list)) $module_srls_list = implode(',',$module_srls_list);
if(!is_array($module_srls_list))
{
$module_srls_list = $module_srl_list ? explode(',', $module_srls_list) : array();
}
$accessible_modules = array_keys(getModel('module')->getAccessibleModuleList());
$args = new stdClass();
if($target == 'exclude')
{
$module_srls_list .= ',0'; // exclude 'trash'
if ($module_srls_list{0} == ',') $module_srls_list = substr($module_srls_list, 1);
$args->exclude_module_srl = $module_srls_list;
$args->module_srl = $accessible_modules;
$args->exclude_module_srl = array_diff($module_srls_list, $accessible_modules);
}
else
{
$args->module_srl = $module_srls_list;
$args->exclude_module_srl = '0'; // exclude 'trash'
$args->module_srl = array_intersect($module_srls_list, $accessible_modules);
$args->exclude_module_srl = array(0); // exclude 'trash'
}
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
@ -73,21 +76,23 @@ class integration_searchModel extends module
*/
function getComments($target, $module_srls_list, $search_keyword, $page=1, $list_count = 20)
{
$args = new stdClass();
if(is_array($module_srls_list))
if(!is_array($module_srls_list))
{
if (count($module_srls_list) > 0) $module_srls = implode(',',$module_srls_list);
$module_srls_list = $module_srl_list ? explode(',', $module_srls_list) : array();
}
$accessible_modules = array_keys(getModel('module')->getAccessibleModuleList());
$args = new stdClass();
if($target == 'exclude')
{
$args->module_srl = $accessible_modules;
$args->exclude_module_srl = array_diff($module_srls_list, $accessible_modules);
}
else
{
if($module_srls_list)
{
$module_srls = $module_srls_list;
}
$args->module_srl = array_intersect($module_srls_list, $accessible_modules);
$args->exclude_module_srl = array(0); // exclude 'trash'
}
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args->page = $page;
$args->list_count = $list_count;
@ -120,12 +125,25 @@ class integration_searchModel extends module
{
$oTrackbackModel = getAdminModel('trackback');
if(!$oTrackbackModel) return new BaseObject();
$args = new stdClass();
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
if(!is_array($module_srls_list))
{
$module_srls_list = $module_srl_list ? explode(',', $module_srls_list) : array();
}
$accessible_modules = array_keys(getModel('module')->getAccessibleModuleList());
$args = new stdClass();
if($target == 'exclude')
{
$args->module_srl = $accessible_modules;
$args->exclude_module_srl = array_diff($module_srls_list, $accessible_modules);
}
else
{
$args->module_srl = array_intersect($module_srls_list, $accessible_modules);
$args->exclude_module_srl = array(0); // exclude 'trash'
}
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;
@ -153,12 +171,24 @@ class integration_searchModel extends module
*/
function _getFiles($target, $module_srls_list, $search_keyword, $page, $list_count, $direct_download = 'Y')
{
$args = new stdClass();
if(!is_array($module_srls_list))
{
$module_srls_list = $module_srl_list ? explode(',', $module_srls_list) : array();
}
$accessible_modules = array_keys(getModel('module')->getAccessibleModuleList());
if(is_array($module_srls_list)) $module_srls = implode(',',$module_srls_list);
else $module_srls = $module_srls_list;
if($target == 'exclude') $args->exclude_module_srl = $module_srls;
else $args->module_srl = $module_srls;
$args = new stdClass();
if($target == 'exclude')
{
$args->module_srl = $accessible_modules;
$args->exclude_module_srl = array_diff($module_srls_list, $accessible_modules);
}
else
{
$args->module_srl = array_intersect($module_srls_list, $accessible_modules);
$args->exclude_module_srl = array(0); // exclude 'trash'
}
$args->page = $page;
$args->list_count = $list_count;
$args->page_count = 10;