浏览代码

Update config() to config_cache()

Daniel Supernault 4 年之前
父节点
当前提交
27b722e7a7

+ 1 - 1
app/Http/Controllers/Api/ApiV1Controller.php

@@ -967,7 +967,7 @@ class ApiV1Controller extends Controller
             'short_description' => 'Pixelfed - Photo sharing for everyone',
             'languages' => ['en'],
             'max_toot_chars' => (int) config('pixelfed.max_caption_length'),
-            'registrations' => config('pixelfed.open_registration'),
+            'registrations' => config_cache('pixelfed.open_registration'),
             'stats' => [
                 'user_count' => 0,
                 'status_count' => 0,

+ 179 - 179
app/Http/Controllers/Auth/RegisterController.php

@@ -14,183 +14,183 @@ use App\Services\EmailService;
 
 class RegisterController extends Controller
 {
-    /*
-    |--------------------------------------------------------------------------
-    | Register Controller
-    |--------------------------------------------------------------------------
-    |
-    | This controller handles the registration of new users as well as their
-    | validation and creation. By default this controller uses a trait to
-    | provide this functionality without requiring any additional code.
-    |
-    */
-
-    use RegistersUsers;
-
-    /**
-     * Where to redirect users after registration.
-     *
-     * @var string
-     */
-    protected $redirectTo = '/';
-
-    /**
-     * Create a new controller instance.
-     *
-     * @return void
-     */
-    public function __construct()
-    {
-        $this->middleware('guest');
-    }
-
-    /**
-     * Get a validator for an incoming registration request.
-     *
-     * @param array $data
-     *
-     * @return \Illuminate\Contracts\Validation\Validator
-     */
-    protected function validator(array $data)
-    {
-        if(config('database.default') == 'pgsql') {
-            $data['username'] = strtolower($data['username']);
-            $data['email'] = strtolower($data['email']);
-        }
-
-        $usernameRules = [
-            'required',
-            'min:2',
-            'max:15',
-            'unique:users',
-            function ($attribute, $value, $fail) {
-                $dash = substr_count($value, '-');
-                $underscore = substr_count($value, '_');
-                $period = substr_count($value, '.');
-
-                if(ends_with($value, ['.php', '.js', '.css'])) {
-                    return $fail('Username is invalid.');
-                }
-
-                if(($dash + $underscore + $period) > 1) {
-                    return $fail('Username is invalid. Can only contain one dash (-), period (.) or underscore (_).');
-                }
-
-                if (!ctype_alpha($value[0])) {
-                    return $fail('Username is invalid. Must start with a letter or number.');
-                }
-
-                if (!ctype_alnum($value[strlen($value) - 1])) {
-                    return $fail('Username is invalid. Must end with a letter or number.');
-                }
-
-                $val = str_replace(['_', '.', '-'], '', $value);
-                if(!ctype_alnum($val)) {
-                    return $fail('Username is invalid. Username must be alpha-numeric and may contain dashes (-), periods (.) and underscores (_).');
-                }
-
-                $restricted = RestrictedNames::get();
-                if (in_array(strtolower($value), array_map('strtolower', $restricted))) {
-                    return $fail('Username cannot be used.');
-                }
-            },
-        ];
-
-        $emailRules = [
-            'required',
-            'string',
-            'email',
-            'max:255',
-            'unique:users',
-            function ($attribute, $value, $fail) {
-                $banned = EmailService::isBanned($value);
-                if($banned) {
-                    return $fail('Email is invalid.');
-                }
-            },
-        ];
-
-        $rules = [
-            'agecheck' => 'required|accepted',
-            'name'     => 'nullable|string|max:'.config('pixelfed.max_name_length'),
-            'username' => $usernameRules,
-            'email'    => $emailRules,
-            'password' => 'required|string|min:'.config('pixelfed.min_password_length').'|confirmed',
-        ];
-
-        if(config('captcha.enabled')) {
-            $rules['h-captcha-response'] = 'required|captcha';
-        }
-
-        return Validator::make($data, $rules);
-    }
-
-    /**
-     * Create a new user instance after a valid registration.
-     *
-     * @param array $data
-     *
-     * @return \App\User
-     */
-    protected function create(array $data)
-    {
-        if(config('database.default') == 'pgsql') {
-            $data['username'] = strtolower($data['username']);
-            $data['email'] = strtolower($data['email']);
-        }
-
-        return User::create([
-            'name'     => $data['name'],
-            'username' => $data['username'],
-            'email'    => $data['email'],
-            'password' => Hash::make($data['password']),
-        ]);
-    }
-
-    /**
-     * Show the application registration form.
-     *
-     * @return \Illuminate\Http\Response
-     */
-    public function showRegistrationForm()
-    {
-        if(config('pixelfed.open_registration')) {
-            $limit = config('pixelfed.max_users');
-            if($limit) {
-                abort_if($limit <= User::count(), 404);
-                return view('auth.register');
-            } else {
-                return view('auth.register');
-            }
-        } else {
-            abort(404);
-        }
-    }
-
-    /**
-     * Handle a registration request for the application.
-     *
-     * @param  \Illuminate\Http\Request  $request
-     * @return \Illuminate\Http\Response
-     */
-    public function register(Request $request)
-    {
-        abort_if(config('pixelfed.open_registration') == false, 400);
-
-        $count = User::count();
-        $limit = config('pixelfed.max_users');
-
-        if(false == config('pixelfed.open_registration') || $limit && $limit <= $count) {
-            return abort(403);
-        }
-
-        $this->validator($request->all())->validate();
-
-        event(new Registered($user = $this->create($request->all())));
-
-        $this->guard()->login($user);
-
-        return $this->registered($request, $user)
-            ?: redirect($this->redirectPath());
-    }
+	/*
+	|--------------------------------------------------------------------------
+	| Register Controller
+	|--------------------------------------------------------------------------
+	|
+	| This controller handles the registration of new users as well as their
+	| validation and creation. By default this controller uses a trait to
+	| provide this functionality without requiring any additional code.
+	|
+	*/
+
+	use RegistersUsers;
+
+	/**
+	 * Where to redirect users after registration.
+	 *
+	 * @var string
+	 */
+	protected $redirectTo = '/';
+
+	/**
+	 * Create a new controller instance.
+	 *
+	 * @return void
+	 */
+	public function __construct()
+	{
+		$this->middleware('guest');
+	}
+
+	/**
+	 * Get a validator for an incoming registration request.
+	 *
+	 * @param array $data
+	 *
+	 * @return \Illuminate\Contracts\Validation\Validator
+	 */
+	protected function validator(array $data)
+	{
+		if(config('database.default') == 'pgsql') {
+			$data['username'] = strtolower($data['username']);
+			$data['email'] = strtolower($data['email']);
+		}
+
+		$usernameRules = [
+			'required',
+			'min:2',
+			'max:15',
+			'unique:users',
+			function ($attribute, $value, $fail) {
+				$dash = substr_count($value, '-');
+				$underscore = substr_count($value, '_');
+				$period = substr_count($value, '.');
+
+				if(ends_with($value, ['.php', '.js', '.css'])) {
+					return $fail('Username is invalid.');
+				}
+
+				if(($dash + $underscore + $period) > 1) {
+					return $fail('Username is invalid. Can only contain one dash (-), period (.) or underscore (_).');
+				}
+
+				if (!ctype_alpha($value[0])) {
+					return $fail('Username is invalid. Must start with a letter or number.');
+				}
+
+				if (!ctype_alnum($value[strlen($value) - 1])) {
+					return $fail('Username is invalid. Must end with a letter or number.');
+				}
+
+				$val = str_replace(['_', '.', '-'], '', $value);
+				if(!ctype_alnum($val)) {
+					return $fail('Username is invalid. Username must be alpha-numeric and may contain dashes (-), periods (.) and underscores (_).');
+				}
+
+				$restricted = RestrictedNames::get();
+				if (in_array(strtolower($value), array_map('strtolower', $restricted))) {
+					return $fail('Username cannot be used.');
+				}
+			},
+		];
+
+		$emailRules = [
+			'required',
+			'string',
+			'email',
+			'max:255',
+			'unique:users',
+			function ($attribute, $value, $fail) {
+				$banned = EmailService::isBanned($value);
+				if($banned) {
+					return $fail('Email is invalid.');
+				}
+			},
+		];
+
+		$rules = [
+			'agecheck' => 'required|accepted',
+			'name'     => 'nullable|string|max:'.config('pixelfed.max_name_length'),
+			'username' => $usernameRules,
+			'email'    => $emailRules,
+			'password' => 'required|string|min:'.config('pixelfed.min_password_length').'|confirmed',
+		];
+
+		if(config('captcha.enabled')) {
+			$rules['h-captcha-response'] = 'required|captcha';
+		}
+
+		return Validator::make($data, $rules);
+	}
+
+	/**
+	 * Create a new user instance after a valid registration.
+	 *
+	 * @param array $data
+	 *
+	 * @return \App\User
+	 */
+	protected function create(array $data)
+	{
+		if(config('database.default') == 'pgsql') {
+			$data['username'] = strtolower($data['username']);
+			$data['email'] = strtolower($data['email']);
+		}
+
+		return User::create([
+			'name'     => $data['name'],
+			'username' => $data['username'],
+			'email'    => $data['email'],
+			'password' => Hash::make($data['password']),
+		]);
+	}
+
+	/**
+	 * Show the application registration form.
+	 *
+	 * @return \Illuminate\Http\Response
+	 */
+	public function showRegistrationForm()
+	{
+		if(config_cache('pixelfed.open_registration')) {
+			$limit = config('pixelfed.max_users');
+			if($limit) {
+				abort_if($limit <= User::count(), 404);
+				return view('auth.register');
+			} else {
+				return view('auth.register');
+			}
+		} else {
+			abort(404);
+		}
+	}
+
+	/**
+	 * Handle a registration request for the application.
+	 *
+	 * @param  \Illuminate\Http\Request  $request
+	 * @return \Illuminate\Http\Response
+	 */
+	public function register(Request $request)
+	{
+		abort_if(config_cache('pixelfed.open_registration') == false, 400);
+
+		$count = User::count();
+		$limit = config('pixelfed.max_users');
+
+		if(false == config_cache('pixelfed.open_registration') || $limit && $limit <= $count) {
+			return abort(403);
+		}
+
+		$this->validator($request->all())->validate();
+
+		event(new Registered($user = $this->create($request->all())));
+
+		$this->guard()->login($user);
+
+		return $this->registered($request, $user)
+			?: redirect($this->redirectPath());
+	}
 }

+ 1 - 1
app/Util/Site/Config.php

@@ -10,7 +10,7 @@ class Config {
 	public static function get() {
 		return Cache::remember('api:site:configuration:_v0.2', now()->addMinutes(5), function() {
 			return [
-				'open_registration' => config('pixelfed.open_registration'),
+				'open_registration' => (bool) config_cache('pixelfed.open_registration'),
 				'uploader' => [
 					'max_photo_size' => config('pixelfed.max_photo_size'),
 					'max_caption_length' => config('pixelfed.max_caption_length'),

+ 1 - 1
app/Util/Site/Nodeinfo.php

@@ -70,7 +70,7 @@ class Nodeinfo {
 				'version' => '2.0',
 			];
 		});
-		$res['openRegistrations'] = config('pixelfed.open_registration');
+		$res['openRegistrations'] = (bool) config_cache('pixelfed.open_registration');
 		return $res;
 	}
 

+ 1 - 1
resources/views/layouts/partial/nav.blade.php

@@ -22,7 +22,7 @@
                             {{ __('Login') }}
                         </a>
                     </li>
-                @if(config('pixelfed.open_registration') && config('instance.restricted.enabled') == false)
+                @if(config_cache('pixelfed.open_registration') && config('instance.restricted.enabled') == false)
                     <li>
                         <a class="ml-3 nav-link font-weight-bold text-dark" href="{{ route('register') }}" title="Register">
                             {{ __('Register') }}