Skip to content

Commit

Permalink
Merge pull request #775 from scrollytelling/seeds-generate-random-pas…
Browse files Browse the repository at this point in the history
…sword

generate a secure password in the seeds
  • Loading branch information
tf authored May 30, 2017
2 parents b452c34 + 47175dd commit a1cba5a
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 5 deletions.
5 changes: 5 additions & 0 deletions lib/generators/pageflow/seeds/seeds_generator.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,15 @@
require 'rails/generators'
require 'securerandom'

module Pageflow
module Generators
class SeedsGenerator < Rails::Generators::Base
desc "Requires the pageflow seeds in db/seeds.rb"

argument :password,
default: SecureRandom.random_number(36**12).to_s(36).rjust(12, '0'),
desc: 'Default user password'

source_root File.expand_path("../templates", __FILE__)

def create_initializer
Expand Down
8 changes: 5 additions & 3 deletions lib/generators/pageflow/seeds/templates/seeds.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
# This file was generated by Pageflow.
# It will create example users for each of the Pageflow roles.
# Feel free to edit or remove it; these entries are not required for Pageflow to function.

include Pageflow::Seeds

# Make sure to change the password if you intend to apply this seed to
# a production system.
default_user_password('!Pass123')
default_user_password('<%= password %>')

publisher_account = account(name: 'Acme Corporation')
editor_account = account(name: 'General Products')
Expand Down
14 changes: 12 additions & 2 deletions spec/generators/pageflow/seeds/seeds_generator_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,19 @@
module Pageflow
module Generators
describe SeedsGenerator, type: :generator do
it "generates 'db/seeds.rb'" do
let(:seeds) { file('db/seeds.rb') }

before do
run_generator
expect(file('db/seeds.rb')).to exist
end

it "generates 'db/seeds.rb'" do
expect(seeds).to exist
end

it 'generates a random password' do
expect(seeds)
.to contain(/default_user_password\('\w{12}'\)/)
end
end
end
Expand Down

0 comments on commit a1cba5a

Please sign in to comment.