Merge branch 'main' of http://git.wdipl.com/Nikhil.Kadam/vib360 into nikhil
This commit is contained in:
@@ -6,6 +6,7 @@ use App\Http\Controllers\Controller;
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Requests\CreateUserRequest;
|
||||
use App\Mail\Admin\UserCreatedMail;
|
||||
use App\Mail\UserLink;
|
||||
use App\Models\User;
|
||||
use App\Services\AdminService;
|
||||
use Exception;
|
||||
@@ -305,7 +306,7 @@ class UsersController extends Controller
|
||||
'message' => 'User created successfully',
|
||||
'data' => [
|
||||
'user_id' => $userId,
|
||||
'token'=>$randomToken,
|
||||
'token' => $randomToken,
|
||||
'activation_link' => $newActivationLink,
|
||||
// 'external_service_response' => $serviceResponse
|
||||
]
|
||||
@@ -481,7 +482,7 @@ class UsersController extends Controller
|
||||
// }
|
||||
|
||||
|
||||
public function activate($id,$token, Request $request)
|
||||
public function activate($id, $token, Request $request)
|
||||
{
|
||||
|
||||
try {
|
||||
@@ -759,4 +760,91 @@ class UsersController extends Controller
|
||||
return jsonResponseWithErrorMessage($e->getMessage(), 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function userEmailCheck(Request $request)
|
||||
{
|
||||
try {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'email' => 'required|email'
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Validation failed',
|
||||
'errors' => $validator->errors()
|
||||
], 422);
|
||||
}
|
||||
|
||||
$email = $request->input('email');
|
||||
$user = User::where('email', $email)->first();
|
||||
|
||||
if ($user) {
|
||||
|
||||
// If user
|
||||
$mailData = [
|
||||
'name' => $user->first_name,
|
||||
'user_id' => $user->id,
|
||||
];
|
||||
|
||||
Mail::to($user->email)->send(new UserLink($mailData));
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Email exists',
|
||||
'user_id' => $user->id
|
||||
], 200);
|
||||
}
|
||||
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Email does not exist'
|
||||
], 404);
|
||||
} catch (Exception $e) {
|
||||
Log::error("An error occurred while checking email: " . $e->getMessage());
|
||||
return response()->json(['error' => 'Failed to check email', 'details' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
|
||||
public function userUpdatePassword(Request $request)
|
||||
{
|
||||
try {
|
||||
$validator = Validator::make($request->all(), [
|
||||
'user_id' => 'required',
|
||||
'password' => 'required'
|
||||
]);
|
||||
|
||||
if ($validator->fails()) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'Validation failed',
|
||||
'errors' => $validator->errors()
|
||||
], 422);
|
||||
}
|
||||
|
||||
$userId = $request->input('user_id');
|
||||
$password = $request->input('password');
|
||||
|
||||
$user = User::find($userId);
|
||||
|
||||
if (!$user) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => 'User not found'
|
||||
], 404);
|
||||
}
|
||||
|
||||
// Update password
|
||||
$user->password = Hash::make($password);
|
||||
$user->save();
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'message' => 'Password updated successfully'
|
||||
], 200);
|
||||
} catch (Exception $e) {
|
||||
Log::error("An error occurred while updating password: " . $e->getMessage());
|
||||
return response()->json(['error' => 'Failed to update password', 'details' => $e->getMessage()], 500);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
59
app/Mail/UserLink.php
Normal file
59
app/Mail/UserLink.php
Normal file
@@ -0,0 +1,59 @@
|
||||
<?php
|
||||
|
||||
namespace App\Mail;
|
||||
|
||||
use Illuminate\Bus\Queueable;
|
||||
use Illuminate\Contracts\Queue\ShouldQueue;
|
||||
use Illuminate\Mail\Mailable;
|
||||
use Illuminate\Mail\Mailables\Content;
|
||||
use Illuminate\Mail\Mailables\Envelope;
|
||||
use Illuminate\Queue\SerializesModels;
|
||||
|
||||
class UserLink extends Mailable
|
||||
{
|
||||
use Queueable, SerializesModels;
|
||||
public $mailData;
|
||||
|
||||
/**
|
||||
* Create a new message instance.
|
||||
*/
|
||||
public function __construct($mailData)
|
||||
|
||||
{
|
||||
|
||||
$this->mailData = $mailData;
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/**
|
||||
* Get the message envelope.
|
||||
*/
|
||||
public function envelope(): Envelope
|
||||
{
|
||||
return new Envelope(
|
||||
subject: 'Update Password',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the message content definition.
|
||||
*/
|
||||
public function content(): Content
|
||||
{
|
||||
return new Content(
|
||||
view: 'view.user_update_password',
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the attachments for the message.
|
||||
*
|
||||
* @return array<int, \Illuminate\Mail\Mailables\Attachment>
|
||||
*/
|
||||
public function attachments(): array
|
||||
{
|
||||
return [];
|
||||
}
|
||||
}
|
||||
26
resources/views/Mails/user_update_password.blade.php
Normal file
26
resources/views/Mails/user_update_password.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>Update Your Password</title>
|
||||
</head>
|
||||
<body>
|
||||
<h1>Hello, {{ $user['name'] }}!</h1>
|
||||
|
||||
<p>We received a request to update the password for your account.</p>
|
||||
|
||||
<p>If you made this request, you can update your password using the link below:</p>
|
||||
|
||||
<p>
|
||||
<a href=" http://vib360.betadelivery.com/forget-password/{{$user['user_id'] }}"
|
||||
style="display: inline-block; padding: 10px 20px; color: #fff; background-color: #007bff; text-decoration: none; border-radius: 5px;">
|
||||
Update Password
|
||||
</a>
|
||||
</p>
|
||||
|
||||
|
||||
<p>If you did not request a password update, no action is needed. Your account is secure.</p>
|
||||
|
||||
<p>Thank you,<br>The Support Team</p>
|
||||
</body>
|
||||
</html>
|
||||
@@ -5,7 +5,7 @@ use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\APIS\CustomerApi\UserAssetLinkController;
|
||||
use Tymon\JWTAuth\Facades\JWTAuth;
|
||||
use App\Http\Controllers\AlarmControllerCommon;
|
||||
|
||||
use App\Http\Controllers\APIS\AdminApi\UsersController;
|
||||
use App\Http\Controllers\APIS\CustomerApi\AuthController;
|
||||
use App\Http\Controllers\APIS\CustomerApi\CustomerDeviceInfoController;
|
||||
use App\Http\Controllers\APIS\CustomerApi\TelemetryController;
|
||||
@@ -63,4 +63,12 @@ Route::middleware(['customerApiBasicAuth'])->group(function () {
|
||||
Route::post('/get-user-alarms', [TelemetryController::class, 'getUserAlarms']);
|
||||
Route::get('/get-user-device-by-asset/{assetId}', [TelemetryController::class, 'getUserDeviceByAsset']);
|
||||
Route::get('/get-user-assets', [TelemetryController::class, 'getUserAssets']);
|
||||
|
||||
|
||||
|
||||
});
|
||||
|
||||
// user password update
|
||||
Route::get('/user-password-update-link', [UsersController::class, 'userEmailCheck']);
|
||||
Route::post('/user-password-update', [UsersController::class, 'userUpdatePassword'])->name('user.password.update');
|
||||
|
||||
|
||||
Reference in New Issue
Block a user