Initial commit

This commit is contained in:
Yaser
2026-08-13 19:56:46 +03:30
commit de1d57a67b
474 changed files with 43185 additions and 0 deletions

52
lib/tasks/superadmin.rake Normal file
View File

@@ -0,0 +1,52 @@
# frozen_string_literal: true
namespace :superadmin do
desc "create superadmin"
task create: :environment do
Kernel.puts "Seeding superadmin"
Barong::Seed.new().seeds["superadmin"]&.each do |seed|
Kernel.puts "---"
raise ConfigError.new("Email missing in users seed") if seed["email"].to_s.empty?
raise ConfigError.new("Level is missing for user #{seed["email"]}") unless seed["level"].is_a?(Integer)
# Skip existing users
if User.find_by(email: seed["email"], state: seed['state']).present?
Kernel.puts "User '#{seed['email']}' already exists"
next
elsif User.find_by(email: seed["email"]).present?
User.find_by(email: seed["email"]).update(state: seed['state'])
next
end
user = User.new(seed)
user.password ||= SecureRandom.base64(30)
if user.save
Kernel.puts "Created user for '#{user.email}'"
# Set correct level with labels
# levels = Level.where(id: 1..user.level)
levels = Level.where(id: 1..Level::LEVEL_ID_BOUNDS[user.level.to_s])
raise ConfigError.new("No enough levels found in database to grant the user to level #{user.level}") if levels.count < user.level
levels.find_each do |level|
user.labels.create(key: level.key, value: level.value, scope: 'private')
end
else
Kernel.puts "Can't create user '#{user.email}': #{user.errors.full_messages.join('; ')}"
end
end
end
task delete: :environment do
Kernel.puts "deleting superadmin"
Barong::Seed.new().seeds["superadmin"]&.each do |seed|
user = User.find_by(email: seed['email'])
user.update(state: 'inactive')
end
end
end