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:
authorChaoyi Zha <summermontreal@gmail.com>2017-03-26 07:36:12 +0300
committerChaoyi Zha <summermontreal@gmail.com>2017-03-26 07:36:12 +0300
commit4ed599f1f18b33f2486b6bdf3a9d1379bf9838ed (patch)
treea7fcb39f4b3f88d636a748a417f371efdabe4f06
parentb0b690839d5608ea29731c0686c85ddf514ebb98 (diff)
parent71a07e61ed604d24b6e5f75e352745a4c950b16e (diff)
Merge branch 'gurgeng-master'
-rw-r--r--app/Http/Controllers/SetupController.php6
-rw-r--r--app/Http/Controllers/UserController.php9
-rw-r--r--public/js/SetupCtrl.js10
-rw-r--r--public/js/setup.js6
-rw-r--r--resources/views/env.blade.php6
-rw-r--r--resources/views/layouts/minimal.blade.php2
-rw-r--r--resources/views/setup.blade.php21
7 files changed, 50 insertions, 10 deletions
diff --git a/app/Http/Controllers/SetupController.php b/app/Http/Controllers/SetupController.php
index 6b4338b..12a898b 100644
--- a/app/Http/Controllers/SetupController.php
+++ b/app/Http/Controllers/SetupController.php
@@ -22,7 +22,7 @@ class SetupController extends Controller {
private static function setupAlreadyRan() {
return view('error', [
- 'message' => 'Sorry, but you have already ran the setup script previously.'
+ 'message' => 'Sorry, but you have already completed the setup process.'
]);
}
@@ -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_restrict_email_domain = $request->input('setting:restrict_email_domain');
+ $st_allowed_email_domains = $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_RESTRICT_EMAIL_DOMAIN' => $st_restrict_email_domain,
+ 'ST_ALLOWED_EMAIL_DOMAINS' => $st_allowed_email_domains,
'MAIL_ENABLED' => $mail_enabled,
'MAIL_HOST' => $mail_host,
diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
index 4899bd8..4d4a34c 100644
--- a/app/Http/Controllers/UserController.php
+++ b/app/Http/Controllers/UserController.php
@@ -68,6 +68,15 @@ class UserController extends Controller {
$password = $request->input('password');
$email = $request->input('email');
+ if (env('SETTING_RESTRICT_EMAIL_DOMAIN')) {
+ $email_domain = explode('@', $email)[1];
+ $permitted_email_domains = explode(',', env('SETTING_ALLOWED_EMAIL_DOMAINS'));
+
+ if (!in_array($email_domain, $permitted_email_domains)) {
+ return redirect(route('signup'))->with('error', 'Sorry, your email\'s domain is not permitted to create new accounts.');
+ }
+ }
+
$ip = $request->ip();
$user_exists = UserHelper::userExists($username);
diff --git a/public/js/SetupCtrl.js b/public/js/SetupCtrl.js
new file mode 100644
index 0000000..ed6c8a2
--- /dev/null
+++ b/public/js/SetupCtrl.js
@@ -0,0 +1,10 @@
+polr.controller('SetupCtrl', function($scope) {
+ $scope.init = function () {
+ $('[data-toggle="popover"]').popover({
+ trigger: "hover",
+ placement: "right"
+ });
+ };
+
+ $scope.init();
+});
diff --git a/public/js/setup.js b/public/js/setup.js
deleted file mode 100644
index 924ceb2..0000000
--- a/public/js/setup.js
+++ /dev/null
@@ -1,6 +0,0 @@
-$(function () {
- $('[data-toggle="popover"]').popover({
- trigger: "hover",
- placement: "right"
- });
-});
diff --git a/resources/views/env.blade.php b/resources/views/env.blade.php
index 55da877..971df5d 100644
--- a/resources/views/env.blade.php
+++ b/resources/views/env.blade.php
@@ -77,6 +77,12 @@ SETTING_PSEUDORANDOM_ENDING={{$ST_PSEUDOR_ENDING}}
# Set to true to record advanced analytics
SETTING_ADV_ANALYTICS={{$ST_ADV_ANALYTICS}}
+# Set to true to restrict registration to a specific email domain
+SETTING_RESTRICT_EMAIL_DOMAIN={{$ST_RESTRICT_EMAIL_DOMAIN}}
+
+# A comma-separated list of permitted email domains
+SETTING_ALLOWED_EMAIL_DOMAINS={{$ST_ALLOWED_EMAIL_DOMAINS}}
+
# Set each to blank to disable mail
@if($MAIL_ENABLED)
MAIL_DRIVER=smtp
diff --git a/resources/views/layouts/minimal.blade.php b/resources/views/layouts/minimal.blade.php
index 55539a0..65b93cb 100644
--- a/resources/views/layouts/minimal.blade.php
+++ b/resources/views/layouts/minimal.blade.php
@@ -18,7 +18,7 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
-->
<!DOCTYPE html>
-<html>
+<html ng-app="polr">
<head>
<title>Polr @yield('title')</title>
@yield('css')
diff --git a/resources/views/setup.blade.php b/resources/views/setup.blade.php
index 4115a69..264811a 100644
--- a/resources/views/setup.blade.php
+++ b/resources/views/setup.blade.php
@@ -14,7 +14,7 @@ Setup
<a class="navbar-brand" href="/">Polr</a>
</div>
-<div class='row'>
+<div class="row" ng-controller="SetupCtrl" class="ng-root">
<div class='col-md-3'></div>
<div class='col-md-6 setup-body well'>
@@ -175,6 +175,21 @@ Setup
</select>
<p>
+ Restrict Registration Email Domains:
+ <button data-content="Restrict registration to certain email domains." type="button" class="btn btn-xs btn-default setup-qmark" data-toggle="popover">?</button>
+ </p>
+ <select name='setting:restrict_email_domain' class='form-control'>
+ <option value='false'>Allow any email domain to register</option>
+ <option value='true'>Restrict email domains allowed to register</option>
+ </select>
+
+ <p>
+ Permitted Email Domains:
+ <button data-content="A comma-separated list of emails permitted 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='company.com,company-corp.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>
@@ -236,5 +251,7 @@ Setup
@section('js')
<script src="/js/bootstrap.min.js"></script>
-<script src='/js/setup.js'></script>
+<script src='/js/angular.min.js'></script>
+<script src='/js/base.js'></script>
+<script src='/js/SetupCtrl.js'></script>
@endsection