30 $objDefinition = $DIC[
'objDefinition'];
34 $rbacreview = $DIC[
'rbacreview'];
36 $this->objDefinition = $objDefinition;
39 $this->lng->loadLanguageModule(
"rbac");
43 $this->gui_obj = $a_gui_obj;
44 $this->obj = $a_gui_obj->object;
45 $this->red_id = $this->obj->getRefId();
49 $this->base_permissions[$p[
"ops_id"]] = $p[
"operation"];
50 $this->base_permissions_by_op[$p[
"operation"]] = $p[
"ops_id"];
53 $this->base_roles = $rbacreview->getParentRoleIds($this->obj->getRefId());
63 $rbacreview = $DIC[
'rbacreview'];
66 foreach ($this->base_roles as $k =>
$r) {
67 $ops = $rbacreview->getActiveOperationsOfRole($this->obj->getRefId(),
$r[
"rol_id"]);
70 if (!in_array($o, $ops)) {
75 if (in_array($o, $ops)) {
94 if (is_array($a_val)) {
95 foreach ($a_val as $p) {
96 if (in_array($p, $this->base_permissions)) {
97 $this->role_required_permissions[] = $this->base_permissions_by_op[$p];
120 if (is_array($a_val)) {
121 foreach ($a_val as $p) {
122 if (in_array($p, $this->base_permissions)) {
123 $this->role_prohibited_permissions[] = $this->base_permissions_by_op[$p];
146 if (is_array($a_val)) {
147 foreach ($a_val as $p) {
148 if (in_array($p, $this->base_permissions)) {
149 $this->permissions[$this->base_permissions_by_op[$p]] = $p;
170 $cmd = $this->ctrl->getCmd(
"showForm");
171 if (in_array($cmd, array(
"showForm",
"save"))) {
182 $this->tpl->setContent(
$form->getHTML());
193 $rbacreview = $DIC[
'rbacreview'];
195 include_once(
"Services/Form/classes/class.ilPropertyFormGUI.php");
200 foreach ($roles as
$r) {
201 $ops[$r[
"rol_id"]] = $rbacreview->getActiveOperationsOfRole($this->obj->getRefId(), $r[
"rol_id"]);
205 $perm_roles = array();
206 foreach ($ops as $r => $o2) {
207 foreach ($o2 as $o) {
208 $perm_roles[$o][] =
$r;
213 include_once
'./Services/AccessControl/classes/class.ilObjRole.php';
218 foreach ($roles as $k => $r) {
220 $cb->addOption($option);
222 if (is_array($perm_roles[$this->base_permissions_by_op[$p]])) {
223 $cb->setValue($perm_roles[$this->base_permissions_by_op[$p]]);
228 $form->addCommandButton(
"save", $this->lng->txt(
"save"));
230 $form->setTitle($this->lng->txt(
"rbac_permissions"));
231 $form->setFormAction($this->ctrl->getFormAction($this));
243 $rbacreview = $DIC[
'rbacreview'];
244 $rbacadmin = $DIC[
'rbacadmin'];
247 if (
$form->checkInput()) {
250 $ops = $rbacreview->getActiveOperationsOfRole($this->obj->getRefId(),
$r[
"rol_id"]);
253 $rbacadmin->revokePermission($this->obj->getRefId(),
$r[
"rol_id"]);
257 $roles =
$form->getInput($p);
258 if (!is_array($roles)) {
261 $o = $this->base_permissions_by_op[$p];
264 if (in_array($o, $ops) && !in_array(
$r[
"rol_id"], $roles)) {
265 if ((
$key = array_search($o, $ops)) !==
false) {
271 if (!in_array($o, $ops) && in_array(
$r[
"rol_id"], $roles)) {
277 $rbacadmin->grantPermission(
280 $this->obj->getRefId()
284 ilUtil::sendSuccess($this->lng->txt(
"msg_obj_modified"),
true);
285 $this->ctrl->redirect($this,
"");
287 $form->setValuesByPost();
288 $this->tpl->setContent(
$form->getHtml());
UI class for handling permissions that can be configured having the write permission for an object...
$role_prohibited_permissions
$role_required_permissions
This class represents an option in a checkbox group.
determineRoles()
Determine roles.
initPermissionForm()
Init permission form.
setPermissions($a_val)
Set permissions.
static _getOperationList($a_type=null)
get operation list by object type public static
if(isset($_POST['submit'])) $form
setRoleRequiredPermissions($a_val)
Set role required permissions (this permissions are required for a role to be listed) ...
setRoleProhibitedPermissions($a_val)
Set role prohibited permissions (this permissions are prohibited for a role to be listed) ...
getRoleProhibitedPermissions()
Get role prohibited permissions.
static _getTranslation($a_role_title)
getRoleRequiredPermissions()
Get role required permissions.
getPermissions()
Get permissions.
executeCommand()
Execute command.
__construct($a_gui_obj)
Constructor.