Sha256: c1d159ec457dbcc8af18f1eb2c85357ae42f01ee7ac7146f1ad0e1ec281a19e3

Contents?: true

Size: 1.31 KB

Versions: 6

Compression:

Stored size: 1.31 KB

Contents

module Fae
  class SetupController < ActionController::Base

    helper Fae::FormHelper

    before_action :check_roles

    layout 'devise'

    def first_user
      @option = Fae::Option.instance
      return show_404 if Fae::User.live_super_admins.present?

      @user = Fae::User.new
    end

    def create_first_user
      return show_401 if Fae::User.live_super_admins.present?

      @user         = Fae::User.new(user_params)
      super_admin   = Fae::Role.find_by_name('super admin')
      @user.role    = super_admin
      @user.active  = true

      if @user.save
        sign_in(@user)
        redirect_to fae.root_path
      else
        @option = Fae::Option.instance
        render action: 'first_user', error: t('fae.save_error')
      end
    end

    private

    def show_404
      render template: 'fae/pages/error404.html.slim', layout: 'fae/error.html.slim', status: :not_found
    end

    def show_401
      render template: 'fae/pages/error404.html.slim', layout: 'fae/error.html.slim', status: :unauthorized
    end

    def user_params
      params.require(:user).permit(:email, :first_name, :last_name, :password, :password_confirmation)
    end

    def check_roles
      if Fae::Role.all.empty?
        raise "Role 'super admin' does not exist in Fae::Role, run rake fae:seed_db"
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
fae-rails-2.2.0 app/controllers/fae/setup_controller.rb
fae-rails-2.1.0 app/controllers/fae/setup_controller.rb
fae-railsz-2.1.0 app/controllers/fae/setup_controller.rb
fae-rails-2.0.0 app/controllers/fae/setup_controller.rb
fae-rails-1.7.1 app/controllers/fae/setup_controller.rb
fae-rails-1.7.0 app/controllers/fae/setup_controller.rb