sarga/packages/Webkul/Customer/src/Http/Controllers/RegistrationController.php

118 lines
3.2 KiB
PHP
Raw Normal View History

<?php
namespace Webkul\Customer\Http\Controllers;
use Illuminate\Http\Request;
use Illuminate\Http\Response;
use Illuminate\Support\Facades\Mail;
use Webkul\Customer\Mail\VerificationEmail;
use Illuminate\Routing\Controller;
2018-08-22 09:46:27 +00:00
use Webkul\Customer\Repositories\CustomerRepository;
/**
* Registration controller
*
* @author Prashant Singh <prashant.singh852@webkul.com>
* @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com)
*/
class RegistrationController extends Controller
{
/**
* Display a listing of the resource.
*
* @return \Illuminate\Http\Response
*/
protected $_config;
protected $customer;
public function __construct(CustomerRepository $customer)
{
$this->_config = request('_config');
$this->customer = $customer;
}
/**
* Opens up the user's sign up form.
*
* @return view
*/
public function show()
{
return view($this->_config['view']);
}
/**
* Method to store user's sign up form data to DB.
*
* @return Mixed
*/
public function create(Request $request)
{
$request->validate([
'first_name' => 'string|required',
'last_name' => 'string|required',
2018-10-25 07:46:45 +00:00
'email' => 'email|required|unique:customers,email',
'password' => 'confirmed|min:6|required',
2018-10-23 11:46:00 +00:00
'agreement' => 'required'
]);
2018-08-22 09:46:27 +00:00
$data = request()->input();
$data['password'] = bcrypt($data['password']);
2018-10-23 11:46:00 +00:00
$data['channel_id'] = core()->getCurrentChannel()->id;
$data['is_verified'] = 0;
if ($this->customer->create($data)) {
2018-08-22 09:46:27 +00:00
$verificationData['email'] = $data['email'];
session()->flash('success', 'Account Created Successfully');
$attempt = auth()->guard('customer')->attempt(request(['email', 'password']));
if($attempt) {
try {
Mail::send(new VerificationEmail($verificationData));
}catch(\Exception $e) {
session()->flash('success', 'Account Created Successfully, But Verification Email Is Not Sent.');
return redirect()->route($this->_config['redirect']);
}
2018-08-22 09:46:27 +00:00
return redirect()->route($this->_config['redirect']);
} else {
return redirect()->back();
}
} else {
session()->flash('error', 'Cannot Create Your Account');
return redirect()->back();
}
}
/**
* Method to verify account
*
*/
public function verifyAccount($email)
{
$customer = $this->customer->findOneByField('email', $email);
if($customer) {
if($customer->is_verified == 1) {
session()->flash('error', 'Your Account is already verified');
} else {
$data['is_verified'] = 1;
$this->customer->update($data,$customer->id);
session()->flash('info', 'Your Account has been verified');
}
} else {
session()->flash('error', 'You dont have account with us');
}
return redirect()->back();
}
}