diff options
author | gurgeng <grigory3@msu.edu> | 2017-03-25 05:57:31 +0300 |
---|---|---|
committer | Chaoyi Zha <summermontreal@gmail.com> | 2017-03-25 23:04:01 +0300 |
commit | 44f69c3910e79012e4f242b76e72aaa9ca046763 (patch) | |
tree | 58706c1b4afdbdf5a9ab46c920f323a01f7eb950 | |
parent | b0b690839d5608ea29731c0686c85ddf514ebb98 (diff) |
Add initial implementation of registration email restrictions
-rw-r--r-- | app/Http/Controllers/SetupController.php | 4 | ||||
-rw-r--r-- | app/Http/Controllers/UserController.php | 8 | ||||
-rw-r--r-- | resources/views/setup.blade.php | 16 |
3 files changed, 28 insertions, 0 deletions
diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php index 6b4338b..f0431c9 100644 --- a/app/Http/Controllers/SetupController.php +++ b/app/Http/Controllers/SetupController.php @@ -112,6 +112,8 @@ class SetupController extends Controller { $st_index_redirect = $request->input('setting:index_redirect'); $st_redirect_404 = $request->input('setting:redirect_404'); $st_password_recov = $request->input('setting:password_recovery'); + $st_specify_email = $request->input('setting:specify_email') + $st_allowed_email = $request->input('setting:allowed_email_domains') $st_base = $request->input('setting:base'); $st_auto_api_key = $request->input('setting:auto_api_key'); @@ -155,6 +157,8 @@ class SetupController extends Controller { 'ST_INDEX_REDIRECT' => $st_index_redirect, 'ST_REDIRECT_404' => $st_redirect_404, 'ST_PASSWORD_RECOV' => $st_password_recov, + 'ST_SPECIFY_EMAIL' => $st_specify_email, + 'ST_ALLOWED_EMAIL' => $st_allowed_email, 'MAIL_ENABLED' => $mail_enabled, 'MAIL_HOST' => $mail_host, diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index 4899bd8..a23f1bf 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -67,6 +67,14 @@ class UserController extends Controller { $username = $request->input('username'); $password = $request->input('password'); $email = $request->input('email'); + $email_domain = explode("@", $email)[1]; + + if (env('ST_RESTRICT_EMAIL_DOMAIN')) { + if ($email_domain != env('ST_RESTRICT_EMAIL_DOMAIN_NAME')) { + // ... throw an error + return redirect(route('signup'))->with('error', 'Sorry, your email domain is not allowed to register. Try again.'); + } + } $ip = $request->ip(); diff --git a/resources/views/setup.blade.php b/resources/views/setup.blade.php index 4115a69..d0a2b40 100644 --- a/resources/views/setup.blade.php +++ b/resources/views/setup.blade.php @@ -175,6 +175,22 @@ Setup </select> <p> + Specify Email Domain: + <button data-content="Specifying the email will allow you to limit who is able to register." type="button" class="btn btn-xs btn-default setup-qmark" data-toggle="popover">?</button> + </p> + <select name='setting:specify_email' class='form-control'> + <option value='false'>Specify email disabled</option> + <option value='true'>Specify email enabled</option> + </select> + <p class='text-muted'> + Please ensure if you choose to limit to a specific email domain that the domain is properly setup. + </p> + <p> + Email Domain: + <button data-content="Enter the domain of the emails you'd like to be able to register." type="button" class="btn btn-xs btn-default setup-qmark" data-toggle="popover">?</button> + </p> + <input type='text' class='form-control' name='setting:allowed_email_domains' placeholder='gmail.com'> + <p> Password Recovery: <button data-content="Password recovery allows users to reset their password through email." type="button" class="btn btn-xs btn-default setup-qmark" data-toggle="popover">?</button> </p> |