Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung Nächste Überarbeitung | Vorhergehende Überarbeitung Nächste ÜberarbeitungBeide Seiten der Revision | ||
de:shibidp3per_attribute_consent_4_not_required [2017/04/04 14:21] – Petra Berg | de:shibidp3per_attribute_consent_4_not_required [2020/09/09 10:15] – Michael Simon | ||
---|---|---|---|
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 '' | + | |
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: | ||
- | * 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/ | ||
... | ... | ||
111 <!-- Display attribute release page. --> | 111 <!-- Display attribute release page. --> | ||
- | 112 | + | 112 |
113 < | 113 < | ||
114 < | 114 < | ||
Zeile 20: | Zeile 18: | ||
118 < | 118 < | ||
119 < | 119 < | ||
- | 120 < | + | 120 < |
121 | 121 | ||
- | 122 < | + | 122 < |
123 | 123 | ||
124 < | 124 < | ||
- | 125 < | + | 125 < |
126 | 126 | ||
... | ... | ||
- | </ | ||
+ | </ | ||
- | * 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 '' |
- | < | + | < |
... | ... | ||
- | <!-- Attribute Liste - Tabelle Start --> | + | <!-- Attribute Liste - Tabelle Start --> |
<table class=" | <table class=" | ||
< | < | ||
Zeile 51: | Zeile 49: | ||
if(checkboxes[i].type != " | if(checkboxes[i].type != " | ||
checkboxes[i].checked = source.checked; | checkboxes[i].checked = source.checked; | ||
- | } | + | } |
- | } | + | } |
- | } | + | } |
</ | </ | ||
<input type=" | <input type=" | ||
Zeile 78: | Zeile 76: | ||
<!-- not required, allow to check separably --> | <!-- not required, allow to check separably --> | ||
#set ($inputType = " | #set ($inputType = " | ||
- | #else | + | #else |
<!-- required, don't allow to check separably --> | <!-- required, don't allow to check separably --> | ||
#set ($inputType = " | #set ($inputType = " | ||
Zeile 93: | Zeile 91: | ||
</ | </ | ||
... | ... | ||
+ | |||
</ | </ | ||
Zeile 102: | Zeile 101: | ||
idp.attribute-release.requiredLabel = notwendig | idp.attribute-release.requiredLabel = notwendig | ||
... | ... | ||
+ | |||
</ | </ | ||
+ | |||
+ | Wird der AttributeQuery benutzt, muss auch hier der letzte Consent vom Nutzer beachtet werden. Dazu ist in '' | ||
Für das Propagieren des zusätzlichen Objektes in den Attribute-Release-Flow ist leider ein Neustart des IdP nötig. | Für das Propagieren des zusätzlichen Objektes in den Attribute-Release-Flow ist leider ein Neustart des IdP nötig. | ||
+ | |||
+ | Wer sich davor scheut, den System Flow zu editieren, kann die Referenz auch direkt im Velocity Template holen. Das ist nicht unbedingt schön, aber funktional getestet mit dem IDP4. Das Instanziieren eines neuen Objekts ist in Velocity nicht vorgesehen, deswegen sieht der Code etwas abenteuerlich aus. Die Änderungen beschränken sich dann auf die Datei views/ | ||
+ | < | ||
+ | ... | ||
+ | #set ($requestClass = $attributeReleaseContext.getClass().forName(" | ||
+ | #set ($isAttributeRequired = $attributeReleaseContext.getClass().forName(" | ||
+ | ... | ||
+ | |||
+ | </ | ||
+ | < | ||
+ | < | ||
+ | #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled && !($isAttributeRequired.apply($attribute))) | ||
+ | #set ($inputType = " | ||
+ | #else | ||
+ | #set ($inputType = " | ||
+ | #end | ||
+ | <input id=" | ||
+ | ... | ||
+ | |||
+ | </ | ||
+ | |||
+ | {{tag> | ||
+ | |||