Files
merchbay/app/Http/Controllers/CustomAuthController.php
franknstayn 5483c9517d first commit
2021-07-03 18:39:08 +08:00

110 lines
3.0 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?php namespace App\Http\Controllers;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use Auth;
use App\Traits\CaptchaTrait;
use App\User;
use Validator;
use Illuminate\Http\Request;
class CustomAuthController extends Controller {
use CaptchaTrait;
public function authenticate(Request $request){
$post = $request->all();
$email = $post['email'];
$password = $post['password'];
if (Auth::attempt(['email' => $email, 'password' => $password])){
if (Auth::user()->role == 'admin') {
$message = '
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> ERROR:</h4>
You are not allowed to enter to this site.
</div>';
return response()->json(array('success' => false, 'message'=>$message));
}
$message = "success";
$navbar = view('layout.navbar', compact('view'))->render();
$save_design_button = ' <button type="button" class="btn btn-lg btn-primary pull-right" data-toggle="modal" data-target="#modalDesignName"><i class="fa fa-floppy-o" aria-hidden="true"></i> Save Design</button>';
return response()->json(array(
'success' => true,
'message'=>$message,
'navbar'=>$navbar,
'save_design_button' => $save_design_button
));
}else{
$message = '
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> ERROR:</h4>
Username or Password is incorrect.
</div>';
return response()->json(array('success' => false, 'message'=>$message));
}
}
public function postRegister(Request $request){
$post = $request->all();
$post['captcha'] = $this->captchaCheck();
$validator = Validator::make($post, [
'username' => 'unique:user_logins',
'email' => 'unique:user_logins',
'g-recaptcha-response' => 'required',
'captcha' => 'required|min:1'
],
[
'g-recaptcha-response.required' => 'Captcha is required',
'captcha.min' => 'Wrong captcha, please try again.'
]);
if ($validator->fails())
{
$errors = "";
foreach($validator->errors()->all() as $error){
$errors .= "<li>".$error."</li>";
}
$message = '
<div class="alert alert-danger alert-dismissible">
<button type="button" class="close" data-dismiss="alert" aria-hidden="true">×</button>
<h4><i class="icon fa fa-ban"></i> ERROR:</h4>
'.$errors.
'</div>';
return response()->json(array(
'success' => false,
'message' => $message
));
}
User::create([
'name' => $post['name'],
'username' => $post['username'],
'email' => $post['email'],
'password' => bcrypt($post['password']),
'role' => 'user'
]);
Auth::attempt(['email' => $post['email'], 'password' => $post['password']]);
return response()->json(array(
'success' => true
));
}
}