33 public static function getAllRules(): array
36 $db = $DIC->database();
41 $query =
"SELECT rule_id FROM shib_role_assignment ORDER BY rule_id";
42 $res = $db->query($query);
53 $db = $DIC->database();
54 $query =
"SELECT COUNT(*) num FROM shib_role_assignment ";
55 $res = $db->query($query);
57 return (
int) ($row->num ?? 0);
63 $db = $DIC->database();
64 $rbac_admin = $DIC->rbac()->admin();
65 $rbac_review = $DIC->rbac()->review();
66 $logger = $DIC->logger()->root();
67 $query =
"SELECT rule_id,add_on_update,remove_on_update FROM shib_role_assignment " .
"WHERE add_on_update = 1 OR remove_on_update = 1";
68 $res = $db->query($query);
72 if ($row->add_on_update && $rule->doesMatch($a_data)) {
74 $rbac_admin->assignUser($rule->getRoleId(), $a_usr_id);
76 if ($row->remove_on_update && !$rule->doesMatch($a_data)) {
78 $rbac_admin->deassignUser($rule->getRoleId(), $a_usr_id);
82 if (!array_intersect($rbac_review->assignedRoles($a_usr_id), $rbac_review->getGlobalRoles())) {
84 $default_role = $settings->getDefaultRole();
86 $rbac_admin->assignUser($default_role, $a_usr_id);
92 public static function doAssignments(
int $a_usr_id, array $a_data): bool
95 $db = $DIC->database();
96 $rbac_admin = $DIC->rbac()->admin();
97 $logger = $DIC->logger()->root();
98 $query =
"SELECT rule_id,add_on_update FROM shib_role_assignment WHERE add_on_update = 1";
100 $res = $db->query($query);
103 if ($rule->doesMatch($a_data)) {
106 $rbac_admin->assignUser($rule->getRoleId(), $a_usr_id);
110 if ($num_matches === 0) {
112 $default_role = $settings->getDefaultRole();
114 $rbac_admin->assignUser($default_role, $a_usr_id);
120 public static function callPlugin(
string $a_plugin_id, array $a_user_data): bool
123 foreach ($DIC[
'component.factory']->getActivePluginsInSlot(
'shibhk') as
$plugin) {
124 if ($plugin->checkRoleAssignment($a_plugin_id, $a_user_data)) {
static doAssignments(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...
static callPlugin(string $a_plugin_id, array $a_user_data)
static _lookupTitle(int $obj_id)
static updateAssignments(int $a_usr_id, array $a_data)
Class ilShibbolethSettings.
Shibboleth role assignment rule.