Add user statuses and seed admin user
This commit is contained in:
		
							parent
							
								
									d2fbacbf62
								
							
						
					
					
						commit
						e29c060a39
					
				@ -28,7 +28,7 @@ Copy config template and update database configuration:
 | 
			
		||||
 | 
			
		||||
Run database creation and migration tasks:
 | 
			
		||||
 | 
			
		||||
    RAILS_ENV="production" bundle exec rake db:create db:migrate
 | 
			
		||||
    RAILS_ENV="production" bundle exec rake db:create db:migrate db:seed
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
## Running
 | 
			
		||||
 | 
			
		||||
@ -3,4 +3,13 @@ class User < ApplicationRecord
 | 
			
		||||
  # :confirmable, :lockable, :timeoutable, :trackable and :omniauthable
 | 
			
		||||
  devise :database_authenticatable, :registerable,
 | 
			
		||||
         :recoverable, :rememberable, :validatable
 | 
			
		||||
 | 
			
		||||
  # Statuses ordered by decreasing privileges
 | 
			
		||||
  enum :status, {
 | 
			
		||||
    admin: 1,       # admin level access
 | 
			
		||||
    active: 2,      # read-write user level access
 | 
			
		||||
    restricted: 3,  # read-only user level access
 | 
			
		||||
    locked: 4,      # disallowed to sign in due to failed logins
 | 
			
		||||
    disabled: 5     # administratively disallowed to sign in
 | 
			
		||||
  }, default: :active
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -35,8 +35,12 @@ module FixinMe
 | 
			
		||||
    #
 | 
			
		||||
    # URL to use in sent e-mails.
 | 
			
		||||
    config.action_mailer.default_url_options = {host: 'localhost'}
 | 
			
		||||
 | 
			
		||||
    # List of hosts this app is available at.
 | 
			
		||||
    # https://guides.rubyonrails.org/configuring.html#actiondispatch-hostauthorization
 | 
			
		||||
    config.hosts << 'localhost'
 | 
			
		||||
 | 
			
		||||
    # Email address of admin account
 | 
			
		||||
    config.admin = 'admin@localhost'
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
@ -178,7 +178,7 @@ Devise.setup do |config|
 | 
			
		||||
 | 
			
		||||
  # ==> Configuration for :validatable
 | 
			
		||||
  # Range for password length.
 | 
			
		||||
  config.password_length = 6..128
 | 
			
		||||
  config.password_length = 5..128
 | 
			
		||||
 | 
			
		||||
  # Email regex used to validate email formats. It simply asserts that
 | 
			
		||||
  # one (and only one) @ exists in the given string. This is mainly
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								db/seeds.rb
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								db/seeds.rb
									
									
									
									
									
								
							@ -1,7 +1,13 @@
 | 
			
		||||
# This file should contain all the record creation needed to seed the database with its default values.
 | 
			
		||||
# The data can then be loaded with the bin/rails db:seed command (or created alongside the database with db:setup).
 | 
			
		||||
#
 | 
			
		||||
# Examples:
 | 
			
		||||
#
 | 
			
		||||
#   movies = Movie.create([{ name: "Star Wars" }, { name: "Lord of the Rings" }])
 | 
			
		||||
#   Character.create(name: "Luke", movie: movies.first)
 | 
			
		||||
# This file should contain all the record creation needed to seed the database
 | 
			
		||||
# with its default values. The data can then be loaded with the
 | 
			
		||||
#   bin/rails db:seed
 | 
			
		||||
# command (or created alongside the database with db:setup).
 | 
			
		||||
# Seeding process should be idempotent.
 | 
			
		||||
 | 
			
		||||
User.transaction do
 | 
			
		||||
  User.find_or_create_by!(status: :admin) do |user|
 | 
			
		||||
    user.email = Rails.configuration.admin
 | 
			
		||||
    user.password = 'admin'
 | 
			
		||||
    puts "Admin account '#{user.email}' created with default password '#{user.password}'"
 | 
			
		||||
  end
 | 
			
		||||
end
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user