Skip to content

Commit 5a368e1

Browse files
Require current password in API update password
1 parent 52a77a2 commit 5a368e1

File tree

1 file changed

+12
-3
lines changed

1 file changed

+12
-3
lines changed

src/Http/Controllers/ProfileController.php

+12-3
Original file line numberDiff line numberDiff line change
@@ -99,8 +99,8 @@ public function updateProfile(Request $request, BaseHttpResponse $response)
9999
'description' => ['nullable', 'string', 'max:1000'],
100100
'email' => [
101101
'nullable',
102-
'max:60',
103-
'min:6',
102+
'max:60',
103+
'min:6',
104104
'email',
105105
'unique:' . ApiHelper::getTable() . ',email,' . $userId,
106106
],
@@ -130,6 +130,7 @@ public function updateProfile(Request $request, BaseHttpResponse $response)
130130
* Update password
131131
*
132132
* @bodyParam password string required The new password of user.
133+
* @bodyParam old_password string required The current password of user.
133134
*
134135
* @group Profile
135136
* @authenticated
@@ -138,6 +139,7 @@ public function updatePassword(Request $request, BaseHttpResponse $response)
138139
{
139140
$validator = Validator::make($request->input(), [
140141
'password' => 'required|min:6|max:60',
142+
'old_password' => 'required|string|min:6|max:60',
141143
]);
142144

143145
if ($validator->fails()) {
@@ -147,10 +149,17 @@ public function updatePassword(Request $request, BaseHttpResponse $response)
147149
->setMessage(__('Data invalid!') . ' ' . implode(' ', $validator->errors()->all()) . '.');
148150
}
149151

152+
if (! Hash::check($request->input('old_password'), $request->user()->getAuthPassword())) {
153+
return $response
154+
->setError()
155+
->setCode(403)
156+
->setMessage(__('Current password is not valid!'));
157+
}
158+
150159
$request->user()->update([
151160
'password' => Hash::make($request->input('password')),
152161
]);
153162

154-
return $response->setMessage(trans('core/acl::users.password_update_success'));
163+
return $response->setMessage(__('Update password successfully!'));
155164
}
156165
}

0 commit comments

Comments
 (0)