forked from cybrespace/mastodon
		
	Add single user mode
This commit is contained in:
		
							parent
							
								
									84d2371d6a
								
							
						
					
					
						commit
						1357c1cb3d
					
				
					 4 changed files with 25 additions and 8 deletions
				
			
		| 
						 | 
				
			
			@ -16,6 +16,12 @@ LOCAL_HTTPS=true
 | 
			
		|||
PAPERCLIP_SECRET=
 | 
			
		||||
SECRET_KEY_BASE=
 | 
			
		||||
 | 
			
		||||
# Registrations
 | 
			
		||||
# Single user mode will disable registrations and redirect frontpage to the first profile
 | 
			
		||||
# SINGLE_USER_MODE=true
 | 
			
		||||
# Prevent registrations with following e-mail domains
 | 
			
		||||
# EMAIL_DOMAIN_BLACKLIST=example1.com|example2.de|etc
 | 
			
		||||
 | 
			
		||||
# E-mail configuration
 | 
			
		||||
SMTP_SERVER=smtp.mailgun.org
 | 
			
		||||
SMTP_PORT=587
 | 
			
		||||
| 
						 | 
				
			
			@ -27,8 +33,11 @@ SMTP_FROM_ADDRESS=notifications@example.com
 | 
			
		|||
# CDN_HOST=assets.example.com
 | 
			
		||||
 | 
			
		||||
# S3 (optional)
 | 
			
		||||
S3_ENABLED=false
 | 
			
		||||
S3_BUCKET=
 | 
			
		||||
AWS_ACCESS_KEY_ID=
 | 
			
		||||
AWS_SECRET_ACCESS_KEY=
 | 
			
		||||
S3_REGION=
 | 
			
		||||
# S3_ENABLED=true
 | 
			
		||||
# S3_BUCKET=
 | 
			
		||||
# AWS_ACCESS_KEY_ID=
 | 
			
		||||
# AWS_SECRET_ACCESS_KEY=
 | 
			
		||||
# S3_REGION=
 | 
			
		||||
 | 
			
		||||
# Optional alias for S3 if you want to use Cloudfront or Cloudflare in front
 | 
			
		||||
# S3_CLOUDFRONT_HOST=
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -3,6 +3,7 @@
 | 
			
		|||
class Auth::RegistrationsController < Devise::RegistrationsController
 | 
			
		||||
  layout 'auth'
 | 
			
		||||
 | 
			
		||||
  before_action :check_single_user_mode
 | 
			
		||||
  before_action :configure_sign_up_params, only: [:create]
 | 
			
		||||
 | 
			
		||||
  protected
 | 
			
		||||
| 
						 | 
				
			
			@ -21,4 +22,8 @@ class Auth::RegistrationsController < Devise::RegistrationsController
 | 
			
		|||
  def after_sign_up_path_for(_resource)
 | 
			
		||||
    new_user_session_path
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def check_single_user_mode
 | 
			
		||||
    redirect_to root_path if Rails.configuration.x.single_user_mode
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -5,15 +5,13 @@ class HomeController < ApplicationController
 | 
			
		|||
 | 
			
		||||
  def index
 | 
			
		||||
    @body_classes = 'app-body'
 | 
			
		||||
    @home         = Feed.new(:home, current_user.account).get(20)
 | 
			
		||||
    @mentions     = Feed.new(:mentions, current_user.account).get(20)
 | 
			
		||||
    @token        = find_or_create_access_token.token
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  private
 | 
			
		||||
 | 
			
		||||
  def authenticate_user!
 | 
			
		||||
    redirect_to about_path unless user_signed_in?
 | 
			
		||||
    redirect_to(Rails.configuration.x.single_user_mode ? account_path(Account.first) : about_path) unless user_signed_in?
 | 
			
		||||
  end
 | 
			
		||||
 | 
			
		||||
  def find_or_create_access_token
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
							
								
								
									
										5
									
								
								config/initializers/single_user_mode.rb
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										5
									
								
								config/initializers/single_user_mode.rb
									
										
									
									
									
										Normal file
									
								
							| 
						 | 
				
			
			@ -0,0 +1,5 @@
 | 
			
		|||
# frozen_string_literal: true
 | 
			
		||||
 | 
			
		||||
Rails.application.configure do
 | 
			
		||||
  config.x.single_user_mode = ENV['SINGLE_USER_MODE'] == 'true'
 | 
			
		||||
end
 | 
			
		||||
		Loading…
	
	Add table
		
		Reference in a new issue