X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/a274406038e13cf678e14d65dfa70d04ead67206..refs/pull/3138/head:/app/Http/Controllers/UserController.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index a0da220ee..a78f921f2 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -13,6 +13,7 @@ use BookStack\Uploads\ImageRepo; use Exception; use Illuminate\Http\Request; use Illuminate\Support\Str; +use Illuminate\Validation\Rules\Password; use Illuminate\Validation\ValidationException; class UserController extends Controller @@ -74,18 +75,18 @@ class UserController extends Controller { $this->checkPermission('users-manage'); $validationRules = [ - 'name' => 'required', - 'email' => 'required|email|unique:users,email', + 'name' => ['required'], + 'email' => ['required', 'email', 'unique:users,email'], ]; $authMethod = config('auth.method'); $sendInvite = ($request->get('send_invite', 'false') === 'true'); if ($authMethod === 'standard' && !$sendInvite) { - $validationRules['password'] = 'required|min:6'; - $validationRules['password-confirm'] = 'required|same:password'; - } elseif ($authMethod === 'ldap' || $authMethod === 'saml2') { - $validationRules['external_auth_id'] = 'required'; + $validationRules['password'] = ['required', Password::default()]; + $validationRules['password-confirm'] = ['required', 'same:password']; + } elseif ($authMethod === 'ldap' || $authMethod === 'saml2' || $authMethod === 'openid') { + $validationRules['external_auth_id'] = ['required']; } $this->validate($request, $validationRules); @@ -93,7 +94,7 @@ class UserController extends Controller if ($authMethod === 'standard') { $user->password = bcrypt($request->get('password', Str::random(32))); - } elseif ($authMethod === 'ldap' || $authMethod === 'saml2') { + } elseif ($authMethod === 'ldap' || $authMethod === 'saml2' || $authMethod === 'openid') { $user->external_auth_id = $request->get('external_auth_id'); } @@ -155,12 +156,12 @@ class UserController extends Controller $this->checkPermissionOrCurrentUser('users-manage', $id); $this->validate($request, [ - 'name' => 'min:2', - 'email' => 'min:2|email|unique:users,email,' . $id, - 'password' => 'min:6|required_with:password_confirm', - 'password-confirm' => 'same:password|required_with:password', - 'setting' => 'array', - 'profile_image' => 'nullable|' . $this->getImageValidationRules(), + 'name' => ['min:2'], + 'email' => ['min:2', 'email', 'unique:users,email,' . $id], + 'password' => ['required_with:password_confirm', Password::default()], + 'password-confirm' => ['same:password', 'required_with:password'], + 'setting' => ['array'], + 'profile_image' => array_merge(['nullable'], $this->getImageValidationRules()), ]); $user = $this->userRepo->getById($id);