19 require_once(BASE.
"wcmf/lib/presentation/class.Controller.php");
20 require_once(BASE.
"wcmf/lib/presentation/class.WCMFInifileParser.php");
21 require_once(BASE.
"wcmf/lib/persistence/class.PersistenceFacade.php");
22 require_once(BASE.
"wcmf/lib/security/class.RightsManager.php");
23 require_once(BASE.
"wcmf/lib/util/class.FormUtil.php");
24 require_once(BASE.
"wcmf/lib/util/class.ObjectFactory.php");
52 if(strlen($this->_request->getValue(
'oid')) == 0)
74 $userManager = &$objectFactory->createInstanceFromConfig(
'implementation',
'UserManager');
81 if ($this->_request->getAction() ==
'save')
83 $resource = $this->_request->getValue(
'oid');
87 foreach($configFiles as $configFile)
90 foreach ($rightNames as $action)
92 $existingRight = $rightsManager->getRight($configFile, $resource, $context, $action);
95 $controlName = $action.
"_allow_".str_replace(
".",
"", $configFile);
96 $newAllowedRoles = $this->_request->getValue($controlName);
98 if (is_array($newAllowedRoles))
99 foreach ($newAllowedRoles as $role)
100 if (!is_array($existingRight[
'allow']) || !in_array($role, $existingRight[
'allow']))
101 $rightsManager->createPermission($configFile, $resource, $context, $action, $role,
RIGHT_MODIFIER_ALLOW);
103 if (is_array($existingRight[
'allow']))
104 foreach ($existingRight[
'allow'] as $role)
105 if (!is_array($newAllowedRoles) || !in_array($role, $this->_request->getValue($controlName)))
106 $rightsManager->removePermission($configFile, $resource, $context, $action, $role);
109 $controlName = $action.
"_deny_".str_replace(
".",
"", $configFile);
110 $newDeniedRoles = $this->_request->getValue($controlName);
112 if (is_array($newDeniedRoles))
113 foreach ($newDeniedRoles as $role)
114 if (!is_array($existingRight[
'deny']) || !in_array($role, $existingRight[
'deny']))
115 $rightsManager->createPermission($configFile, $resource, $context, $action, $role,
RIGHT_MODIFIER_DENY);
117 if (is_array($existingRight[
'deny']))
118 foreach ($existingRight[
'deny'] as $role)
119 if (!is_array($newDeniedRoles) || !in_array($role, $this->_request->getValue($controlName)))
120 $rightsManager->removePermission($configFile, $resource, $context, $action, $role);
127 foreach($configFiles as $configFile)
130 $right = $rightsManager->getRight($configFile, $this->_request->getValue(
'oid'),
'', $action);
132 foreach ($right as $name => $roles)
133 $right[$name] = join(
',', $roles);
134 $rights[$configFile][$action] = $right;
138 $this->_response->setValue(
'oid', $this->_request->getValue(
'oid'));
139 $this->_response->setValue(
'allroles', join(
"|", $userManager->listRoles()));
140 $this->_response->setValue(
'rights', $rights);
141 $this->_response->setValue(
'rightnames', $rightNames);
145 $this->_response->setAction(
'ok');
const RIGHT_MODIFIER_ALLOW
EditRightsController is used to edit rights on a resource.
Controller is the base class of all controllers. If a Controller has a view it is expected to reside ...
const RIGHT_MODIFIER_DENY