mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-09 03:32:00 +09:00
코드 정리
This commit is contained in:
parent
9df5c915a8
commit
ddc7d31661
1 changed files with 55 additions and 59 deletions
|
|
@ -221,7 +221,7 @@ class ModuleObject extends Object
|
|||
}
|
||||
|
||||
// Check permission
|
||||
if($this->checkPermission($grant, false) !== true)
|
||||
if($this->checkPermission($grant) !== true)
|
||||
{
|
||||
$this->stop('msg_not_permitted_act');
|
||||
return false;
|
||||
|
|
@ -254,11 +254,10 @@ class ModuleObject extends Object
|
|||
/**
|
||||
* Check permission
|
||||
* @param object $grant privileges(granted) information of user
|
||||
* @param object $find if user doesn't have privilege(granted), find more privilege of the user
|
||||
* @param object $member_info member information
|
||||
* @return boolean success : true, fail : false
|
||||
* */
|
||||
function checkPermission($grant = null, $find = true, $member_info = null)
|
||||
function checkPermission($grant = null, $member_info = null)
|
||||
{
|
||||
// Get logged-in member information
|
||||
if(!$member_info)
|
||||
|
|
@ -281,79 +280,76 @@ class ModuleObject extends Object
|
|||
// Get permission types(guest, member, manager, root) of the currently requested action
|
||||
$permission = $this->xml_info->permission->{$this->act};
|
||||
|
||||
// If permission is 'guest', Pass
|
||||
if($permission == 'guest')
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// If admin action, set default permission
|
||||
if(empty($permission) && stripos($this->act, 'admin') !== false)
|
||||
{
|
||||
$permission = 'root';
|
||||
}
|
||||
|
||||
// If 'act' have permission, but user does not have privilege(granted), error
|
||||
if($permission)
|
||||
// If permission is not or 'guest', Pass
|
||||
if(empty($permission) || $permission == 'guest')
|
||||
{
|
||||
// If permission is 'member', check logged-in
|
||||
if($permission == 'member')
|
||||
return true;
|
||||
}
|
||||
// If permission is 'member', check logged-in
|
||||
else if($permission == 'member')
|
||||
{
|
||||
if(Context::get('is_logged'))
|
||||
{
|
||||
if(!Context::get('is_logged'))
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// If permission is 'manager', check 'is user have manager privilege(granted)'
|
||||
else if(preg_match('/^(manager|([a-z0-9\_]+)-managers)$/', $permission, $type))
|
||||
{
|
||||
if($grant->manager)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
// If permission is '*-managers', search modules to find manager privilege of the member
|
||||
if(Context::get('is_logged') && isset($type[2]))
|
||||
{
|
||||
// Manager privilege of the member is found by search all modules, Pass
|
||||
if($type[2] == 'all' && getModel('module')->findManagerPrivilege($member_info) !== false)
|
||||
{
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// If permission is 'manager', check 'is user have manager privilege(granted)'
|
||||
else if(preg_match('/^(manager|([a-z0-9\_]+)-managers)$/', $permission, $type))
|
||||
{
|
||||
if(!$grant->manager)
|
||||
// Manager privilege of the member is found by search same module as this module, Pass
|
||||
else if($type[2] == 'same' && getModel('module')->findManagerPrivilege($member_info, $this->module) !== false)
|
||||
{
|
||||
// If permission is '*-managers', search modules to find manager privilege of the member
|
||||
if(Context::get('is_logged') && $find && isset($type[2]))
|
||||
{
|
||||
// Manager privilege of the member is found by search all modules, Pass
|
||||
if($type[2] == 'all' && getModel('module')->findManagerPrivilege($member_info) !== false)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// Manager privilege of the member is found by search same module as this module, Pass
|
||||
else if($type[2] == 'same' && getModel('module')->findManagerPrivilege($member_info, $this->module) !== false)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
// Manager privilege of the member is found by search same module as the module, Pass
|
||||
else if(getModel('module')->findManagerPrivilege($member_info, $type[2]) !== false)
|
||||
{
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
return true;
|
||||
}
|
||||
}
|
||||
// If permission is 'root', Error!
|
||||
// Because an administrator who have root privilege(granted) was passed already
|
||||
else if($permission == 'root')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// If grant name, check the privilege(granted) of the user
|
||||
else if($grant_names = explode(',', $permission))
|
||||
{
|
||||
$privilege_list = array_keys((array) $this->xml_info->grant);
|
||||
|
||||
foreach($grant_names as $name)
|
||||
// Manager privilege of the member is found by search same module as the module, Pass
|
||||
else if(getModel('module')->findManagerPrivilege($member_info, $type[2]) !== false)
|
||||
{
|
||||
if(!in_array($name, $privilege_list) || !$grant->$name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
}
|
||||
// If permission is 'root', false
|
||||
// Because an administrator who have root privilege(granted) was passed already
|
||||
else if($permission == 'root')
|
||||
{
|
||||
return false;
|
||||
}
|
||||
// If grant name, check the privilege(granted) of the user
|
||||
else if($grant_names = explode(',', $permission))
|
||||
{
|
||||
$privilege_list = array_keys((array) $this->xml_info->grant);
|
||||
|
||||
foreach($grant_names as $name)
|
||||
{
|
||||
if(!in_array($name, $privilege_list) || !$grant->$name)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
return true;
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue