entities/authobjs.py
changeset 2778 3f6dfc312760
parent 1977 606923dff11b
child 2784 f395115070c1
equal deleted inserted replaced
2777:8f7fcbe11879 2778:3f6dfc312760
    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"""