def uc_update(self): self.users = SessionUsers(self.context) self.current_user = self.users.current() self.admin = AdminUtil(self.context) self.util = getUtility(IUserManagerUtil) self._status = IStatusMessage(self.request)
class UcBaseView: def uc_update(self): self.users = SessionUsers(self.context) self.current_user = self.users.current() self.admin = AdminUtil(self.context) self.util = getUtility(IUserManagerUtil) self._status = IStatusMessage(self.request) def has_permission(self): if not self.current_user: return True return self.admin.has_permission(self.current_user) if self.current_user and \ not self.admin.has_permission(self.current_user): self.set_status( u'Usted no tiene permisos para actuar sobre este usuario.', u'error') else: self.clear_status() def clear_status(self): return self._status.show() def add_status(self, msg, kind): self._status.add(msg, kind) def set_status(self, msg, kind=u''): self.clear_status() self.add_status(msg, kind) def entry_from_user(self, dct): entry = dict(**dct) for k, v in entry.items(): if 'date' in k: entry[k] = self._string_from_date(v) continue entry[k] = entry[k].encode('ascii') if entry[k] else '' # Consolidamos givenName2 y surname2 en givenname y surname self._attributes_to_list(entry, 'givenName') self._attributes_to_list(entry, 'sn') if 'uid' in entry: entry['uid'] = entry['uid'].lower() return entry def _attributes_to_list(self, dct, k): '''Convierte {k='a', k2='b'} en {k=['a', 'b']}''' k2 = k + '2' if not k2 in dct: return if not dct[k2]: del (dct[k2]) return dct[k] = [dct[k], dct[k2]] del (dct[k2]) def _date_or_empty_from_entry(self, entry, key): date_string = entry.first(key, '') if not date_string: return '' return self._date_from_string(date_string) def user_from_entry(self, entry): entry['dateCreation'] = self._date_or_empty_from_entry( entry, 'dateCreation') entry['dateExpiration'] = self._date_or_empty_from_entry( entry, 'dateExpiration') self._list_to_attributes(entry, 'givenName') self._list_to_attributes(entry, 'sn') return entry def _list_to_attributes(self, dct, k): '''Convierte {k=['a', 'b']} en {k='a', k2='b'}''' k2 = k + '2' if type(dct[k]) <> list: return elif len(dct[k]) == 1: dct[k2] = '' dct[k] = dct[k][0] else: dct[k2] = dct[k][1] dct[k] = dct[k][0] def _date_from_string(self, strdate): try: return datetime.strptime(strdate, '%Y%m%d') except ValueError, e: raise ValueError('Error in dateformat "{0}"'.format(strdate))
class UcBaseView: def uc_update(self): self.users = SessionUsers(self.context) self.current_user = self.users.current() self.admin = AdminUtil(self.context) self.util = getUtility(IUserManagerUtil) self._status = IStatusMessage(self.request) def has_permission(self): if not self.current_user: return True return self.admin.has_permission(self.current_user) if self.current_user and \ not self.admin.has_permission(self.current_user): self.set_status(u'Usted no tiene permisos para actuar sobre este usuario.', u'error') else: self.clear_status() def clear_status(self): return self._status.show() def add_status(self, msg, kind): self._status.add(msg, kind) def set_status(self, msg, kind=u''): self.clear_status() self.add_status(msg, kind) def entry_from_user(self, dct): entry = dict(**dct) for k, v in entry.items(): if 'date' in k : entry[k] = self._string_from_date(v) continue entry[k] = entry[k].encode('ascii') if entry[k] else '' # Consolidamos givenName2 y surname2 en givenname y surname self._attributes_to_list(entry, 'givenName') self._attributes_to_list(entry, 'sn') if 'uid' in entry: entry['uid'] = entry['uid'].lower() return entry def _attributes_to_list(self, dct, k): '''Convierte {k='a', k2='b'} en {k=['a', 'b']}''' k2 = k + '2' if not k2 in dct: return if not dct[k2]: del(dct[k2]) return dct[k] = [dct[k], dct[k2]] del(dct[k2]) def _date_or_empty_from_entry(self, entry, key): date_string = entry.first(key, '') if not date_string: return '' return self._date_from_string(date_string) def user_from_entry(self, entry): entry['dateCreation'] = self._date_or_empty_from_entry(entry, 'dateCreation') entry['dateExpiration'] = self._date_or_empty_from_entry(entry, 'dateExpiration') self._list_to_attributes(entry, 'givenName') self._list_to_attributes(entry, 'sn') return entry def _list_to_attributes(self, dct, k): '''Convierte {k=['a', 'b']} en {k='a', k2='b'}''' k2 = k + '2' if type(dct[k]) <> list: return elif len(dct[k]) == 1: dct[k2] = '' dct[k] = dct[k][0] else: dct[k2] = dct[k][1] dct[k] = dct[k][0] def _date_from_string(self, strdate): try: return datetime.strptime(strdate, '%Y%m%d') except ValueError, e: raise ValueError('Error in dateformat "{0}"'.format(strdate))