Skip to content

Commit f619b5f

Browse files
authored
Merge pull request #3501 from AlchemyCMS/fix-user-seeder
fix(seeder): Use YAML.safe_load to load users.yml
2 parents f412b28 + b3d4560 commit f619b5f

File tree

3 files changed

+13
-4
lines changed

3 files changed

+13
-4
lines changed

lib/alchemy/seeder.rb

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ def seed_users
6868
"Please use `rake db:reset' if you want to rebuild your database.", :skip
6969
false
7070
else
71-
users = YAML.load_file(user_seeds_file)
71+
users = load_yaml_file(user_seeds_file)
7272
users.each do |draft|
7373
user = Alchemy.user_class.create!(draft)
7474
log "Created user: #{user.try(:email) || user.try(:login) || user.id}"
@@ -83,9 +83,15 @@ def page_seeds_file
8383
end
8484

8585
def page_yml
86-
@_page_yml ||= YAML.safe_load(
87-
page_seeds_file.read,
88-
permitted_classes: [Date],
86+
@_page_yml ||= load_yaml_file(
87+
page_seeds_file
88+
)
89+
end
90+
91+
def load_yaml_file(file)
92+
YAML.safe_load_file(
93+
file,
94+
permitted_classes: [Date, Symbol],
8995
aliases: true
9096
)
9197
end

spec/features/user_seeder_spec.rb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
before do
1212
FileUtils.mkdir_p(Rails.root.join("db/seeds/alchemy"))
1313
FileUtils.cp(seeds_file, Rails.root.join("db/seeds/alchemy/users.yml"))
14+
allow_any_instance_of(DummyUser).to receive(:confirmed_at=)
1415
end
1516

1617
it "seeds users" do

spec/fixtures/users.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
- email: admin@example.com
22
password: test123
3+
confirmed_at: 2025-01-01
34
alchemy_roles:
45
- admin
56

67
- email: member@example.com
78
password: test123
9+
confirmed_at: 2025-01-01
810
alchemy_roles:
911
- member

0 commit comments

Comments
 (0)