[abac] Add unicode functions to models of values
This commit is contained in:
parent
4fa437246b
commit
463ebc694c
|
@ -80,54 +80,81 @@ class StringM(models.Model):
|
|||
data = models.ForeignKey(AttributeData)
|
||||
value = models.CharField(max_length = 100)
|
||||
|
||||
def __unicode__(self):
|
||||
return self.value
|
||||
|
||||
|
||||
class BooleanM(models.Model):
|
||||
'''http://www.w3.org/2001/XMLSchema#boolean'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.BooleanField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class IntegerM(models.Model):
|
||||
'''http://www.w3.org/2001/XMLSchema#integer'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.IntegerField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class DoubleM(models.Model):
|
||||
'''http://www.w3.org/2001/XMLSchema#double'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.FloatField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class TimeM(models.Model):
|
||||
'''http://www.w3.org/2001/XMLSchema#time'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.TimeField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class DateM(models.Model):
|
||||
'''http://www.w3.org/2001/XMLSchema#date'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.DateField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class DateTimeM(models.Model):
|
||||
'''http://www.w3.org/2001/XMLSchema#dateTime'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.DateTimeField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class Rfc822NameM(models.Model):
|
||||
'''urn:oasis:names:tc:xacml:1.0:data-type:rfc822Name'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.EmailField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class IpAddressM(models.Model):
|
||||
'''urn:oasis:names:tc:xacml:2.0:data-type:ipAddress'''
|
||||
data = models.ForeignKey(AttributeData)
|
||||
value = models.IPAddressField()
|
||||
|
||||
def __unicode__(self):
|
||||
return str(self.value)
|
||||
|
||||
|
||||
class UserAttributeProfile(models.Model):
|
||||
user = models.ForeignKey(User, null=True, blank=True)
|
||||
|
@ -188,7 +215,7 @@ class AssertionData(AssertionAny):
|
|||
source = models.ForeignKey(Source, null=True, blank=True)
|
||||
certificate = models.ForeignKey(Certificate, null=True, blank=True)
|
||||
|
||||
def __unicode__(self):
|
||||
def get_values(self):
|
||||
values = None
|
||||
definition = self.attribute_data.definition
|
||||
if definition.attribute_type == ACS_XACML_DATATYPE_STRING:
|
||||
|
@ -209,9 +236,13 @@ class AssertionData(AssertionAny):
|
|||
values = Rfc822NameM.objects.filter(data=self.attribute_data)
|
||||
elif definition.attribute_type == ACS_XACML_DATATYPE_IPADDRESS:
|
||||
values = IpAddressM.objects.filter(data=self.attribute_data)
|
||||
return values
|
||||
|
||||
def __unicode__(self):
|
||||
values = self.get_values()
|
||||
s = "attribute %s with values %s" \
|
||||
% (str(self.attribute_data.definition),
|
||||
[str(x.value) for x in values])
|
||||
[str(x) for x in values])
|
||||
if self.source:
|
||||
s += ' (provided by %s)' % str(self.source)
|
||||
if self.certificate:
|
||||
|
|
Reference in New Issue