mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-05-10 04:24:14 +09:00
Merge site admin privileges with normal admin
This commit is contained in:
parent
107600f19c
commit
4bde9f6c7b
2 changed files with 6 additions and 84 deletions
|
|
@ -784,53 +784,6 @@ class moduleController extends module
|
||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @brief Change the site administrator
|
|
||||||
*/
|
|
||||||
function insertSiteAdmin($site_srl, $arr_admins)
|
|
||||||
{
|
|
||||||
// Remove the site administrator
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->site_srl = $site_srl;
|
|
||||||
|
|
||||||
$output = executeQuery('module.deleteSiteAdmin', $args);
|
|
||||||
|
|
||||||
if(!$output->toBool()) return $output;
|
|
||||||
// Get user id of an administrator
|
|
||||||
if(!is_array($arr_admins) || !count($arr_admins)) return new Object();
|
|
||||||
foreach($arr_admins as $key => $user_id)
|
|
||||||
{
|
|
||||||
if(!trim($user_id)) continue;
|
|
||||||
$admins[] = trim($user_id);
|
|
||||||
}
|
|
||||||
if(!count($admins)) return new Object();
|
|
||||||
|
|
||||||
$oMemberModel = getModel('member');
|
|
||||||
$member_config = $oMemberModel->getMemberConfig();
|
|
||||||
if($member_config->identifier == 'email_address')
|
|
||||||
{
|
|
||||||
$args->email_address = '\''.implode('\',\'',$admins).'\'';
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$args->user_ids = '\''.implode('\',\'',$admins).'\'';
|
|
||||||
}
|
|
||||||
$output = executeQueryArray('module.getAdminSrls', $args);
|
|
||||||
if(!$output->toBool()||!$output->data) return $output;
|
|
||||||
|
|
||||||
foreach($output->data as $key => $val)
|
|
||||||
{
|
|
||||||
unset($args);
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->site_srl = $site_srl;
|
|
||||||
$args->member_srl = $val->member_srl;
|
|
||||||
$output = executeQueryArray('module.insertSiteAdmin', $args);
|
|
||||||
if(!$output->toBool()) return $output;
|
|
||||||
}
|
|
||||||
Rhymix\Framework\Cache::delete("site_and_module:site_admins:$site_srl");
|
|
||||||
return new Object();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief Specify the admin ID to a module
|
* @brief Specify the admin ID to a module
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -1583,36 +1583,14 @@ class moduleModel extends module
|
||||||
*/
|
*/
|
||||||
function isSiteAdmin($member_info, $site_srl = null)
|
function isSiteAdmin($member_info, $site_srl = null)
|
||||||
{
|
{
|
||||||
if (!$member_info || !$member_info->member_srl)
|
if ($member_info && $member_info->is_admin == 'Y')
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
if ($member_info->is_admin == 'Y')
|
|
||||||
{
|
{
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
if ($site_srl === null)
|
else
|
||||||
{
|
{
|
||||||
$site_module_info = Context::get('site_module_info');
|
return false;
|
||||||
if(!$site_module_info) return false;
|
|
||||||
$site_srl = $site_module_info->site_srl;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$site_srl = $site_srl ?: 0;
|
|
||||||
$site_admins = Rhymix\Framework\Cache::get("site_and_module:site_admins:$site_srl");
|
|
||||||
if ($site_admins === null)
|
|
||||||
{
|
|
||||||
$args = new stdClass;
|
|
||||||
$args->site_srl = $site_srl;
|
|
||||||
$output = executeQueryArray('module.isSiteAdmin', $args);
|
|
||||||
$site_admins = array();
|
|
||||||
foreach ($output->data as $site_admin)
|
|
||||||
{
|
|
||||||
$site_admins[$site_admin->member_srl] = true;
|
|
||||||
}
|
|
||||||
Rhymix\Framework\Cache::set("site_and_module:site_admins:$site_srl", $site_admins, 0, true);
|
|
||||||
}
|
|
||||||
return isset($site_admins[$member_info->member_srl]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1620,10 +1598,7 @@ class moduleModel extends module
|
||||||
*/
|
*/
|
||||||
function getSiteAdmin($site_srl)
|
function getSiteAdmin($site_srl)
|
||||||
{
|
{
|
||||||
$args = new stdClass;
|
return array();
|
||||||
$args->site_srl = $site_srl;
|
|
||||||
$output = executeQueryArray('module.getSiteAdmin', $args);
|
|
||||||
return $output->data;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
@ -1927,19 +1902,13 @@ class moduleModel extends module
|
||||||
if(!$module_srl)
|
if(!$module_srl)
|
||||||
{
|
{
|
||||||
$grant->access = true;
|
$grant->access = true;
|
||||||
if($this->isSiteAdmin($member_info, $module_info->site_srl))
|
$grant->is_admin = $grant->manager = $grant->is_site_admin = ($member_info->is_admin == 'Y') ? true : false;
|
||||||
{
|
|
||||||
$grant->access = $grant->manager = $grant->is_site_admin = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
$grant->is_admin = $grant->manager = ($member_info->is_admin == 'Y') ? true : false;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// If module_srl exists
|
// If module_srl exists
|
||||||
// Get a type of granted permission
|
// Get a type of granted permission
|
||||||
$grant->access = $grant->manager = $grant->is_site_admin = ($member_info->is_admin=='Y'||$this->isSiteAdmin($member_info, $module_info->site_srl))?true:false;
|
$grant->access = $grant->is_admin = $grant->manager = $grant->is_site_admin = ($member_info->is_admin == 'Y') ? true : false;
|
||||||
$grant->is_admin = ($member_info->is_admin == 'Y') ? true : false;
|
|
||||||
|
|
||||||
// If a just logged-in member is, check if the member is a module administrator
|
// If a just logged-in member is, check if the member is a module administrator
|
||||||
if (!$grant->manager && $member_info->member_srl && $this->isModuleAdmin($member_info, $module_srl))
|
if (!$grant->manager && $member_info->member_srl && $this->isModuleAdmin($member_info, $module_srl))
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue