entities/authobjs.py
changeset 2784 f395115070c1
parent 2778 3f6dfc312760
child 3377 dd9d292b6a6d
equal deleted inserted replaced
2778:3f6dfc312760 2784:f395115070c1
    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.cwdb.name for g in self.cwdb.in_group)
    47             self._groups = set(g.name for g in self.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.cwdb.pkey, p.cwdb.value)
    55             self._properties = dict((p.pkey, p.value) for p in self.reverse_for_user)
    56                                     for p in self.cwdb.reverse_for_user)
       
    57             return self._properties
    56             return self._properties
    58 
    57 
    59     def property_value(self, key):
    58     def property_value(self, key):
    60         try:
    59         try:
    61             # properties stored on the user aren't correctly typed
    60             # properties stored on the user aren't correctly typed
    62             # (e.g. all values are unicode string)
    61             # (e.g. all values are unicode string)
    63             return self.vreg.typed_value(key, self.properties[key])
    62             return self.vreg.typed_value(key, self.properties[key])
    64         except KeyError:
    63         except KeyError:
    65             pass
    64             pass
    66         except ValueError:
    65         except ValueError:
    67             self.warning('incorrect value for property %s of user %s', key,
    66             self.warning('incorrect value for eproperty %s of user %s', key, self.login)
    68                          self.cwdb.login)
       
    69         return self.vreg.property_value(key)
    67         return self.vreg.property_value(key)
    70 
    68 
    71     def matching_groups(self, groups):
    69     def matching_groups(self, groups):
    72         """return the number of the given group(s) in which the user is
    70         """return the number of the given group(s) in which the user is
    73 
    71 
   122 
   120 
   123     # presentation utilities ##################################################
   121     # presentation utilities ##################################################
   124 
   122 
   125     def name(self):
   123     def name(self):
   126         """construct a name using firstname / surname or login if not defined"""
   124         """construct a name using firstname / surname or login if not defined"""
   127         surname = self.get_value('surname')
   125 
   128         firstname = self.get_value('firstname')
   126         if self.firstname and self.surname:
   129         if firstname and surname:
       
   130             return self.req._('%(firstname)s %(surname)s') % {
   127             return self.req._('%(firstname)s %(surname)s') % {
   131                 'firstname': firstname, 'surname' : surname}
   128                 'firstname': self.firstname, 'surname' : self.surname}
   132         if firstname or surname:
   129         if self.firstname:
   133             return surname or firstname
   130             return self.firstname
   134         return self.get_value('login')
   131         return self.login
   135 
   132 
   136     def dc_title(self):
   133     def dc_title(self):
   137         return self.get_value('login')
   134         return self.login
   138 
   135 
   139     dc_long_title = name
   136     dc_long_title = name
   140 
   137 
   141     def db_key_name(self):
   138     def db_key_name(self):
   142         """XXX goa specific"""
   139         """XXX goa specific"""