Bug Fixed #1645: No confirm password action when customer is deleting his profile

This commit is contained in:
naresh verma 2019-10-17 17:24:01 +05:30
parent 8fe90bc0f6
commit 28ed55d711
3 changed files with 37 additions and 10 deletions

View File

@ -135,18 +135,25 @@ class CustomerController extends Controller
{
$id = auth()->guard('customer')->user()->id;
$customer = $this->customer->findorFail($id);
$data = request()->all();
$customer = $this->customerRepository->findorFail($id);
try {
$this->customer->delete($id);
if (hash::check($data['password'], $customer->password)) {
session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Customer']));
$this->customerRepository->delete($id);
session()->flash('success', trans('admin::app.response.delete-success', ['name' => 'Customer']));
} else {
session()->flash('error', trans('shop::app.customer.account.address.delete.wrong-password'));
}
return redirect()->route($this->_config['redirect']);
} catch(\Exception $e) {
session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Customer']));
session()->flash('error', trans('admin::app.response.delete-failed', ['name' => 'Customer']));
return redirect()->route($this->_config['redirect']);
return redirect()->route($this->_config['redirect']);
}
}

View File

@ -240,7 +240,8 @@ return [
],
'delete' => [
'success' => 'Address successfully deleted',
'failure' => 'Address cannot be deleted'
'failure' => 'Address cannot be deleted',
'wrong-password' => 'Wrong Password !'
]
],

View File

@ -70,12 +70,31 @@
<accordian :title="'{{ __('shop::app.customer.account.profile.index.title') }}'" :active="true">
<div slot="body">
<div class="page-action">
<form method="POST" action="{{ route('customer.profile.destroy') }}">
@csrf
<input type="submit" class="btn btn-lg btn-primary mt-10" value="Delete">
</form>
<button type="submit" @click="showModal('deleteProfile')" class="btn btn-lg btn-primary mt-10">
{{ __('shop::app.customer.account.address.index.delete') }}
</button>
</div>
<form method="POST" action="{{ route('customer.profile.destroy') }}">
@csrf
<modal id="deleteProfile" :is-open="modalIds.deleteProfile">
<h3 slot="header">{{ __('shop::app.customer.account.address.index.enter-password') }}</h3>
<div slot="body">
<div class="control-group" :class="[errors.has('password') ? 'has-error' : '']">
<label for="password" class="required">{{ __('admin::app.users.users.password') }}</label>
<input type="password" v-validate="'required|min:6|max:18'" class="control" id="password" name="password" data-vv-as="&quot;{{ __('admin::app.users.users.password') }}&quot;"/>
<span class="control-error" v-if="errors.has('password')">@{{ errors.first('password') }}</span>
</div>
<div class="page-action">
<button type="submit" class="btn btn-lg btn-primary mt-10">
{{ __('shop::app.customer.account.address.index.delete') }}
</button>
</div>
</div>
</modal>
</form>
</div>
</accordian>