polywiki/sam.cr

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