38 lines
837 B
Ruby
38 lines
837 B
Ruby
class SetupController < ApplicationController
|
|
before_action :check_setup_allowed
|
|
|
|
def show
|
|
@user = User.new(role: :admin)
|
|
end
|
|
|
|
def create
|
|
@user = User.new(user_params)
|
|
@user.role = :admin
|
|
@user.invitation_accepted_at = Time.current
|
|
|
|
if @user.save
|
|
SetupState.mark_installed!
|
|
session[:user_id] = @user.id
|
|
redirect_to admin_root_path, notice: "Setup complete! Welcome to Sanasto Wiki."
|
|
else
|
|
render :show, status: :unprocessable_entity
|
|
end
|
|
end
|
|
|
|
private
|
|
|
|
def check_setup_allowed
|
|
if setup_completed?
|
|
redirect_to root_path, alert: "Setup has already been completed."
|
|
end
|
|
end
|
|
|
|
def setup_completed?
|
|
SetupState.installed?
|
|
end
|
|
|
|
def user_params
|
|
params.require(:user).permit(:email, :name, :password, :password_confirmation, :primary_language)
|
|
end
|
|
end
|