Add db/user seeds
This commit is contained in:
parent
3b51670850
commit
ba7b10fbc8
1
Gemfile
1
Gemfile
@ -59,6 +59,7 @@ group :development do
|
|||||||
gem 'listen', '~> 3.2'
|
gem 'listen', '~> 3.2'
|
||||||
gem 'letter_opener'
|
gem 'letter_opener'
|
||||||
gem 'letter_opener_web'
|
gem 'letter_opener_web'
|
||||||
|
gem 'faker'
|
||||||
end
|
end
|
||||||
|
|
||||||
group :test do
|
group :test do
|
||||||
|
@ -117,6 +117,8 @@ GEM
|
|||||||
factory_bot_rails (6.2.0)
|
factory_bot_rails (6.2.0)
|
||||||
factory_bot (~> 6.2.0)
|
factory_bot (~> 6.2.0)
|
||||||
railties (>= 5.0.0)
|
railties (>= 5.0.0)
|
||||||
|
faker (3.0.0)
|
||||||
|
i18n (>= 1.8.11, < 2)
|
||||||
faraday (2.7.1)
|
faraday (2.7.1)
|
||||||
faraday-net_http (>= 2.0, < 3.1)
|
faraday-net_http (>= 2.0, < 3.1)
|
||||||
ruby2_keywords (>= 0.0.4)
|
ruby2_keywords (>= 0.0.4)
|
||||||
@ -313,6 +315,7 @@ DEPENDENCIES
|
|||||||
devise_ldap_authenticatable
|
devise_ldap_authenticatable
|
||||||
dotenv-rails
|
dotenv-rails
|
||||||
factory_bot_rails
|
factory_bot_rails
|
||||||
|
faker
|
||||||
faraday
|
faraday
|
||||||
importmap-rails
|
importmap-rails
|
||||||
jbuilder (~> 2.7)
|
jbuilder (~> 2.7)
|
||||||
|
@ -37,6 +37,7 @@ class CreateAccount < ApplicationService
|
|||||||
end
|
end
|
||||||
|
|
||||||
# TODO move to confirmation
|
# TODO move to confirmation
|
||||||
|
# (and/or add email_confirmed to entry and use in login filter)
|
||||||
def add_ldap_document
|
def add_ldap_document
|
||||||
hashed_pw = Devise.ldap_auth_password_builder.call(@password)
|
hashed_pw = Devise.ldap_auth_password_builder.call(@password)
|
||||||
CreateLdapUserJob.perform_later(@username, @domain, @email, hashed_pw)
|
CreateLdapUserJob.perform_later(@username, @domain, @email, hashed_pw)
|
||||||
@ -49,6 +50,8 @@ class CreateAccount < ApplicationService
|
|||||||
end
|
end
|
||||||
|
|
||||||
def create_lndhub_wallet(user)
|
def create_lndhub_wallet(user)
|
||||||
|
#TODO enable in development when we have a local lndhub (mock?) API
|
||||||
|
return if Rails.env.development?
|
||||||
CreateLndhubWalletJob.perform_later(user)
|
CreateLndhubWalletJob.perform_later(user)
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
@ -10,6 +10,10 @@ class LdapService < ApplicationService
|
|||||||
res
|
res
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def add_attribute(dn, attr, value)
|
||||||
|
ldap_client.add_attribute dn, attr, value
|
||||||
|
end
|
||||||
|
|
||||||
def delete_entry(dn, interactive=false)
|
def delete_entry(dn, interactive=false)
|
||||||
puts "Deleting entry: #{dn}" if interactive
|
puts "Deleting entry: #{dn}" if interactive
|
||||||
res = ldap_client.delete dn: dn
|
res = ldap_client.delete dn: dn
|
||||||
|
29
db/seeds.rb
29
db/seeds.rb
@ -1,7 +1,22 @@
|
|||||||
# This file should contain all the record creation needed to seed the database with its default values.
|
require 'sidekiq/testing'
|
||||||
# The data can then be loaded with the rails db:seed command (or created alongside the database with db:setup).
|
|
||||||
#
|
ldap = LdapService.new
|
||||||
# Examples:
|
|
||||||
#
|
Sidekiq::Testing.inline! do
|
||||||
# movies = Movie.create([{ name: 'Star Wars' }, { name: 'Lord of the Rings' }])
|
CreateAccount.call(
|
||||||
# Character.create(name: 'Luke', movie: movies.first)
|
username: "admin", domain: "kosmos.org", email: "admin@example.com",
|
||||||
|
password: "admin is admin", confirmed: true
|
||||||
|
)
|
||||||
|
|
||||||
|
ldap.add_attribute "cn=admin,ou=kosmos.org,cn=users,dc=kosmos,dc=org", :admin, "true"
|
||||||
|
|
||||||
|
5.times do |n|
|
||||||
|
username = Faker::Name.unique.first_name.downcase
|
||||||
|
email = Faker::Internet.unique.email
|
||||||
|
|
||||||
|
CreateAccount.call(
|
||||||
|
username: username, domain: "kosmos.org", email: email,
|
||||||
|
password: "user is user", confirmed: true
|
||||||
|
)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
Loading…
x
Reference in New Issue
Block a user