Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Letzte Überarbeitung Beide Seiten der Revision
de:shibidp3per_attribute_consent_4_not_required [2017/04/04 13:52]
Petra Berg angelegt
de:shibidp3per_attribute_consent_4_not_required [2017/04/04 14:21]
Petra Berg
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 ''​system/​flows/​intercept/​attribute_release_flow.xml''​ wie folgt zu ergänzen:+  * Eine schon vorhandene IdP-Class in das Velocity Template propagieren. Dazu ist die Datei ''​system/​flows/​intercept/​attribute_release_flow.xml''​ wie folgt zu ergänzen:
  
 <file xml system/​flows/​intercept/​attribute-release_flow.xml>​ <file xml system/​flows/​intercept/​attribute-release_flow.xml>​
Zeile 31: Zeile 31:
  
  
-2. Im Velocity Template die Checkbox nur für non required Attribute anzeigen. Dazu die Datei ''​views/​intercept/​attribute-release.vm''​ anpassen:+  * Im Velocity Template die Checkbox nur für non-required Attribute anzeigen. Dazu die Datei ''​views/​intercept/​attribute-release.vm''​ anpassen:
  
 <file html views/​intercept/​attribute-release.vm>​ <file html views/​intercept/​attribute-release.vm>​
 +...
 +            <!-- Attribute Liste - Tabelle Start --> ​
 +            <table class="​listing">​
 +                <​thead>​
 +                    <tr>
 +                        <th colspan="​2">​
 +                            #​springMessageText("​idp.attribute-release.attributesHeader",​ "​Information to be Provided to Service"​)
 +                        </th>
 +                        <th>
 +                            <!-- check / uncheck all -->
 +                            #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled )
 +                                <script language="​JavaScript">​
 +                                function toggle(source) {
 +                                    checkboxes = document.getElementsByName('​_shib_idp_consentIds'​);​
 +                                    for(var i=0, n=checkboxes.length;​i<​n;​i++) {
 +                                        if(checkboxes[i].type != "​hidden"​){
 +                                            checkboxes[i].checked = source.checked;​
 +                                        }   
 +                                    }   
 +                                }   
 +                                </​script>​
 +                                <input type="​checkbox"​ onClick="​toggle(this)"​ checked />#​springMessageText("​idp.attribute-release.ToggleAll",​ "​Alle"​)<​br/>​
 +                            #end
 +                        </th>
 +                    </tr>
 +                </​thead>​
 +                <​tbody>​
 +                    #foreach ($attribute in $attributeReleaseContext.getConsentableAttributes().values())
 +                        <tr>
 +                            <td>
 +                                $encoder.encodeForHTML($attributeDisplayNameFunction.apply($attribute))
 +                            </td>
 +                            <td>
 +                                #foreach ($value in $attribute.values)
 +                                    <​strong>​$encoder.encodeForHTML($value.getDisplayValue())</​strong>​
 +                                    <br />
 +                                #end
 +                            </td>
 +                            <td>
 +                                #if ($attributeReleaseFlowDescriptor.perAttributeConsentEnabled )
 +                                    <!-- $attributeRequired.apply($attribute)) return "​true"​ for required attributes -->
 +                                    #if (!$attributeRequired.apply($attribute))
 +                                        <!-- not required, allow to check separably -->
 +                                        #set ($inputType = "​checkbox"​)
 +                                    #else 
 +                                        <!-- required, don't allow to check separably -->
 +                                        #set ($inputType = "​hidden"​)
 +                                        <!-- inform the user, that is a required attribute -->
 +                                        <​strong>#​springMessageText("​idp.attribute-release.requiredLabel",​ "​notwendig"​)</​strong>​
 +                                    #end
 +                                #else
 +                                    #set ($inputType = "​hidden"​)
 +                                #end
 +                                <input id="​$attribute.id"​ type="​$inputType"​ name="​_shib_idp_consentIds"​ value="​$encoder.encodeForHTML($attribute.id)"​ checked \>
 +                            </td>
 +                        </tr>
 +                    #end
 +                </​tbody>​
 +...
 +</​file>​
  
 +  * Damit auch die Internationalisierung klappt, müssen die Message Properties noch ergänzt werden.
  
 +<file properties messages/​messages.properties>​
 +...
 +idp.attribute-release.ToggleAll = Alle
 +idp.attribute-release.requiredLabel = notwendig
 +...
 </​file>​ </​file>​
  
 +Für das Propagieren des zusätzlichen Objektes in den Attribute-Release-Flow ist leider ein Neustart des IdP nötig.
  
  • Zuletzt geändert: vor 2 Jahren