Как добавить дополнительные политики безопасности к паролю в ODOO (OpenERP)

Как добавить политику паролей в форму пользователя или сотрудника с обязательным числом (0 ... 9), специальным символом (@, *, ...), размером пароля> 6, заглавной буквой (A... З) и др.

Есть ли у вас какое-либо решение для реализации этой политики?


person Juan Salcedo    schedule 01.06.2015    source источник


Ответы (1)


Если вы посмотрите на определение пользователя, вы можете найти поле пароля:

'password': fields.char('Password', size=64, invisible=True, copy=False, help="Keep empty if you don't want the user to be able to connect on the system."),

Чтобы реализовать желаемое поведение, создайте метод onchange для поля пароля следующим образом:

@api.onchange('password') def check_password(self):

где вы выполняете необходимые проверки.

Чтобы увидеть какие-либо результаты, вы можете создать новое поле с именем «passwordOK», значение по умолчанию — true. Если после проверки пароль не подходит, вы можете установить его на false, и таким образом вы можете контролировать отображение сообщения об ошибке в представлении.

Чтобы управлять отображением сообщения, вы можете попробовать добавить это в представление:

attrs="{'invisible': [('passwordOK', '=', True)]}"

РЕДАКТИРОВАТЬ: я покажу вам, как я это сделал в представлении. Возможно, это не лучшее решение, но оно прекрасно работает.

Вместо логической переменной я использовал строку сообщения, например:

'message': fields.text('Message'),

Эта переменная будет содержать ваше предупреждающее сообщение (пример: «Пароль должен быть буквенно-цифровым»). Вы присваиваете значение этому атрибуту при проверке безопасности пароля в методе, украшенном @api.onchange. Для отображения сообщения поле должно выглядеть так:

<field name="message" readonly="True" style="color:red" attrs="{'invisible': [('message', '=', '')]}"/>

Как видите, он будет отображаться только тогда, когда он не пуст (также он будет окрашен в красный цвет). Odoo автоматически обновит значение поля, когда вы измените его в методе onchange.

person Chiru Constantin - Alexandru    schedule 02.06.2015
comment
Спасибо за ваш ответ @Chiru Constantin - Alexandru, я новичок в Odoo, не могли бы вы дать более подробную информацию о том, как отображать сообщение об ошибке или сообщение ok? Я немного запутался, как это сделать... Еще раз спасибо! - person Juan Salcedo; 02.06.2015