30 public static function getAllRules(): array
33 $db = $DIC->database();
38 $query =
"SELECT rule_id FROM shib_role_assignment ORDER BY rule_id";
39 $res = $db->query($query);
50 $db = $DIC->database();
51 $query =
"SELECT COUNT(*) num FROM shib_role_assignment ";
52 $res = $db->query($query);
54 return (
int) ($row->num ?? 0);
60 $db = $DIC->database();
61 $rbac_admin = $DIC->rbac()->admin();
62 $rbac_review = $DIC->rbac()->review();
63 $logger = $DIC->logger()->root();
64 $query =
"SELECT rule_id,add_on_update,remove_on_update FROM shib_role_assignment " .
"WHERE add_on_update = 1 OR remove_on_update = 1";
65 $res = $db->query($query);
69 if ($row->add_on_update && $rule->doesMatch($a_data)) {
71 $rbac_admin->assignUser($rule->getRoleId(), $a_usr_id);
73 if ($row->remove_on_update && !$rule->doesMatch($a_data)) {
75 $rbac_admin->deassignUser($rule->getRoleId(), $a_usr_id);
79 if (!array_intersect($rbac_review->assignedRoles($a_usr_id), $rbac_review->getGlobalRoles())) {
81 $default_role = $settings->getDefaultRole();
83 $rbac_admin->assignUser($default_role, $a_usr_id);
89 public static function doAssignments(
int $a_usr_id, array $a_data): bool
92 $db = $DIC->database();
93 $rbac_admin = $DIC->rbac()->admin();
94 $logger = $DIC->logger()->root();
95 $query =
"SELECT rule_id,add_on_update FROM shib_role_assignment WHERE add_on_update = 1";
97 $res = $db->query($query);
100 if ($rule->doesMatch($a_data)) {
103 $rbac_admin->assignUser($rule->getRoleId(), $a_usr_id);
107 if ($num_matches === 0) {
109 $default_role = $settings->getDefaultRole();
111 $rbac_admin->assignUser($default_role, $a_usr_id);
117 public static function callPlugin(
string $a_plugin_id, array $a_user_data): bool
120 foreach ($DIC[
'component.factory']->getActivePluginsInSlot(
'shibhk') as
$plugin) {
121 if ($plugin->checkRoleAssignment($a_plugin_id, $a_user_data)) {
static doAssignments(int $a_usr_id, array $a_data)
Shibboleth role assignment rules.
static callPlugin(string $a_plugin_id, array $a_user_data)
static _lookupTitle(int $obj_id)
static updateAssignments(int $a_usr_id, array $a_data)
This file is part of ILIAS, a powerful learning management system published by ILIAS open source e-Le...
Shibboleth role assignment rule.