Changeset 6245


Ignore:
Timestamp:
24/12/09 12:12:44 (10 years ago)
Author:
pjkersha
Message:

Completed OpenID Provider interface content to enable user to see and select which AX items to return to the Relying Party. OpenIDProviderMiddleware.do_allow method needs fixing to affect selections made by the user allow/deny return of individual attributes to the RP.

Location:
TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/wsgi
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/wsgi/authn.py

    r6069 r6245  
    555555                # eval is safe here because AuthKit cookie is signed and  
    556556                # AuthKit middleware checks for tampering 
    557                 if SessionHandlerMiddleware.SM_URI_SESSION_KEYNAME not in \ 
    558                    session or \ 
    559                    SessionHandlerMiddleware.ID_SESSION_KEYNAME not in session: 
     557                if (SessionHandlerMiddleware.SM_URI_SESSION_KEYNAME not in  
     558                    session or  
     559                    SessionHandlerMiddleware.ID_SESSION_KEYNAME not in session): 
    560560                     
    561561                    axData = eval(remoteUserData) 
    562                     if isinstance(axData, dict) and \ 
    563                        SessionHandlerMiddleware.AX_KEYNAME in axData: 
     562                    if (isinstance(axData, dict) and  
     563                        SessionHandlerMiddleware.AX_KEYNAME in axData): 
    564564                         
    565565                        ax = axData[SessionHandlerMiddleware.AX_KEYNAME] 
  • TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/wsgi/openid/provider/renderinginterface/genshi/__init__.py

    r6243 r6245  
    1818from genshi.template import TemplateLoader 
    1919from openid.consumer import discover 
    20 from openid.server.server  import CheckIDRequest 
     20from openid.server.server import CheckIDRequest, OpenIDResponse 
    2121from openid.extensions import ax 
    2222 
     
    367367        self.trust_root = oidRequest.trust_root 
    368368        self.oidRequest = oidRequest 
    369         self.oidResponse = oidResponse 
     369         
     370        # Get all the content namespaced as AX type 
     371        axArgs = oidResponse.fields.getArgs(ax.AXMessage.ns_uri) 
     372         
     373        # Add to access object for convenient access based on type URI 
     374        axFetchResponse = ax.FetchResponse() 
     375        axFetchResponse.parseExtensionArgs(axArgs)   
     376         
    370377        ax_req = ax.FetchRequest.fromOpenIDRequest(oidRequest) 
    371378        axRequestedAttr = ax_req.requested_attributes 
     
    394401         
    395402        response = self._render(GenshiRendering.DECIDE_PAGE_TMPL_NAME, 
    396                                 axRequestedAttr=axRequestedAttr) 
     403                                axRequestedAttr=axRequestedAttr, 
     404                                axFetchResponse=axFetchResponse) 
    397405        self.identityURI = '' 
    398406         
  • TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/wsgi/openid/provider/renderinginterface/genshi/templates/decide.html

    r6243 r6245  
    3030                                                <tr> 
    3131                                                    <th>Item</th> 
     32                                                    <th>Value</th> 
    3233                                                    <th>Return Item to Requesting Site?</th> 
    3334                                                </tr> 
    3435                                                                        <tr py:for="i in axRequestedAttr.values()"> 
    3536                                                                            <td>${i.alias or i.type_uri}</td> 
    36                                                                             <td py:if="i.required"><input type="checkbox" id="${i}.returnToRP" name="${i}.returnToRP" checked="checked" value="yes" disabled="disabled"/></td> 
    37                                                                             <td py:if="not i.required"><input type="checkbox" id="${i}.returnToRP" name="${i}.returnToRP" checked="checked" value="yes"/></td> 
     37                                                                            <td>${axFetchResponse.getSingle(i.type_uri, default="error - item not available")}</td> 
     38                                                                            <?python 
     39                                                                               # Disable checkbox if attribute is required and not optional 
     40                                                                               nameAttr = 'ax.%s' % i.alias 
     41                                                                               if i.required: 
     42                                                                                   inputAttr = {'disabled': 'disabled'} 
     43                                                                               else: 
     44                                                                                   inputAttr = {'id': i.alias, 'name': nameAttr, 'value': i.type_uri} 
     45                                                                            ?> 
     46                                                                            <!-- hidden input is required to force the setting of disabled checkbox values --> 
     47                                                                            <td><input type="checkbox" checked="checked" py:attrs="inputAttr"/> 
     48                                                                                <input py:if="i.required" type="hidden" value="${i.type_uri}" name="$nameAttr"/></td> 
    3849                                                                        </tr>  
    3950                                                            </table> 
  • TI12-security/trunk/NDGSecurity/python/ndg_security_server/ndg/security/server/wsgi/openid/relyingparty/signin_interface/genshi/public/layout/default.css

    r6243 r6245  
    2222        background-color: #e6f0f8;  
    2323        table-layout: auto; 
    24         margin-top:20px;  
     24        margin-top:10px;  
    2525    margin-bottom: 20px;  
    2626} 
     
    130130    color: black; 
    131131    background-color: #e6f0f8; 
    132     margin-top:20px;  
     132    margin-top:10px;  
    133133    margin-bottom: 20px;  
    134134    padding-top: 10px;  
Note: See TracChangeset for help on using the changeset viewer.