Skip to content

Commit 4ec911b

Browse files
committed
keep track of attribute_name for mustach iterators
1 parent 3b3a9cf commit 4ec911b

File tree

1 file changed

+15
-10
lines changed

1 file changed

+15
-10
lines changed

src/satosa/micro_services/attribute_generation.py

Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,9 @@ def _config(f, requester, provider):
99
return rf.items()
1010

1111
class MustachAttrValue(object):
12-
def __init__(self,values):
13-
self.values = values
12+
def __init__(self, attr_name, values):
13+
self._attr_name = attr_name
14+
self._values = values
1415
if any(['@' in v for v in values]):
1516
local_parts = []
1617
domain_parts = []
@@ -26,19 +27,23 @@ def __init__(self,values):
2627
self._scopes = None
2728

2829
def __str__(self):
29-
return ";".join(self.values)
30+
return ";".join(self._values)
31+
32+
@property
33+
def values(self):
34+
[{self._attr_name: v} for v in self._values]
3035

3136
@property
3237
def value(self):
33-
if 1 == len(self.values):
34-
return self.values[0]
38+
if 1 == len(self._values):
39+
return self._values[0]
3540
else:
36-
return self.values
41+
return self._values
3742

3843
@property
3944
def first(self):
40-
if len(self.values) > 0:
41-
return self.values[0]
45+
if len(self._values) > 0:
46+
return self._values[0]
4247
else:
4348
return ""
4449

@@ -63,13 +68,13 @@ def _synthesize(self, attributes, requester, provider):
6368
context = dict()
6469

6570
for attr_name,values in attributes.items():
66-
context[attr_name] = MustachAttrValue(values)
71+
context[attr_name] = MustachAttrValue(attr_name, values)
6772

6873
recipes = _config(self.synthetic_attributes, requester, provider)
6974
print(context)
7075
for attr_name, fmt in recipes:
7176
print(fmt)
72-
syn_attributes[attr_name] = re.split("[;\n]+", pystache.render(fmt, context))
77+
syn_attributes[attr_name] = [v.strip().strip(';') for v in re.split("[;\n]+", pystache.render(fmt, context))]
7378
print(syn_attributes)
7479
return syn_attributes
7580

0 commit comments

Comments
 (0)