X-Git-Url: http://source.bookstackapp.com/bookstack/blobdiff_plain/14feef3679b6ecdce656d56dd754357997084632..refs/pull/60/head:/app/Http/Controllers/UserController.php diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index f504f4477..bf25eafb2 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -58,18 +58,31 @@ class UserController extends Controller public function store(Request $request) { $this->checkPermission('user-create'); - $this->validate($request, [ + $validationRules = [ 'name' => 'required', 'email' => 'required|email|unique:users,email', - 'password' => 'required|min:5', - 'password-confirm' => 'required|same:password', 'role' => 'required|exists:roles,id' - ]); + ]; + + $authMethod = config('auth.method'); + if ($authMethod === 'standard') { + $validationRules['password'] = 'required|min:5'; + $validationRules['password-confirm'] = 'required|same:password'; + } elseif ($authMethod === 'ldap') { + $validationRules['external_auth_id'] = 'required'; + } + $this->validate($request, $validationRules); + $user = $this->user->fill($request->all()); - $user->password = bcrypt($request->get('password')); - $user->save(); + if ($authMethod === 'standard') { + $user->password = bcrypt($request->get('password')); + } elseif ($authMethod === 'ldap') { + $user->external_auth_id = $request->get('external_auth_id'); + } + + $user->save(); $user->attachRoleId($request->get('role')); // Get avatar from gravatar and save @@ -117,8 +130,8 @@ class UserController extends Controller }); $this->validate($request, [ - 'name' => 'required', - 'email' => 'required|email|unique:users,email,' . $id, + 'name' => 'min:2', + 'email' => 'min:2|email|unique:users,email,' . $id, 'password' => 'min:5|required_with:password_confirm', 'password-confirm' => 'same:password|required_with:password', 'role' => 'exists:roles,id'