Добавить ограничение на сброс пароля

Я хочу добавить ограничение на пароль в моем проекте Symfony2.8. Первое ограничение, которое я пытаюсь создать, - это минимальная длина пароля.

На данный момент я реализовал только функцию сброса пароля с почтой для утерянного пароля.

Итак, я создал файл validation.xml в MyUsersBundle/Resources/config.

<constraint-mapping xmlns = "http://symfony.com/schema/dic/constraint-mapping"
                    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation = "http://symfony.com/schema/dic/constraint-mapping
        http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
    <!--
 ! Password Constraint
 !-->
    <class name = "FOS\UserBundle\Form\Model\ChangePassword">
        <property name = "plainPassword">
<constraint name = "Length">
                <option name = "min">8</option>
                <option name = "minMessage">fos_user.new_password.short</option>
                <option name = "groups">
                    <value>MyChangePassword</value>
                </option>
            </constraint>
        </property>
    </class>
</constraint-mapping>

И чтобы сделать его активным, я модифицировал config.yml и добавил

fos_user:
    ...
    change_password:
            form:
                validation_groups: [MyChangePassword, Default]

Однако, когда я пытаюсь изменить свой пароль через ссылку для сброса, даже если он не соблюдает ограничение, он меняет мой пароль.

Вы знаете, что я сделал не так? В config.yml я тоже пытался сделать то же самое с resetting вместо change_password.

Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
0
0
54
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я наконец нашел в чем и где проблемы.

Сначала в config.yml правая строка была resetting, а не change_password, поскольку я использую функцию сброса пароля.

#var/www/MyProject/app/config/config.yml
fos_user:
    ...
    resetting:
            form:
                validation_groups: [MyChangePassword, Default]

Другая ошибка была связана с именем класса в MyUsersBundle/Resources/config/validation.xml. Мне не нужно было использовать FOS\UserBundle\Model\User вместо FOS\UserBundle\Form\Model\ChangePassword.

#/MyProject/src/MyUsersBundle/Resources/config/validation.xml
<constraint-mapping xmlns = "http://symfony.com/schema/dic/constraint-mapping"
                    xmlns:xsi = "http://www.w3.org/2001/XMLSchema-instance"
                    xsi:schemaLocation = "http://symfony.com/schema/dic/constraint-mapping
        http://symfony.com/schema/dic/constraint-mapping/constraint-mapping-1.0.xsd">
    <!--
 ! Password Constraint
 !-->
    <class name = "FOS\UserBundle\Model\User">
        <property name = "plainPassword">
<constraint name = "Length">
                <option name = "min">8</option>
                <option name = "minMessage">fos_user.new_password.short</option>
                <option name = "groups">
                    <value>MyChangePassword</value>
                </option>
            </constraint>
        </property>
    </class>
</constraint-mapping>

Другие вопросы по теме