diff --git a/addons/default/visiosoft/base-theme/resources/css/forgot.css b/addons/default/visiosoft/base-theme/resources/css/forgot.css new file mode 100644 index 000000000..0e8bf74df --- /dev/null +++ b/addons/default/visiosoft/base-theme/resources/css/forgot.css @@ -0,0 +1,25 @@ +@media only screen and (min-width: 768px) { + .forgot-wrapper { + padding-top: 4em; + padding-bottom: 4em; + padding-left: 4.25em; + border: 1px solid #dee2e6!important; + } +} +@media only screen and (min-width: 768px) { + .forgot-form-wrapper { + width: 20em !important; + } +} +.forgot-img { + height: 11em; + width: 10em; +} +.forgot-wrapper label { + font-size: 14px; +} +@media only screen and (min-width: 768px) { + .forgot-form-wrapper button { + width: initial !important; + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/base-theme/resources/images/forgot-password.png b/addons/default/visiosoft/base-theme/resources/images/forgot-password.png new file mode 100644 index 000000000..a68d244ee Binary files /dev/null and b/addons/default/visiosoft/base-theme/resources/images/forgot-password.png differ diff --git a/addons/default/visiosoft/base-theme/resources/lang/en/field.php b/addons/default/visiosoft/base-theme/resources/lang/en/field.php index 4e1fb6920..4ff406659 100644 --- a/addons/default/visiosoft/base-theme/resources/lang/en/field.php +++ b/addons/default/visiosoft/base-theme/resources/lang/en/field.php @@ -30,4 +30,7 @@ return [ 'personal_registration_list_2' => 'Add the ads you are interested in, follow the price changes after adding them to your favorites, create favorite searches that meet your criteria,', 'personal_registration_list_3' => 'Send messages to the ad owners on the site.', 'register_information_note' => 'The information on this page is taken for ' . env('APPLICATION_DOMAIN') . ' membership. You can find detailed information about the protection of personal data here.', + + // Forgot Password + 'create_new_password' => 'Create New Password', ]; \ No newline at end of file diff --git a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/forgot.twig b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/forgot.twig index 32d4d28eb..b6735ed2e 100644 --- a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/forgot.twig +++ b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/forgot.twig @@ -1,21 +1,27 @@ {% extends "theme::layouts/default" %} {% block content %} -
-
- {% set form = form('forgot_password').redirect(request_get('redirect', '/')) +
+
+ forgot password icon +
+ +
+ {% set form = form('forgot_pass').redirect(request_get('redirect', '/')) .get() %} {{ form_open({ - 'class': 'row form ' ~ form.options.class , + 'class': 'form ' ~ form.options.class , 'url':form.options.url })|raw }} - -
-

{{ trans('visiosoft.theme.base::field.forgot_password') }}

-
+ {{ asset_add('styles.css', 'visiosoft.theme.base::css/forgot.css') }} {% endblock %} \ No newline at end of file diff --git a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/reset.twig b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/reset.twig index 0e7a28d3a..8e18a54fe 100644 --- a/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/reset.twig +++ b/addons/default/visiosoft/base-theme/resources/views/addons/anomaly/users-module/password/reset.twig @@ -1,44 +1,24 @@ {% extends "theme::layouts/default" %} {% block content %} -
-
+
+
+ forgot password icon +
+ +
{% set form = form('reset_password').redirect(request_get('redirect', '/')) .get() %} {{ form_open({ - 'class': 'row form ' ~ form.options.class , + 'class': 'form ' ~ form.options.class , 'url':form.options.url })|raw }} - -
-

{{ trans('visiosoft.theme.base::button.reset_password') }}

- -
-
- -
-
-
+ {{ asset_add('styles.css', 'visiosoft.theme.base::css/forgot.css') }} {% endblock %} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/resources/lang/en/message.php b/addons/default/visiosoft/profile-module/resources/lang/en/message.php index 807baad52..e1d77c19c 100644 --- a/addons/default/visiosoft/profile-module/resources/lang/en/message.php +++ b/addons/default/visiosoft/profile-module/resources/lang/en/message.php @@ -27,4 +27,7 @@ return [ 'registered_phone' => 'This phone number has already been registered.', 'ajax_address_error' => 'No address or not authorized to view.', 'empty_password_sms_message' => 'Due to security issues, we changed your password! Your new password is:', + + // Forgot Password + 'email_phone_not_found' => 'The E-mail, Phone Number is not correct!' ]; diff --git a/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormBuilder.php b/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormBuilder.php new file mode 100644 index 000000000..1b8acb68e --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormBuilder.php @@ -0,0 +1,47 @@ + '/', + 'success_message' => 'anomaly.module.users::message.confirm_reset_password', + ]; + + public function getUser() + { + return $this->user; + } + + public function setUser(UserInterface $user) + { + $this->user = $user; + + return $this; + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormFields.php b/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormFields.php new file mode 100644 index 000000000..cd58be779 --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormFields.php @@ -0,0 +1,32 @@ +setFields( + [ + 'email' => [ + 'type' => 'anomaly.field_type.text', + 'label' => 'anomaly.module.users::field.email.name', + 'required' => true, + 'rules' => [ + 'valid_email', + ], + 'validators' => [ + 'valid_email' => [ + 'handler' => 'Visiosoft\ProfileModule\Profile\Validation\ValidateEmail@handle', + 'message' => 'visiosoft.module.profile::message.email_phone_not_found', + ], + ], + ], + ] + ); + } +} diff --git a/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormHandler.php b/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormHandler.php new file mode 100644 index 000000000..ec8eb11ed --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Password/ForgotPassFormHandler.php @@ -0,0 +1,44 @@ +hasFormErrors()) { + return; + } + + if (!$user = $builder->getUser()) { + return; + } + + if ($path = $builder->getFormOption('reset_path')) { + $config->set('anomaly.module.users::paths.reset', $path); + } + + $password->forgot($user); + $password->send($user, $builder->getFormOption('reset_redirect')); + + $messages->success($builder->getFormOption('success_message')); + } +} diff --git a/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php b/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php new file mode 100644 index 000000000..09ab91bd4 --- /dev/null +++ b/addons/default/visiosoft/profile-module/src/Profile/Validation/ValidateEmail.php @@ -0,0 +1,30 @@ +newQuery() + ->where('gsm_phone', 'LIKE', "%$possiblePhone")->first()) { + $value = $user->email; + } + } + + if (!$response = $users->findByEmail($value)) { + return false; + } + + $builder->setUser($response); + + return true; + } +} \ No newline at end of file diff --git a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php index 0430f036e..c36245a0c 100644 --- a/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php +++ b/addons/default/visiosoft/profile-module/src/ProfileModuleServiceProvider.php @@ -6,6 +6,7 @@ use Visiosoft\ProfileModule\Adress\Contract\AdressRepositoryInterface; use Visiosoft\ProfileModule\Adress\AdressRepository; use Anomaly\Streams\Platform\Model\Profile\ProfileAdressEntryModel; use Visiosoft\ProfileModule\Adress\AdressModel; +use Visiosoft\ProfileModule\Profile\Password\ForgotPassFormBuilder; use Visiosoft\ProfileModule\Profile\Password\PasswordFormBuilder; use Visiosoft\ProfileModule\Profile\Profile\ProfileFormBuilder; use Illuminate\Routing\Router; @@ -194,6 +195,7 @@ class ProfileModuleServiceProvider extends AddonServiceProvider AdressRepositoryInterface::class => AdressRepository::class, 'register2' => Register2FormBuilder::class, 'sites' => SitesFormBuilder::class, + 'forgot_pass' => ForgotPassFormBuilder::class, ]; /**