34 public static function getAllRules(): array
37 $db =
$DIC->database();
42 $query =
"SELECT rule_id FROM shib_role_assignment ORDER BY rule_id";
43 $res = $db->query($query);
54 $db =
$DIC->database();
55 $query =
"SELECT COUNT(*) num FROM shib_role_assignment ";
56 $res = $db->query($query);
58 return (
int) ($row->num ?? 0);
64 $db =
$DIC->database();
65 $rbac_admin =
$DIC->rbac()->admin();
66 $rbac_review =
$DIC->rbac()->review();
67 $logger =
$DIC->logger()->root();
68 $query =
"SELECT rule_id,add_on_update,remove_on_update FROM shib_role_assignment " .
"WHERE add_on_update = 1 OR remove_on_update = 1";
69 $res = $db->query($query);
73 if ($row->add_on_update && $rule->doesMatch($a_data)) {
75 $rbac_admin->assignUser($rule->getRoleId(), $a_usr_id);
77 if ($row->remove_on_update && !$rule->doesMatch($a_data)) {
79 $rbac_admin->deassignUser($rule->getRoleId(), $a_usr_id);
83 if (!array_intersect($rbac_review->assignedRoles($a_usr_id), $rbac_review->getGlobalRoles())) {
85 $default_role = $settings->getDefaultRole();
87 $rbac_admin->assignUser($default_role, $a_usr_id);
93 public static function doAssignments(
int $a_usr_id, array $a_data): bool
96 $db =
$DIC->database();
97 $rbac_admin =
$DIC->rbac()->admin();
98 $logger =
$DIC->logger()->root();
99 $query =
"SELECT rule_id,add_on_update FROM shib_role_assignment WHERE add_on_update = 1";
101 $res = $db->query($query);
104 if ($rule->doesMatch($a_data)) {
107 $rbac_admin->assignUser($rule->getRoleId(), $a_usr_id);
111 if ($num_matches === 0) {
113 $default_role = $settings->getDefaultRole();
115 $rbac_admin->assignUser($default_role, $a_usr_id);
121 public static function callPlugin(
string $a_plugin_id, array $a_user_data): bool
124 foreach (
$DIC[
'component.factory']->getActivePluginsInSlot(
'shibhk') as
$plugin) {
125 if (
$plugin->checkRoleAssignment($a_plugin_id, $a_user_data)) {
static _lookupTitle(int $obj_id)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
static doAssignments(int $a_usr_id, array $a_data)
static updateAssignments(int $a_usr_id, array $a_data)
static callPlugin(string $a_plugin_id, array $a_user_data)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...