fix: contact us, email verif response not protected

This commit is contained in:
saparatayev 2022-04-12 17:31:23 +05:00
parent fe907aa2b9
commit f75f1a8c55
5 changed files with 48 additions and 27 deletions

View File

@ -463,7 +463,9 @@ class Account extends ComponentBase
if(!$this->user()->email_verified) {
$code = sha1(time());
$vars = [
'verification_link' => $this->controller->pageUrl('kabinet/verify_email.htm', ['code' => $code])
'verification_link' => $this->controller->pageUrl('kabinet/verify_email.htm', [
'id' => $this->user()->id, 'code' => $code
])
];
try {

View File

@ -1,6 +1,8 @@
<?php namespace Tps\Birzha\Components;
use Cms\Classes\ComponentBase;
use Illuminate\Support\Facades\Redirect;
use RainLab\User\Models\User;
class EmailVerify extends ComponentBase
{
@ -14,6 +16,12 @@ class EmailVerify extends ComponentBase
public function defineProperties()
{
return [
'id' => [
'title' => 'User ID',
'description' => 'User ID',
'default' => '{{ :id }}',
'type' => 'string',
],
'code' => [
'title' => 'Verificaiton code',
'description' => 'Verificaiton code',
@ -24,23 +32,31 @@ class EmailVerify extends ComponentBase
}
public function onRun() {
$user = \Auth::user();
if(!$user->email_verified) {
if($user->email_activation_code == $this->property('code')) {
$user->email_verified = true;
$user->email_activation_code = null;
$user->save();
$user = User::find($this->property('id'));
$this->page['message'] = \Lang::get('rainlab.user::lang.account.email_verified_message');
if(!is_null($user)) {
if(!$user->email_verified) {
if($user->email_activation_code == $this->property('code')) {
$user->email_verified = true;
$user->email_activation_code = null;
$user->save();
$this->page['message'] = \Lang::get('rainlab.user::lang.account.email_verified_message');
} else {
$this->page['message'] = \Lang::get('rainlab.user::lang.account.email_verification_link_invalid');
}
} else {
$this->page['message'] = \Lang::get('rainlab.user::lang.account.email_verification_link_invalid');
$this->page['message'] = \Lang::get('rainlab.user::lang.account.email_already_verified');
}
} else {
$this->page['message'] = \Lang::get('rainlab.user::lang.account.email_already_verified');
return Redirect::to('/404');
}
}

View File

@ -1,17 +1,19 @@
<section class="thanks">
<section class="post">
<div class="auto_container">
<div class="thanks_wrap">
<div class="thanks_text">
{{message}}
<section class="register active">
<div class="auto_container">
<div class="pass_mail">
<div class="pass_title">
{{message}}
</div>
<form class="password_form" action="/" method="get">
<div class="btn_bg">
<button type="submit" class="pass_btn">OK</button>
</div>
</form>
</div>
</div>
</section>
<div class="link">
<a href="{{'index'|page}}" class="home_link">
<span>OK</span>
</a>
</div>
</div>
</div>
</section>

View File

@ -10,7 +10,7 @@ localeUrl[en] = "/contact-us"
localeUrl[ru] = "/contact-us"
[session]
security = "user"
security = "all"
redirect = "vojti"
[TPS\Birzha\Components\ContactForm contactForm]

View File

@ -1,13 +1,14 @@
title = "Verify Email"
url = "/verify-email/:code"
layout = "default"
url = "/verify-email/:id/:code"
layout = "account"
is_hidden = 0
[session]
security = "user"
security = "all"
redirect = "vojti"
[emailverify]
id = "{{ :id }}"
code = "{{ :code }}"
==
{% component 'session' %}