Ignore:
Timestamp:
11/02/10 17:09:43 (11 years ago)
Author:
pjkersha
Message:

Working serialised Response with AuthzDecisionStatement? in unit tests.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI12-security/trunk/ndg_security_saml/saml/saml2/core.py

    r6553 r6558  
    328328     
    329329    # "Permit" decision type 
    330     PERMIT = "Permit" 
     330    PERMIT_STR = "Permit" 
    331331     
    332332    # "Deny" decision type 
    333     DENY = "Deny" 
     333    DENY_STR = "Deny" 
    334334     
    335335    # "Indeterminate" decision type 
    336     INDETERMINATE = "Indeterminate" 
    337          
    338     TYPES = (PERMIT, DENY, INDETERMINATE) 
     336    INDETERMINATE_STR = "Indeterminate" 
     337         
     338    TYPES = (PERMIT_STR, DENY_STR, INDETERMINATE_STR) 
    339339     
    340340    __slots__ = ('__value',) 
     
    347347        if not isinstance(value, basestring): 
    348348            raise TypeError('Expecting string type for "value" attribute; got ' 
    349                             'instead' % type(value)) 
     349                            '%r instead' % type(value)) 
    350350             
    351351        if value not in DecisionType.TYPES: 
    352352            raise AttributeError('Permissable decision types are %r; got %r ' 
    353                                  'instead' % (DecisionType.TYPES, 
    354                                               value)) 
     353                                 'instead' % (DecisionType.TYPES, value)) 
    355354        self.__value = value 
    356355         
     
    362361    def __str__(self): 
    363362        return self.__value 
     363 
     364    def __eq__(self, decision): 
     365        return self.__value == decision.value 
     366 
     367 
     368class PermitDecisionType(DecisionType): 
     369    """Permit authorisation Decision""" 
     370    def __init__(self): 
     371        super(PermitDecisionType, self).__init__(DecisionType.PERMIT_STR) 
     372         
     373    def _setValue(self):   
     374        raise AttributeError("can't set attribute") 
     375 
     376 
     377class DenyDecisionType(DecisionType): 
     378    """Deny authorisation Decision""" 
     379    def __init__(self): 
     380        super(DenyDecisionType, self).__init__(DecisionType.DENY_STR) 
     381         
     382    def _setValue(self, value):   
     383        raise AttributeError("can't set attribute") 
     384 
     385 
     386class IndeterminateDecisionType(DecisionType): 
     387    """Indeterminate authorisation Decision""" 
     388    def __init__(self): 
     389        super(IndeterminateDecisionType, self).__init__( 
     390                                            DecisionType.INDETERMINATE_STR) 
     391         
     392    def _setValue(self, value):   
     393        raise AttributeError("can't set attribute") 
     394 
     395# Add instances of each for convenience 
     396DecisionType.PERMIT = PermitDecisionType() 
     397DecisionType.DENY = DenyDecisionType() 
     398DecisionType.INDETERMINATE = IndeterminateDecisionType() 
    364399 
    365400 
     
    401436        self.__resource = None   
    402437         
    403         self.__decision = DecisionType(DecisionType.INDETERMINATE)     
     438        self.__decision = DecisionType.INDETERMINATE    
    404439        self.__actions = TypedList(Action) 
    405440        self.__evidence = None 
     
    506541        @param value: the decision of the authorization request 
    507542        ''' 
    508         if not isinstance(value, basestring): 
     543        if not isinstance(value, DecisionType): 
    509544            raise TypeError('Expecting %r type for "decision" attribute; ' 
    510                             'got instead' % (DecisionType, type(value))) 
     545                            'got %r instead' % (DecisionType, type(value))) 
    511546        self.__decision = value 
     547 
     548    decision = property(_getDecision, _setDecision,  
     549                        doc="Authorization decision as a DecisionType instance") 
    512550     
    513551    @property 
Note: See TracChangeset for help on using the changeset viewer.