public function page_permissions() { if (isset($_POST['save-permissions'])) { PermissionObject::removeAllPermissions(); if (isset($_POST['permission'])) { foreach ($_POST['permission'] as $perm => $groups) { foreach ($groups as $grp => $d) { PermissionObject::addPermission($grp, $perm); } } } Notification::statusNotify(t("configuration enregistrée"), Notification::STATUS_SUCCESS); } $defined_permissions = PermissionObject::loadAllPermissions(); $df = array(); foreach ($defined_permissions as $p) { if (!isset($df[$p->pid])) { $df[$p->pid] = array(); } $df[$p->pid][$p->gid] = 1; } $p = new PermissionsManager(); $permissions = $p->scanForPermission(); $groups = GroupObject::loadAll(); $table = array(); $hcol = array(""); $hrow = array(); foreach ($permissions as $u => $t) { $hrow[] = $t; $row = array(); foreach ($groups as $gd => $g) { if ($u == 0) { $hcol[] = $g->label; } $pm = new PermissionObject(); $pm->loadByName($t); $tlabel = "permission[" . $g->gid . "][" . $pm->pid . "]"; if (isset($df[$pm->pid][$g->gid])) { $row[] = "<input type='checkbox' name='{$tlabel}' id='{$tlabel}' checked='checked'/>"; } else { $row[] = "<input type='checkbox' name='{$tlabel}' id='{$tlabel}' />"; } } $table[] = $row; } $theme = new Theme(); $theme->set_title(t("Permissions déclarées")); $table = Themed::tabling($table, $hcol, $hrow); $theme->add_to_body("<form method='POST' action=''>{$table} <input type='submit' name='save-permissions' value='" . t("Enregistrer") . "'/></form>"); $theme->process_theme(Theme::STRUCT_ADMIN); }