public static function doAssignments($a_usr_id, $a_data)
 {
     global $ilDB, $ilSetting, $rbacadmin, $ilLog;
     $query = "SELECT rule_id FROM shib_role_assignment ";
     $num_matches = 0;
     $res = $ilDB->query($query);
     while ($row = $res->fetchRow(DB_FETCHMODE_OBJECT)) {
         $rule = new ilShibbolethRoleAssignmentRule($row->rule_id);
         if ($rule->matches($a_data)) {
             $num_matches++;
             $ilLog->write(__METHOD__ . ': Assigned to role ' . ilObject::_lookupTitle($rule->getRoleId()));
             $rbacadmin->assignUser($rule->getRoleId(), $a_usr_id);
         }
     }
     // Assign to default if no matching found
     if (!$num_matches) {
         $ilLog->write(__METHOD__ . ': Assigned to default role ' . ilObject::_lookupTitle($ilSetting->get('shib_user_default_role')));
         $rbacadmin->assignUser($ilSetting->get('shib_user_default_role'), $a_usr_id);
     }
     return true;
 }