def add(self, entry): self.users = SessionUsers(self.context) util = getUtility(IUserManagerUtil) entry = util.new(entry) users = util.find(entry['uniqueIdentifier']) self.users = SessionUsers(self.context) self.users.set_users(users)
def add(self, entry): self.users = SessionUsers(self.context) util = getUtility(IUserManagerUtil) entry = util.new(entry) users = util.find(entry['uniqueIdentifier']) self.users = SessionUsers(self.context) self.users.set_users(users)
def update(self): self.uc_update() form.SchemaForm.update(self) self.users = SessionUsers(self.context) user = self.users.current() uid = user.get('uid', '???') cn = user.get('cn', '???') accClass = user.get('accClass', '???') self.label = "Cambiar password para '{0}'".format(uid) self.description = '{0}: {1}'.format(cn, accClass)
class New(form.SchemaAddForm, UcBaseView): '''Nuevo Usuario''' grok.context(IUserManager) grok.require('usermanager.new') grok.name('new') schema = IUser ignoreContext = True label = 'Crear un nuevo Usuario' name = 'usermanager-add-form' def updateWidgets(self): form.SchemaAddForm.updateWidgets(self) widget = self.widgets['accClass'] widget.template = ViewPageTemplateFile("browser/acc_class_widget.pt") def create(self, data): entry = self.entry_from_user(data) return entry def add(self, entry): self.users = SessionUsers(self.context) util = getUtility(IUserManagerUtil) entry = util.new(entry) users = util.find(entry['uniqueIdentifier']) self.users = SessionUsers(self.context) self.users.set_users(users) @button.buttonAndHandler(_('Crear'), name='save') def handleAdd(self, action): self.uc_update() data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return try: obj = self.createAndAdd(data) except Exception as err: self.set_status(str(err), u'error') return if obj is not None: self._finishedAdd = True self.set_status('Usuario creado.', u'info') @button.buttonAndHandler(_(u'Cancelar'), name='cancel') def handleCancel(self, action): self.uc_update() self.set_status('Accion cancelada.', u'info') self.request.response.redirect(self.nextURL())
class New(form.SchemaAddForm, UcBaseView): '''Nuevo Usuario''' grok.context(IUserManager) grok.require('usermanager.new') grok.name('new') schema = IUser ignoreContext = True label = 'Crear un nuevo Usuario' name = 'usermanager-add-form' def updateWidgets(self): form.SchemaAddForm.updateWidgets(self) widget = self.widgets['accClass'] widget.template = ViewPageTemplateFile("browser/acc_class_widget.pt") def create(self, data): entry = self.entry_from_user(data) return entry def add(self, entry): self.users = SessionUsers(self.context) util = getUtility(IUserManagerUtil) entry = util.new(entry) users = util.find(entry['uniqueIdentifier']) self.users = SessionUsers(self.context) self.users.set_users(users) @button.buttonAndHandler(_('Crear'), name='save') def handleAdd(self, action): self.uc_update() data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return try: obj = self.createAndAdd(data) except Exception as err: self.set_status(str(err), u'error') return if obj is not None: self._finishedAdd = True self.set_status('Usuario creado.', u'info') @button.buttonAndHandler(_(u'Cancelar'), name='cancel') def handleCancel(self, action): self.uc_update() self.set_status('Accion cancelada.', u'info') self.request.response.redirect(self.nextURL())
class Password(form.SchemaForm, UcBaseView): '''Cambio de Password''' grok.context(IUserManager) grok.require('usermanager.password') grok.name('password') schema = IPassword ignoreContext = True def update(self): self.uc_update() form.SchemaForm.update(self) self.users = SessionUsers(self.context) user = self.users.current() uid = user.get('uid', '???') cn = user.get('cn', '???') accClass = user.get('accClass', '???') self.label = "Cambiar password para '{0}'".format(uid) self.description = '{0}: {1}'.format(cn, accClass) @button.buttonAndHandler(u'Ok') def handleApply(self, action): '''Boton OK''' if not self.admin.has_permission(self.current_user): return data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return self.users = SessionUsers(self.context) user = self.users.current() util = getUtility(IUserManagerUtil) try: user = util.password(user, data['userPassword']) self.users.set_current(user) self.status = 'Password cambiado.' self.response.redirect(self.context.absolute_url()) except PasswordException as e: self.context.plone_utils.addPortalMessage(e.message, 'error') @button.buttonAndHandler(u"Cancel") def handleCancel(self, action): '''Boton cancelar''' self.response.redirect(self.context.absolute_url())
class Password(form.SchemaForm, UcBaseView): '''Cambio de Password''' grok.context(IUserManager) grok.require('usermanager.password') grok.name('password') schema = IPassword ignoreContext = True def update(self): self.uc_update() form.SchemaForm.update(self) self.users = SessionUsers(self.context) user = self.users.current() uid = user.get('uid', '???') cn = user.get('cn', '???') accClass = user.get('accClass', '???') self.label = "Cambiar password para '{0}'".format(uid) self.description = '{0}: {1}'.format(cn, accClass) @button.buttonAndHandler(u'Ok') def handleApply(self, action): '''Boton OK''' if not self.admin.has_permission(self.current_user): return data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return self.users = SessionUsers(self.context) user = self.users.current() util = getUtility(IUserManagerUtil) try: user = util.password(user, data['userPassword']) self.users.set_current(user) self.status = 'Password cambiado.' self.response.redirect(self.context.absolute_url()) except PasswordException as e: self.context.plone_utils.addPortalMessage(e.message, 'error') @button.buttonAndHandler(u"Cancel") def handleCancel(self, action): '''Boton cancelar''' self.response.redirect(self.context.absolute_url())
class Search(grok.View): '''Vista que ejecuta la busqueda''' grok.context(IUserManager) grok.require('usermanager.view') grok.name('search') def update(self): util = getUtility(IUserManagerUtil) users = util.find(self.request.uid_or_ci) self.users = SessionUsers(self.context) self.users.set_users(users) def render(self): self.response.redirect(self.context.absolute_url()) return u''
class Search(grok.View): '''Vista que ejecuta la busqueda''' grok.context(IUserManager) grok.require('usermanager.view') grok.name('search') def update(self): util = getUtility(IUserManagerUtil) users = util.find(self.request.uid_or_ci) self.users = SessionUsers(self.context) self.users.set_users(users) def render(self): self.response.redirect(self.context.absolute_url()) return u''
def update(self): self.uc_update() form.SchemaForm.update(self) self.users = SessionUsers(self.context) user = self.users.current() uid = user.get('uid', '???') cn = user.get('cn', '???') accClass = user.get('accClass', '???') self.label = "Cambiar password para '{0}'".format(uid) self.description = '{0}: {1}'.format(cn, accClass)
def handleApply(self, action): '''Boton OK''' if not self.admin.has_permission(self.current_user): return data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return self.users = SessionUsers(self.context) user = self.users.current() util = getUtility(IUserManagerUtil) try: user = util.password(user, data['userPassword']) self.users.set_current(user) self.status = 'Password cambiado.' self.response.redirect(self.context.absolute_url()) except PasswordException as e: self.context.plone_utils.addPortalMessage(e.message, 'error')
def handleApply(self, action): '''Boton OK''' if not self.admin.has_permission(self.current_user): return data, errors = self.extractData() if errors: self.status = self.formErrorsMessage return self.users = SessionUsers(self.context) user = self.users.current() util = getUtility(IUserManagerUtil) try: user = util.password(user, data['userPassword']) self.users.set_current(user) self.status = 'Password cambiado.' self.response.redirect(self.context.absolute_url()) except PasswordException as e: self.context.plone_utils.addPortalMessage(e.message, 'error')
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))
def getContent(self): entry = SessionUsers(self.context).current() user = self.user_from_entry(entry) return user
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))
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 update(self): util = getUtility(IUserManagerUtil) users = util.find(self.request.uid_or_ci) self.users = SessionUsers(self.context) self.users.set_users(users)
def update(self): util = getUtility(IUserManagerUtil) users = util.find(self.request.uid_or_ci) self.users = SessionUsers(self.context) self.users.set_users(users)