Skip to content

Commit 6b28186

Browse files
authored
Merge pull request #398 from LavaLite/develop
Develop
2 parents ecc39a2 + 101f7c5 commit 6b28186

40 files changed

+1095
-664
lines changed

Diff for: .gitignore

+6-1
Original file line numberDiff line numberDiff line change
@@ -106,4 +106,9 @@ Homestead.json
106106
# composer files
107107
composer.dev.json
108108
composer.lock
109-
package-lock.json
109+
110+
# package files
111+
package-lock.json
112+
113+
# all lock files
114+
*.lock
+107
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,107 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use Exception;
7+
use Illuminate\Http\Request;
8+
use Illuminate\Support\Facades\Hash;
9+
use Illuminate\Validation\ValidationException;
10+
use Litepie\Http\Response\AuthResponse;
11+
use Litepie\Theme\ThemeAndViews;
12+
use Litepie\User\Traits\RoutesAndGuards;
13+
14+
class AuthenticatedApiController extends Controller
15+
{
16+
use RoutesAndGuards, ThemeAndViews;
17+
/**
18+
* Create a new controller instance.
19+
*
20+
* @return void
21+
*/
22+
public function __construct()
23+
{
24+
$this->middleware('set.guard');
25+
$this->middleware('auth')->only(['profile']);
26+
$this->middleware('guest')->only(['store']);
27+
$this->middleware(function ($request, $next) {
28+
$this->response = resolve(AuthResponse::class);
29+
$this->setTheme();
30+
return $next($request);
31+
});
32+
33+
}
34+
35+
/**
36+
* Handle an incoming authentication request.
37+
*/
38+
public function store(Request $request)
39+
{
40+
try {
41+
42+
$request->validate([
43+
'email' => 'required|email',
44+
'password' => 'required',
45+
'device_name' => 'required',
46+
]);
47+
$model = $this->getAuthModel();
48+
$user = $model::where('email', $request->email)->first();
49+
if (!$user || !Hash::check($request->password, $user->password)) {
50+
throw ValidationException::withMessages([
51+
'email' => trans('auth.failed'),
52+
]);
53+
}
54+
$token = $user->createToken($request->device_name)->plainTextToken;
55+
56+
$user = $user->only([
57+
'name',
58+
'email',
59+
'sex',
60+
'mobile',
61+
'languages',
62+
'designation',
63+
'picture',
64+
]);
65+
66+
$user['token'] = $token;
67+
return $user;
68+
} catch (Exception $e) {
69+
return $e->errors();
70+
}
71+
}
72+
73+
/**
74+
* Destroy an authenticated session.
75+
*/
76+
public function destroy(Request $request)
77+
{
78+
$request
79+
->user()
80+
->currentAccessToken()
81+
->delete();
82+
return [
83+
'code' => 200,
84+
'message' => trans('auth.loggedout'),
85+
];
86+
}
87+
88+
/**
89+
* Show dashboard for each user.
90+
*
91+
* @return \Illuminate\Http\Response
92+
*/
93+
public function profile(Request $request)
94+
{
95+
$user = $request->user()->only([
96+
'name',
97+
'email',
98+
'sex',
99+
'mobile',
100+
'languages',
101+
'designation',
102+
'picture',
103+
]);
104+
$user['token'] = trim($request->header('Authorization'), 'Bearer ');
105+
return compact('user');
106+
}
107+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Http\Requests\Auth\LoginRequest;
7+
use App\Providers\RouteServiceProvider;
8+
use Illuminate\Http\RedirectResponse;
9+
use Illuminate\Http\Request;
10+
use Illuminate\Support\Facades\Auth;
11+
use Litepie\Http\Response\AuthResponse;
12+
use Litepie\Theme\ThemeAndViews;
13+
14+
class AuthenticatedSessionController extends Controller
15+
{
16+
use ThemeAndViews;
17+
/**
18+
* Create a new controller instance.
19+
*
20+
* @return void
21+
*/
22+
public function __construct()
23+
{
24+
$this->middleware('set.guard');
25+
$this->middleware(function ($request, $next) {
26+
$this->response = resolve(AuthResponse::class);
27+
$this->setTheme();
28+
return $next($request);
29+
});
30+
}
31+
32+
/**
33+
* Display the login view.
34+
*/
35+
public function create()
36+
{
37+
return $this->response
38+
->setMetaTitle(__('Login'))
39+
->layout('auth')
40+
->view('auth.login')
41+
->output();
42+
}
43+
44+
/**
45+
* Handle an incoming authentication request.
46+
*/
47+
public function store(LoginRequest $request): RedirectResponse
48+
{
49+
$request->authenticate();
50+
51+
$request->session()->regenerate();
52+
53+
return redirect()->intended(RouteServiceProvider::HOME);
54+
}
55+
56+
/**
57+
* Destroy an authenticated session.
58+
*/
59+
public function destroy(Request $request): RedirectResponse
60+
{
61+
Auth::guard(guard())->logout();
62+
63+
$request->session()->invalidate();
64+
65+
$request->session()->regenerateToken();
66+
67+
return redirect('/');
68+
}
69+
}

Diff for: app/Http/Controllers/Auth/ConfirmPasswordController.php

-40
This file was deleted.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Providers\RouteServiceProvider;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
use Illuminate\Support\Facades\Auth;
10+
use Illuminate\Validation\ValidationException;
11+
use Litepie\Http\Response\AuthResponse;
12+
use Litepie\Theme\ThemeAndViews;
13+
14+
class ConfirmablePasswordController extends Controller
15+
{
16+
use ThemeAndViews;
17+
/**
18+
* Create a new controller instance.
19+
*
20+
* @return void
21+
*/
22+
public function __construct()
23+
{
24+
$this->middleware(function ($request, $next) {
25+
$this->response = resolve(AuthResponse::class);
26+
$this->setTheme();
27+
return $next($request);
28+
});
29+
}
30+
/**
31+
* Show the confirm password view.
32+
*/
33+
public function show()
34+
{
35+
return $this->response->setMetaTitle('Confirm Password')
36+
->layout('auth')
37+
->view('auth.confirm-password')
38+
->output();
39+
}
40+
41+
/**
42+
* Confirm the user's password.
43+
*/
44+
public function store(Request $request): RedirectResponse
45+
{
46+
if (!Auth::guard(guard())->validate([
47+
'email' => $request->user()->email,
48+
'password' => $request->password,
49+
])) {
50+
throw ValidationException::withMessages([
51+
'password' => __('auth.password'),
52+
]);
53+
}
54+
55+
$request->session()->put('auth.password_confirmed_at', time());
56+
57+
return redirect()->intended(RouteServiceProvider::HOME);
58+
}
59+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Providers\RouteServiceProvider;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
10+
class EmailVerificationNotificationController extends Controller
11+
{
12+
/**
13+
* Send a new email verification notification.
14+
*/
15+
public function store(Request $request): RedirectResponse
16+
{
17+
if ($request->user()->hasVerifiedEmail()) {
18+
return redirect()->intended(RouteServiceProvider::HOME);
19+
}
20+
21+
$request->user()->sendEmailVerificationNotification();
22+
23+
return back()->with('status', 'verification-link-sent');
24+
}
25+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?php
2+
3+
namespace App\Http\Controllers\Auth;
4+
5+
use App\Http\Controllers\Controller;
6+
use App\Providers\RouteServiceProvider;
7+
use Illuminate\Http\RedirectResponse;
8+
use Illuminate\Http\Request;
9+
use Inertia\Inertia;
10+
use Inertia\Response;
11+
12+
class EmailVerificationPromptController extends Controller
13+
{
14+
/**
15+
* Display the email verification prompt.
16+
*/
17+
public function __invoke(Request $request): RedirectResponse|Response
18+
{
19+
return $request->user()->hasVerifiedEmail()
20+
? redirect()->intended(RouteServiceProvider::HOME)
21+
: Inertia::render('Auth/VerifyEmail', ['status' => session('status')]);
22+
}
23+
}

Diff for: app/Http/Controllers/Auth/ForgotPasswordController.php

-51
This file was deleted.

0 commit comments

Comments
 (0)