fix: contact us, email verif response not protected
This commit is contained in:
parent
fe907aa2b9
commit
f75f1a8c55
|
|
@ -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 {
|
||||
|
|
|
|||
|
|
@ -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');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
@ -10,7 +10,7 @@ localeUrl[en] = "/contact-us"
|
|||
localeUrl[ru] = "/contact-us"
|
||||
|
||||
[session]
|
||||
security = "user"
|
||||
security = "all"
|
||||
redirect = "vojti"
|
||||
|
||||
[TPS\Birzha\Components\ContactForm contactForm]
|
||||
|
|
|
|||
|
|
@ -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' %}
|
||||
|
|
|
|||
Loading…
Reference in New Issue