mirror of
https://github.com/Karaka-Management/oms-Admin.git
synced 2026-01-28 20:48:41 +00:00
Fix permission tables
This commit is contained in:
parent
f447df709d
commit
e88d20d081
|
|
@ -81,16 +81,14 @@ class Installer extends InstallerAbstract
|
|||
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'group_permission` (
|
||||
`group_permission_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`group_permission_group` int(11) NOT NULL,
|
||||
`group_permission_from` varchar(50) DEFAULT NULL,
|
||||
`group_permission_for` varchar(50) DEFAULT NULL,
|
||||
`group_permission_id1` int(11) DEFAULT NULL,
|
||||
`group_permission_id2` int(11) DEFAULT NULL,
|
||||
`group_permission_id3` int(11) DEFAULT NULL,
|
||||
`group_permission_r` int(1) DEFAULT NULL,
|
||||
`group_permission_w` int(1) DEFAULT NULL,
|
||||
`group_permission_m` int(1) DEFAULT NULL,
|
||||
`group_permission_d` int(1) DEFAULT NULL,
|
||||
`group_permission_p` int(1) DEFAULT NULL,
|
||||
`group_permission_unit` int(11) DEFAULT NULL,
|
||||
`group_permission_app` int(11) DEFAULT NULL,
|
||||
`group_permission_module` int(11) DEFAULT NULL,
|
||||
`group_permission_from` int(11) DEFAULT NULL,
|
||||
`group_permission_type` int(11) DEFAULT NULL,
|
||||
`group_permission_element` int(11) DEFAULT NULL,
|
||||
`group_permission_component` int(11) DEFAULT NULL,
|
||||
`group_permission_permission` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`group_permission_id`),
|
||||
KEY `group_permission_group` (`group_permission_group`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
|
||||
|
|
@ -212,16 +210,14 @@ class Installer extends InstallerAbstract
|
|||
'CREATE TABLE if NOT EXISTS `' . $dbPool->get('core')->prefix . 'account_permission` (
|
||||
`account_permission_id` int(11) NOT NULL AUTO_INCREMENT,
|
||||
`account_permission_account` int(11) NOT NULL,
|
||||
`account_permission_from` varchar(50) DEFAULT NULL,
|
||||
`account_permission_for` varchar(50) DEFAULT NULL,
|
||||
`account_permission_id1` int(11) DEFAULT NULL,
|
||||
`account_permission_id2` int(11) DEFAULT NULL,
|
||||
`account_permission_id3` int(11) DEFAULT NULL,
|
||||
`account_permission_r` int(1) DEFAULT NULL,
|
||||
`account_permission_w` int(1) DEFAULT NULL,
|
||||
`account_permission_m` int(1) DEFAULT NULL,
|
||||
`account_permission_d` int(1) DEFAULT NULL,
|
||||
`account_permission_p` int(1) DEFAULT NULL,
|
||||
`account_permission_unit` int(11) DEFAULT NULL,
|
||||
`account_permission_app` int(11) DEFAULT NULL,
|
||||
`account_permission_module` int(11) DEFAULT NULL,
|
||||
`account_permission_from` int(11) DEFAULT NULL,
|
||||
`account_permission_type` int(11) DEFAULT NULL,
|
||||
`account_permission_element` int(11) DEFAULT NULL,
|
||||
`account_permission_component` int(11) DEFAULT NULL,
|
||||
`account_permission_permission` int(11) DEFAULT NULL,
|
||||
PRIMARY KEY (`account_permission_id`),
|
||||
KEY `account_permission_account` (`account_permission_account`)
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;'
|
||||
|
|
|
|||
|
|
@ -88,26 +88,6 @@ class AccountMapper extends DataMapperAbstract
|
|||
if($objId === null || !is_scalar($objId)) {
|
||||
return $objId;
|
||||
}
|
||||
|
||||
$query = new Builder(self::$db);
|
||||
|
||||
$query->prefix(self::$db->getPrefix())
|
||||
->insert(
|
||||
'account_permission_account',
|
||||
'account_permission_from',
|
||||
'account_permission_for',
|
||||
'account_permission_id1',
|
||||
'account_permission_id2',
|
||||
'account_permission_r',
|
||||
'account_permission_w',
|
||||
'account_permission_m',
|
||||
'account_permission_d',
|
||||
'account_permission_p'
|
||||
)
|
||||
->into('account_permission')
|
||||
->values(1, 'account', 'account', 1, $objId, 1, 1, 1, 1, 1);
|
||||
|
||||
self::$db->con->prepare($query->toSql())->execute();
|
||||
} catch (\Exception $e) {
|
||||
var_dump($e->getMessage());
|
||||
|
||||
|
|
|
|||
|
|
@ -42,42 +42,16 @@ class PermissionManager
|
|||
return $this->id;
|
||||
}
|
||||
|
||||
public function hasPermission(int $permission, int $unit = null, int $app = null, int $module = null, int $type = null, $element = null) : bool
|
||||
public function hasPermission(int $permission, int $unit = null, int $app = null, int $module = null, int $type = null, $element = null, $component = null) : bool
|
||||
{
|
||||
if(!isset($unit, $app, $module, $type, $element)) {
|
||||
return ($permission | $this->permissions['permission']->getPermission()) === $this->permissions['permission']->getPermission();
|
||||
} elseif(isset($unit) && !isset($app, $module, $type, $element)) {
|
||||
return ($permission | $this->permissions['permission']->getPermission()) === $this->permissions['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['permission']->getPermission()) === $this->permissions['unit'][$unit]['permission']->getPermission();
|
||||
} elseif(isset($unit, $app) && !isset($module, $type, $element)) {
|
||||
return ($permission | $this->permissions['permission']->getPermission()) === $this->permissions['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['permission']->getPermission()) === $this->permissions['unit'][$unit]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission();
|
||||
} elseif(isset($unit, $app, $module) && !isset($type, $element)) {
|
||||
return ($permission | $this->permissions['permission']->getPermission()) === $this->permissions['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['permission']->getPermission()) === $this->permissions['unit'][$unit]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['permission']->getPermission();
|
||||
} elseif(isset($unit, $app, $module, $type) && !isset($element)) {
|
||||
return ($permission | $this->permissions['permission']->getPermission()) === $this->permissions['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['permission']->getPermission()) === $this->permissions['unit'][$unit]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['type'][$type]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['type'][$type]['permission']->getPermission();
|
||||
} elseif(isset($unit, $app, $module, $type) && !isset($element)) {
|
||||
return ($permission | $this->permissions['permission']->getPermission()) === $this->permissions['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['permission']->getPermission()) === $this->permissions['unit'][$unit]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['type'][$type]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['type'][$type]['permission']->getPermission()
|
||||
|| ($permission | $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['type'][$type]['element'][$element]['permission']->getPermission()) === $this->permissions['unit'][$unit]['app'][$app]['module'][$mdoule]['type'][$type]['element'][$element]['permission']->getPermission();
|
||||
}
|
||||
}
|
||||
|
||||
public function hasPermission2(int $permission, int $unit = null, int $app = null, int $module = null, int $type = null, $element = null) : bool
|
||||
{
|
||||
foreach($this->permissions as $permission) {
|
||||
if(($permissions | $permission->getPermission()) === $permission->getPermission()) {
|
||||
foreach($this->permissions as $p) {
|
||||
if(($p->getUnit() === $unit || $p->getUnit() === null)
|
||||
&& ($p->getApp() === $app || $p->getApp() === null)
|
||||
&& ($p->getModule() === $module || $p->getModule() === null)
|
||||
&& ($p->getType() === $type || $p->getType() === null)
|
||||
&& ($p->getElement() === $element || $p->getElement() === null)
|
||||
&& ($p->getComponent() === $component || $p->getComponent() === null)
|
||||
&& ($permissions | $p->getPermission()) === $p->getPermission()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user