Support not_member permission in module.xml #2499

This commit is contained in:
Kijin Sung 2025-05-22 00:59:21 +09:00
parent 8e151d7cfa
commit 4916a589aa

View file

@ -356,21 +356,29 @@ class ModuleObject extends BaseObject
$permission = 'root'; $permission = 'root';
} }
// If permission is not or 'guest', Pass // If there is no permission or eveyone is allowed, pass
if(empty($permission) || $permission == 'guest') if (empty($permission) || $permission === 'guest' || $permission === 'everyone')
{ {
return true; return true;
} }
// If permission is 'member', check logged-in // If permission is 'member', the user must be logged in
else if($permission == 'member') elseif ($permission === 'member')
{ {
if($member_info->member_srl) if($member_info->member_srl)
{ {
return true; return true;
} }
} }
// If permission is 'not_member', the user must be logged out
elseif ($permission === 'not_member' || $permission === 'not-member')
{
if(!$member_info->member_srl)
{
return true;
}
}
// If permission is 'manager', check 'is user have manager privilege(granted)' // If permission is 'manager', check 'is user have manager privilege(granted)'
else if(preg_match('/^(manager(?::(.+))?|([a-z0-9\_]+)-managers)$/', $permission, $type)) elseif (preg_match('/^(manager(?::(.+))?|([a-z0-9\_]+)-managers)$/', $permission, $type))
{ {
// If permission is manager(:scope), check manager privilege and scope // If permission is manager(:scope), check manager privilege and scope
if ($grant->manager) if ($grant->manager)
@ -407,12 +415,12 @@ class ModuleObject extends BaseObject
} }
// If permission is 'root', false // If permission is 'root', false
// Because an administrator who have root privilege(granted) was passed already // Because an administrator who have root privilege(granted) was passed already
else if($permission == 'root') elseif ($permission == 'root')
{ {
return false; return false;
} }
// If grant name, check the privilege(granted) of the user // If grant name, check the privilege(granted) of the user
else if($grant_names = explode(',', $permission)) elseif ($grant_names = explode(',', $permission))
{ {
$privilege_list = array_keys((array) $this->xml_info->grant); $privilege_list = array_keys((array) $this->xml_info->grant);