[abac] Add unicode functions to models of values

This commit is contained in:
Mikaël Ates 2011-08-28 20:04:46 +02:00
parent 4fa437246b
commit 463ebc694c
1 changed files with 33 additions and 2 deletions

View File

@ -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: