40 lines
1.2 KiB
Crystal
40 lines
1.2 KiB
Crystal
require "./config/*" # here load jennifer and all required configurations
|
|
require "sam"
|
|
require "./db/migrations/*"
|
|
load_dependencies "jennifer"
|
|
|
|
require "./src/models/*"
|
|
Sam.namespace "db" do
|
|
desc "Populate database with default entities."
|
|
task "seed" do
|
|
puts "=================== [ SEEDING ] ==================="
|
|
password = "admin#{Random::Secure.base64(8)}"
|
|
puts "================== [ IMPORTANT ] =================="
|
|
puts "> Generating the admin user"
|
|
puts ">> username: admin"
|
|
puts ">> password: #{password}"
|
|
admin = User.build username: "admin", roles: ["admin"]
|
|
admin.password = password
|
|
admin.save!
|
|
|
|
puts ">"
|
|
puts "> Generating default role"
|
|
puts "> admin: write /*"
|
|
puts "> user: read /*"
|
|
puts "> guest: read /*"
|
|
Acl.build(role: "admin", path: "/*", permission: "write").save!
|
|
Acl.build(role: "user", path: "/*", permission: "read").save!
|
|
Acl.build(role: "guest", path: "/*", permission: "read").save!
|
|
|
|
puts ">"
|
|
puts "> Checking permissions registered"
|
|
Acl._permissions.each do |role, permissions|
|
|
permissions.each do |tuple|
|
|
puts "> #{role} | #{tuple[:path]} | #{tuple[:permission]}"
|
|
end
|
|
end
|
|
end
|
|
end
|
|
|
|
Sam.help
|