web2py: грубая форма для редактирования пользователей сбрасывает пароль

У меня есть грубая форма, поэтому администратор может редактировать пользователей. Администратор должен иметь возможность при необходимости изменить пароль. Я использую:

crud.update(db.auth_user, user_id, deletable=False)

чтобы создать форму, и она отлично работает, если я ввожу пароль. Но если я не хочу менять пароль, он сбрасывает пароль, и пользователь не может войти в систему. Похоже, что поле пароля обновляется зашифрованной версией и вызывает его сброс. Как можно предотвратить это?


person naveed    schedule 15.02.2012    source источник


Ответы (1)


Вы можете удалить переменную из form.vars, если она пуста или недействительна? Поскольку в web2py интегрировано так много средств аутентификации, я никогда не возился с полем пароля, но это может сработать.

Вы можете использовать crud.update(..., onvalidation=somefunction) и заставить какую-то функцию проверить допустимое значение в поле пароля, если оно не найдет его, del form.vars.password? или установить для form.vars.password значение None?

проверка произойдет ПОСЛЕ того, как форма будет принята (проверена), но ДО того, как значения будут введены/обновлены в базе данных.

person Kasapo    schedule 06.08.2012