Add change password for pembida

This commit is contained in:
Amir
2023-06-06 08:54:39 +08:00
parent e2a31a2703
commit 0fed12900e
2 changed files with 91 additions and 0 deletions
@@ -7,6 +7,8 @@ use Illuminate\Support\Facades\Validator;
use Illuminate\Http\Request;
use App\Models\User;
use DB;
use Illuminate\Support\Facades\Hash;
use Illuminate\Support\Facades\Auth;
use Carbon\Carbon;
class UserController extends Controller
@@ -53,4 +55,91 @@ class UserController extends Controller
return response()->json($user_update);
}
public function changePassword(Request $request)
{
$validator = Validator::make($request->all(), [
'current_password' => 'required',
'new_password' => 'required|string|min:8',
'confirm_new_password' => 'required|string|min:8',
], [
'current_password.required' => ['status' => '1', 'message' => 'Sila isi kata laluan asal.'],
'new_password.required' => ['status' => '2', 'message' => 'Sila isi kata laluan baharu.'],
'new_password.min' => [
'string' => [
'status' => 3,
'message' => 'Kata laluan baharu mestilah melebihi 8 karakter.',
]
],
'confirm_new_password.required' => ['status' => '4', 'message' => 'Sila isi pengesahan kata laluan baharu.'],
'confirm_new_password.min' => [
'string' => [
'status' => 5,
'message' => 'Pengesahan kata laluan baharu mestilah melebihi 8 karakter.',
]
],
]);
if ($validator->fails()) {
$all_errors = [
'success' => false,
'message' => $validator->errors()
];
return response($all_errors, 201);
}
if (!(Hash::check($request->get('current_password'), Auth::user()->password))) {
return response()->json([
'success' => false,
'message' => [
'current_password' => [
0 => [
'status' => 9,
'message' => 'Kata laluan asal salah.'
]
]
]
]);
}
if (strcmp($request->get('current_password'), $request->get('new_password')) == 0) {
return response()->json([
'success' => false,
'message' => [
'current_password' => [
0 => [
'status' => 8,
'message' => 'Kata laluan baharu tidak boleh sama dengan kata laluan asal.'
]
]
]
]);
}
if (strcmp($request->get('new_password'), $request->get('confirm_new_password')) != 0) {
return response()->json([
'success' => false,
'message' => [
'current_password' => [
0 => [
'status' => 12,
'message' => 'Kata laluan baharu tidak sama dengan pengesahan kata laluan baharu.'
]
]
]
]);
}
$validated_password = $validator->validated();
$user = Auth::user();
$user->password = bcrypt($validated_password['new_password']);
$user->save();
return response()->json([
'success' => true,
'status' => 55,
'message' => 'Kata laluan berjaya diubah'
]);
}
}
+2
View File
@@ -43,6 +43,8 @@ Route::group(['middleware' => ['auth:sanctum']], function () {
Route::post('/user/logout', [AuthController::class, 'logoutUser']);
Route::get('/user/profile/{nokp}', [UserController::class, 'getProfileUser']);
Route::post('/password/reset', [ResetPasswordController::class, 'reset']);
//change password user
Route::post('/changePassword', [UserController::class, 'changePassword']);
// User Profile
Route::get('/user/profile', [UserController::class, 'getProfileUser']);