Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
de:shibidp3per_attribute_consent_4_not_required [2017/04/04 13:52] – angelegt Petra Berg | de:shibidp3per_attribute_consent_4_not_required [2019/12/18 08:35] – Ergänzung für AttributeQuery Filter Petra Berg | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Per Attribute Consent für vom SP nicht ' | ====== Per Attribute Consent für vom SP nicht ' | ||
- | In den allgemeinen Properties des IdP kann man einen 'per Attrbute Consent' | + | In den allgemeinen Properties |
Das macht im Sinne des Prozesses aber nur Sinn, für die Attribute, die vom SP nicht explizit über die Metadaten (mit dem Tag '' | Das macht im Sinne des Prozesses aber nur Sinn, für die Attribute, die vom SP nicht explizit über die Metadaten (mit dem Tag '' | ||
Zeile 7: | Zeile 7: | ||
Um das auf der Attribute-Release Seite zu berücksichtigen sind folgende zwei kleine Anpassungen vorzunehmen: | Um das auf der Attribute-Release Seite zu berücksichtigen sind folgende zwei kleine Anpassungen vorzunehmen: | ||
- | 1. Eine schon vorhandene IdP-Class in das Velocity Template propagieren. Dazu ist die Datei '' | + | * Eine schon vorhandene IdP-Class in das Velocity Template propagieren. Dazu ist die Datei '' |
<file xml system/ | <file xml system/ | ||
Zeile 31: | Zeile 31: | ||
- | 2. Im Velocity Template die Checkbox nur für non required Attribute anzeigen. Dazu die Datei '' | + | * Im Velocity Template die Checkbox nur für non-required Attribute anzeigen. Dazu die Datei '' |
<file html views/ | <file html views/ | ||
+ | ... | ||
+ | <!-- Attribute Liste - Tabelle Start --> | ||
+ | <table class=" | ||
+ | < | ||
+ | <tr> | ||
+ | <th colspan=" | ||
+ | # | ||
+ | </th> | ||
+ | <th> | ||
+ | <!-- check / uncheck all --> | ||
+ | #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled ) | ||
+ | <script language=" | ||
+ | function toggle(source) { | ||
+ | checkboxes = document.getElementsByName(' | ||
+ | for(var i=0, n=checkboxes.length; | ||
+ | if(checkboxes[i].type != " | ||
+ | checkboxes[i].checked = source.checked; | ||
+ | } | ||
+ | } | ||
+ | } | ||
+ | </ | ||
+ | <input type=" | ||
+ | #end | ||
+ | </th> | ||
+ | </tr> | ||
+ | </ | ||
+ | < | ||
+ | #foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values()) | ||
+ | <tr> | ||
+ | <td> | ||
+ | $encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute)) | ||
+ | </td> | ||
+ | <td> | ||
+ | #foreach ($value in $attribute.values) | ||
+ | < | ||
+ | <br /> | ||
+ | #end | ||
+ | </td> | ||
+ | <td> | ||
+ | #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled ) | ||
+ | <!-- $attributeRequired.apply($attribute)) return " | ||
+ | #if (!$attributeRequired.apply($attribute)) | ||
+ | <!-- not required, allow to check separably --> | ||
+ | #set ($inputType = " | ||
+ | #else | ||
+ | <!-- required, don't allow to check separably --> | ||
+ | #set ($inputType = " | ||
+ | <!-- inform the user, that is a required attribute --> | ||
+ | < | ||
+ | #end | ||
+ | #else | ||
+ | #set ($inputType = " | ||
+ | #end | ||
+ | <input id=" | ||
+ | </td> | ||
+ | </tr> | ||
+ | #end | ||
+ | </ | ||
+ | ... | ||
+ | </ | ||
+ | * Damit auch die Internationalisierung klappt, müssen die Message Properties noch ergänzt werden. | ||
+ | <file properties messages/ | ||
+ | ... | ||
+ | idp.attribute-release.ToggleAll = Alle | ||
+ | idp.attribute-release.requiredLabel = notwendig | ||
+ | ... | ||
</ | </ | ||
+ | Wird der AttributeQuery benutzt, muss auch hier der letzte Consent vom Nutzer beachtet werden. Dazu ist in | ||
+ | '' | ||
+ | parent Parameter auf den Wert '' | ||
+ | Damit werden auch AttributeQueries gegen die zuletzt gespeicherte Nutzereinwilligung gefiltert. Hat der Nutzer nur einmal zugestimmt, | ||
+ | werden keine Attribute übertragen. | ||
+ | |||
+ | Für das Propagieren des zusätzlichen Objektes in den Attribute-Release-Flow ist leider ein Neustart des IdP nötig. | ||