42 @property |
42 @property |
43 def groups(self): |
43 def groups(self): |
44 try: |
44 try: |
45 return self._groups |
45 return self._groups |
46 except AttributeError: |
46 except AttributeError: |
47 self._groups = set(g.name for g in self.in_group) |
47 self._groups = set(g.cwdb.name for g in self.cwdb.in_group) |
48 return self._groups |
48 return self._groups |
49 |
49 |
50 @property |
50 @property |
51 def properties(self): |
51 def properties(self): |
52 try: |
52 try: |
53 return self._properties |
53 return self._properties |
54 except AttributeError: |
54 except AttributeError: |
55 self._properties = dict((p.pkey, p.value) for p in self.reverse_for_user) |
55 self._properties = dict((p.cwdb.pkey, p.cwdb.value) |
|
56 for p in self.cwdb.reverse_for_user) |
56 return self._properties |
57 return self._properties |
57 |
58 |
58 def property_value(self, key): |
59 def property_value(self, key): |
59 try: |
60 try: |
60 # properties stored on the user aren't correctly typed |
61 # properties stored on the user aren't correctly typed |
61 # (e.g. all values are unicode string) |
62 # (e.g. all values are unicode string) |
62 return self.vreg.typed_value(key, self.properties[key]) |
63 return self.vreg.typed_value(key, self.properties[key]) |
63 except KeyError: |
64 except KeyError: |
64 pass |
65 pass |
65 except ValueError: |
66 except ValueError: |
66 self.warning('incorrect value for eproperty %s of user %s', key, self.login) |
67 self.warning('incorrect value for property %s of user %s', key, |
|
68 self.cwdb.login) |
67 return self.vreg.property_value(key) |
69 return self.vreg.property_value(key) |
68 |
70 |
69 def matching_groups(self, groups): |
71 def matching_groups(self, groups): |
70 """return the number of the given group(s) in which the user is |
72 """return the number of the given group(s) in which the user is |
71 |
73 |
120 |
122 |
121 # presentation utilities ################################################## |
123 # presentation utilities ################################################## |
122 |
124 |
123 def name(self): |
125 def name(self): |
124 """construct a name using firstname / surname or login if not defined""" |
126 """construct a name using firstname / surname or login if not defined""" |
125 |
127 surname = self.get_value('surname') |
126 if self.firstname and self.surname: |
128 firstname = self.get_value('firstname') |
|
129 if firstname and surname: |
127 return self.req._('%(firstname)s %(surname)s') % { |
130 return self.req._('%(firstname)s %(surname)s') % { |
128 'firstname': self.firstname, 'surname' : self.surname} |
131 'firstname': firstname, 'surname' : surname} |
129 if self.firstname: |
132 if firstname or surname: |
130 return self.firstname |
133 return surname or firstname |
131 return self.login |
134 return self.get_value('login') |
132 |
135 |
133 def dc_title(self): |
136 def dc_title(self): |
134 return self.login |
137 return self.get_value('login') |
135 |
138 |
136 dc_long_title = name |
139 dc_long_title = name |
137 |
140 |
138 def db_key_name(self): |
141 def db_key_name(self): |
139 """XXX goa specific""" |
142 """XXX goa specific""" |