Advertisement
Guest User

Untitled

a guest
Aug 24th, 2019
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.18 KB | None | 0 0
  1. # frozen_string_literal: true
  2.  
  3. # To execute with optional user and api keys amount.
  4. # rake generate:users -- -n=1000
  5.  
  6. require 'faker'
  7.  
  8. namespace 'generate' do
  9. desc 'Build Application container'
  10. task :users => :environment do
  11. ### Parse options
  12. options = {}
  13.  
  14. o = OptionParser.new
  15.  
  16. o.banner = 'Usage: rake generate:users [-n=100]'
  17. o.on('-n NUMBER', '--number NUMBER') { |num| options[:num] = num.to_i }
  18.  
  19. args = o.order!(ARGV) {}
  20. o.parse!(args)
  21.  
  22. options[:num] = 10 if options[:num].nil?
  23. users = []
  24.  
  25. options[:num].times do |i|
  26. email = Faker::Internet.email
  27. passwd = Faker::Internet.password(min_length: 10, special_characters: true)
  28.  
  29. user = User.create(email: email, password: passwd, level: 3, state: 'active', otp: true)
  30.  
  31. api_key = APIKey.create(user_id: user.id, kid: SecureRandom.hex(8), algorithm: 'HS256')
  32. secret = SecureRandom.hex(16)
  33. SecretStorage.store_secret(secret, api_key.kid)
  34. users.push({
  35. 'uid' => user.uid,
  36. 'email' => user.email,
  37. 'password' => passwd,
  38. 'kid' => api_key.kid,
  39. 'secret' => secret
  40. })
  41. end
  42.  
  43. File.write('tmp/users.yml', users.to_yaml)
  44. end
  45. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement