Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/cydrobolt/polr.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorgurgeng <grigory3@msu.edu>2017-03-25 05:57:31 +0300
committerChaoyi Zha <summermontreal@gmail.com>2017-03-25 23:04:01 +0300
commit44f69c3910e79012e4f242b76e72aaa9ca046763 (patch)
tree58706c1b4afdbdf5a9ab46c920f323a01f7eb950
parentb0b690839d5608ea29731c0686c85ddf514ebb98 (diff)
Add initial implementation of registration email restrictions
-rw-r--r--app/Http/Controllers/SetupController.php4
-rw-r--r--app/Http/Controllers/UserController.php8
-rw-r--r--resources/views/setup.blade.php16
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>