diff --git a/.env.dist b/.env.dist index f2317738..c5471827 100644 --- a/.env.dist +++ b/.env.dist @@ -6,6 +6,11 @@ APP_VER=${MKS_VERSION} TRUSTED_PROXIES='127.0.0.1' TRUSTED_HOSTS='^your\.domain$' +MAILER_DSN="smtp://localhost" + +SONATA_RESETTING_ADDRESS="sonata@localhost" +SONATA_RESETTING_SENDER="Sonata Admin" + LOGO_PATH='/render/logo.png' BIG_LOGO_PATH='/render/logo_big.png' diff --git a/shared/homeless/assets/css/style.css b/shared/homeless/assets/css/style.css index e8a0e448..3aeeb907 100644 --- a/shared/homeless/assets/css/style.css +++ b/shared/homeless/assets/css/style.css @@ -270,7 +270,7 @@ input#filter_search_value { .skin-black .main-header > .logo { padding: 0; - line-height: 47px; + line-height: 50px; } .skin-black .main-header > .logo img { diff --git a/shared/homeless/composer.json b/shared/homeless/composer.json index 71786335..a6dedfab 100644 --- a/shared/homeless/composer.json +++ b/shared/homeless/composer.json @@ -4,6 +4,7 @@ "type": "project", "require": { "php": ">=8.2", + "ext-intl": "*", "doctrine/doctrine-bundle": "^2.0", "doctrine/doctrine-migrations-bundle": "^3.0", "doctrine/migrations": "^3.0", @@ -26,19 +27,20 @@ "sonata-project/translation-bundle": "^3.0", "sonata-project/user-bundle": "^5.0", "symfony/apache-pack": "^1.0", - "symfony/asset": "^6.0", - "symfony/cache": "^6.0", - "symfony/config": "^6.0", - "symfony/console": "^6.0", - "symfony/dependency-injection": "^6.0", + "symfony/asset": "~6.3.0", + "symfony/cache": "~6.3.0", + "symfony/config": "~6.3.0", + "symfony/console": "~6.3.0", + "symfony/dependency-injection": "~6.3.0", "symfony/flex": "^1.19", - "symfony/framework-bundle": "^6.0", - "symfony/http-kernel": "^6.0", + "symfony/framework-bundle": "~6.3.0", + "symfony/http-kernel": "~6.3.0", + "symfony/mailer": "~6.3.0", "symfony/monolog-bundle": "^3.0", - "symfony/runtime": "^6.0", - "symfony/templating": "^6.0", - "symfony/twig-bundle": "^6.0", - "symfony/web-link": "^6.0", + "symfony/runtime": "~6.3.0", + "symfony/templating": "~6.3.0", + "symfony/twig-bundle": "~6.3.0", + "symfony/web-link": "~6.3.0", "symfony/webpack-encore-bundle": "^v2.0.1", "twbs/bootstrap-sass": "^3.3", "twig/extra-bundle": "^3.5", @@ -47,10 +49,10 @@ "vich/uploader-bundle": "^2.1" }, "require-dev": { - "symfony/dotenv": "^6.0", + "symfony/dotenv": "~6.3.0", "symfony/maker-bundle": "^1.0", - "symfony/var-dumper": "^6.0", - "symfony/web-profiler-bundle": "^6.0" + "symfony/var-dumper": "~6.3.0", + "symfony/web-profiler-bundle": "~6.3.0" }, "replace": { "symfony/polyfill-ctype": "*", diff --git a/shared/homeless/composer.lock b/shared/homeless/composer.lock index b9b20d58..d83372f2 100644 --- a/shared/homeless/composer.lock +++ b/shared/homeless/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "c11295a948242ac418c2a95345d0ac39", + "content-hash": "bbb60634f247deac4766cc193424c976", "packages": [ { "name": "doctrine/cache", @@ -10410,7 +10410,8 @@ "prefer-stable": false, "prefer-lowest": false, "platform": { - "php": ">=8.2" + "php": ">=8.2", + "ext-intl": "*" }, "platform-dev": [], "plugin-api-version": "2.6.0" diff --git a/shared/homeless/config/packages/mailer.php b/shared/homeless/config/packages/mailer.php new file mode 100644 index 00000000..e136b51f --- /dev/null +++ b/shared/homeless/config/packages/mailer.php @@ -0,0 +1,13 @@ +mailer(); + $mailer->dsn('%env(MAILER_DSN)%'); +}; diff --git a/shared/homeless/config/packages/security.php b/shared/homeless/config/packages/security.php index 04cac820..5f2fa5df 100644 --- a/shared/homeless/config/packages/security.php +++ b/shared/homeless/config/packages/security.php @@ -38,7 +38,7 @@ $mainFirewall->switchUser(); $security->accessControl() - ->path('^/(login|resetting|app/version)$') + ->path('^/((login|app/version)$|resetting)') ->roles(AuthenticatedVoter::PUBLIC_ACCESS) ; $security->accessControl() diff --git a/shared/homeless/config/packages/sonata_user.php b/shared/homeless/config/packages/sonata_user.php index 93900fd5..345f5f55 100644 --- a/shared/homeless/config/packages/sonata_user.php +++ b/shared/homeless/config/packages/sonata_user.php @@ -19,7 +19,7 @@ $resetting = $sonataUser->resetting(); $resetting->email() - ->address('sonata@localhost') - ->senderName('Sonata Admin') + ->address('%env(SONATA_RESETTING_ADDRESS)%') + ->senderName('%env(SONATA_RESETTING_SENDER)%') ; }; diff --git a/shared/homeless/templates/bundles/SonataAdminBundle/CRUD/base_list.html.twig b/shared/homeless/templates/bundles/SonataAdminBundle/CRUD/base_list.html.twig index c8268d3a..7c0e3a3b 100644 --- a/shared/homeless/templates/bundles/SonataAdminBundle/CRUD/base_list.html.twig +++ b/shared/homeless/templates/bundles/SonataAdminBundle/CRUD/base_list.html.twig @@ -211,5 +211,3 @@ {% endif %} {% endblock %} - - diff --git a/shared/homeless/templates/bundles/SonataUserBundle/Admin/Security/Resetting/checkEmail.html.twig b/shared/homeless/templates/bundles/SonataUserBundle/Admin/Security/Resetting/checkEmail.html.twig new file mode 100644 index 00000000..c9fc13c3 --- /dev/null +++ b/shared/homeless/templates/bundles/SonataUserBundle/Admin/Security/Resetting/checkEmail.html.twig @@ -0,0 +1,26 @@ +{% extends '@!SonataUser/Admin/Security/Resetting/checkEmail.html.twig' %} + +{% block sonata_wrapper %} +
{{ 'resetting.check_email'|trans({'tokenLifetime': tokenLifetime}, 'SonataUserBundle')|nl2br }}
+ + {{ 'title_user_authentication'|trans({}, 'SonataUserBundle') }} + +{{ 'title_user_authentication'|trans({}, 'SonataUserBundle') }}
+ -{% endblock sonata_wrapper %} + {{ 'forgotten_password'|trans({}, 'SonataUserBundle') }} +{% endblock %} diff --git a/shared/homeless/translations/SonataUserBundle+intl-icu.ru.yml b/shared/homeless/translations/SonataUserBundle+intl-icu.ru.yml new file mode 100644 index 00000000..5542a7be --- /dev/null +++ b/shared/homeless/translations/SonataUserBundle+intl-icu.ru.yml @@ -0,0 +1,27 @@ +breadcrumb: + link_user_delete: Удалить + +form: + group_profile: Профиль + label_username: Логин + +user: Пользователь +roles: Роли + +resetting.check_email: |- + Письмо отправлено. Оно содержит ссылку, при переходе по которой ваш пароль будет сброшен. + Заметьте, вы сможете запросить новый пароль только через {tokenLifetime, plural, + one {# час} + few {# часа} + other {# часов} + }. + + Если вы не получили письмо, проверьте папку Спам или попробуйте снова. + +resetting.email.message: |- + Приветствуем, {username}!