diff --git a/Changelog b/Changelog index 920c835c2..149093deb 100755 --- a/Changelog +++ b/Changelog @@ -1,4 +1,5 @@ 2018-04-05 DariusIII + * Chg: Update and improve registration page * Fix: Fix NOCAPTCHA on login pages * Chg: Add ConsoleController * Chg: Update handling of requests for nzb files diff --git a/app/Http/Controllers/Auth/RegisterController.php b/app/Http/Controllers/Auth/RegisterController.php index 97548705a..eeaacef25 100644 --- a/app/Http/Controllers/Auth/RegisterController.php +++ b/app/Http/Controllers/Auth/RegisterController.php @@ -11,7 +11,6 @@ use Blacklight\utility\Utility; use App\Http\Controllers\Controller; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\Password; -use Illuminate\Support\Facades\Validator; use Illuminate\Foundation\Auth\RegistersUsers; class RegisterController extends Controller @@ -46,22 +45,6 @@ class RegisterController extends Controller $this->middleware('guest'); } - /** - * Get a validator for an incoming registration request. - * - * @param array $data - * @return \Illuminate\Contracts\Validation\Validator - */ - protected function validator(array $data) - { - return Validator::make($data, [ - 'username' => 'required|string|max:255', - 'email' => 'required|string|email|max:255|unique:users', - 'password' => 'required|string|min:8|confirmed', - 'g-recaptcha-response' => 'required|captcha', - ]); - } - /** * Create a new user instance after a valid registration. * @@ -83,11 +66,28 @@ class RegisterController extends Controller ]); } + /** + * @param \Illuminate\Http\Request $request + * + * @throws \Exception + */ public function register(Request $request) { $error = $userName = $password = $confirmPassword = $email = $inviteCode = $inviteCodeQuery = ''; $showRegister = 1; + $this->validate($request, [ + 'username' => 'required|string|max:255', + 'email' => 'required|string|email|max:255|unique:users', + 'password' => 'required|string|min:8|confirmed', + ]); + + if (env('NOCAPTCHA_ENABLED') === true) { + $this->validate($request, [ + 'g-recaptcha-response' => 'required|captcha', + ]); + } + if ((int) Settings::settingValue('..registerstatus') === Settings::REGISTER_STATUS_CLOSED) { session()->flash('status', 'Registrations are currently disabled.'); $showRegister = 0; @@ -103,16 +103,12 @@ class RegisterController extends Controller case 'submit': $userName = $request->input('username'); $password = $request->input('password'); - $confirmPassword = $request->input('confirmpassword'); + $confirmPassword = $request->input('password_confirmation'); $email = $request->input('email'); - if (! empty($request->input('invitecode'))) { + if ($request->has('invitecode')) { $inviteCode = $request->input('invitecode'); } - // Check uname/email isn't in use, password valid. If all good create new user account and redirect back to home page. - if ($password !== $confirmPassword) { - session()->flash('status', 'Password Mismatch'); - } else { // Get the default user role. $userDefault = UserRole::getDefaultRole(); @@ -173,7 +169,6 @@ class RegisterController extends Controller return redirect()->intended($this->redirectPath()); } - } break; case 'view': { $inviteCode = $request->input('invitecode') ?? null; @@ -195,7 +190,7 @@ class RegisterController extends Controller [ 'username' => Utility::htmlfmt($userName), 'password' => Utility::htmlfmt($password), - 'confirmpassword' => Utility::htmlfmt($confirmPassword), + 'password_confirmation' => Utility::htmlfmt($confirmPassword), 'email' => Utility::htmlfmt($email), 'invitecode' => Utility::htmlfmt($inviteCode), 'invite_code_query' => Utility::htmlfmt($inviteCodeQuery), @@ -212,6 +207,8 @@ class RegisterController extends Controller { $theme = Settings::settingValue('site.main.style'); + $nocaptcha = env('NOCAPTCHA_ENABLED'); + $meta_title = 'Register'; $meta_keywords = 'register,signup,registration'; $meta_description = 'Register'; @@ -223,6 +220,7 @@ class RegisterController extends Controller 'meta_title' => $meta_title, 'meta_keywords' => $meta_keywords, 'meta_description' => $meta_description, + 'nocaptcha' => $nocaptcha, ] ); app('smarty.view')->display($theme.'/basepage.tpl'); diff --git a/public/pages/profileedit.php b/public/pages/profileedit.php index 04370549f..19abf53f2 100644 --- a/public/pages/profileedit.php +++ b/public/pages/profileedit.php @@ -42,7 +42,7 @@ switch ($action) { request()->merge(['saburl' => request()->input('saburl').'/']); } - if (request()->input('password') !== null && request()->input('password') !== request()->input('confirmpassword')) { + if (request()->input('password') !== null && request()->input('password') !== request()->input('password_confirmation')) { $errorStr = 'Password Mismatch'; } elseif (request()->input('password') !== null && ! User::isValidPassword(request()->input('password'))) { $errorStr = 'Your password must be longer than eight characters, have at least 1 number, at least 1 capital and at least one lowercase letter'; diff --git a/resources/views/themes/Charisma/profileedit.tpl b/resources/views/themes/Charisma/profileedit.tpl index f45024ab5..e47a248e8 100755 --- a/resources/views/themes/Charisma/profileedit.tpl +++ b/resources/views/themes/Charisma/profileedit.tpl @@ -56,8 +56,8 @@
- {NoCaptcha::display()}{NoCaptcha::renderJs()} + {if $nocaptcha != false} + {NoCaptcha::display()}{NoCaptcha::renderJs()} + {/if}
diff --git a/resources/views/themes/Gentele/profileedit.tpl b/resources/views/themes/Gentele/profileedit.tpl index 4feae3196..9022d2b54 100755 --- a/resources/views/themes/Gentele/profileedit.tpl +++ b/resources/views/themes/Gentele/profileedit.tpl @@ -55,8 +55,8 @@