فهرست منبع

Update RegisterController, improve max_users calculation and add kb page to redirect to if conditions are met

Daniel Supernault 2 سال پیش
والد
کامیت
1bbee6d07b
3فایلهای تغییر یافته به همراه25 افزوده شده و 1 حذف شده
  1. 4 1
      app/Http/Controllers/Auth/RegisterController.php
  2. 20 0
      resources/views/site/help/instance-max-users.blade.php
  3. 1 0
      routes/web.php

+ 4 - 1
app/Http/Controllers/Auth/RegisterController.php

@@ -181,6 +181,9 @@ class RegisterController extends Controller
 			$limit = config('pixelfed.max_users');
 			if($limit) {
 				$count = User::where(function($q){ return $q->whereNull('status')->orWhereNotIn('status', ['deleted','delete']); })->count();
+				if($limit <= $count) {
+					return redirect(route('help.instance-max-users-limit'));
+				}
 				abort_if($limit <= $count, 404);
 				return view('auth.register');
 			} else {
@@ -209,7 +212,7 @@ class RegisterController extends Controller
 		$limit = config('pixelfed.max_users');
 
 		if(false == config_cache('pixelfed.open_registration') || $limit && $limit <= $count) {
-			return abort(403);
+			return redirect(route('help.instance-max-users-limit'));
 		}
 
 		$this->validator($request->all())->validate();

+ 20 - 0
resources/views/site/help/instance-max-users.blade.php

@@ -0,0 +1,20 @@
+@extends('site.help.partial.template', ['breadcrumb'=>'Instance User Limit'])
+
+@section('section')
+
+	<div class="title">
+		<h3 class="font-weight-bold">Instance User Limit</h3>
+	</div>
+	<hr>
+	@if(config('pixelfed.max_users'))
+	<p class="lead">We have a limit on how many users can join our instance to keep our community healthy.</p>
+
+	<p class="lead">If you have been redirected to this page, that means we've reached our user limit or we are not accepting new account registrations at this time.</p>
+
+	<p class="lead">Please try again later, or consider <a href="https://pixelfed.org/servers">joining a different Pixelfed instance</a>.</p>
+	@else
+	<p class="lead">We do not have a limit on how many users can join our instance.</p>
+
+	<p class="lead">If this instance isn't for you, consider <a href="https://pixelfed.org/servers">joining a different Pixelfed instance</a>.</p>
+	@endif
+@endsection

+ 1 - 0
routes/web.php

@@ -562,6 +562,7 @@ Route::domain(config('pixelfed.domain.app'))->middleware(['validemail', 'twofact
 			Route::view('labs-deprecation', 'site.help.labs-deprecation')->name('help.labs-deprecation');
 			Route::view('tagging-people', 'site.help.tagging-people')->name('help.tagging-people');
 			Route::view('licenses', 'site.help.licenses')->name('help.licenses');
+			Route::view('instance-max-users-limit', 'site.help.instance-max-users')->name('help.instance-max-users-limit');
 		});
 		Route::get('newsroom/{year}/{month}/{slug}', 'NewsroomController@show');
 		Route::get('newsroom/archive', 'NewsroomController@archive');