add Rake task to create admin users
This commit is contained in:
parent
39ca9776d1
commit
e25441f548
2 changed files with 12 additions and 31 deletions
|
|
@ -1,31 +0,0 @@
|
|||
namespace :debshots do
|
||||
desc "Remove duplicate images"
|
||||
|
||||
task :remove_duplicate_images => :environment do
|
||||
Rails.logger = Logger.new(STDOUT)
|
||||
Rails.logger.level = Logger::INFO
|
||||
#Rails.logger.level = Logger::DEBUG
|
||||
|
||||
Rails.logger.info "Removing packages with 'nil' screenshots"
|
||||
|
||||
Screenshot.where(image_fingerprint: nil).each do |ss|
|
||||
Rails.logger.info "Destroying screenshot #{ss.id} of package #{ss.package.name} that has nil data"
|
||||
ss.destroy
|
||||
end
|
||||
|
||||
Rails.logger.info "Removing packages with duplicate screenshot checksums"
|
||||
|
||||
loop do
|
||||
destroyed = 0
|
||||
Screenshot.select(:package_id, :image_fingerprint).group(:package_id, :image_fingerprint, :created_at).having("count(*) > 1").each do |ss|
|
||||
# Look again for screenshots of this fingerprint.
|
||||
# This extra step may seem stupid but the above query lead to package_id=NULL results sometimes.
|
||||
del = Screenshot.find_by(image_fingerprint: ss.image_fingerprint)
|
||||
Rails.logger.info "Destroying duplicate screenshot #{del.id} of package #{del.package.name}"
|
||||
del.destroy
|
||||
destroyed += 1
|
||||
end
|
||||
break if destroyed == 0
|
||||
end
|
||||
end
|
||||
end
|
||||
12
lib/tasks/add_admin.rake
Normal file
12
lib/tasks/add_admin.rake
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
namespace :debshots do
|
||||
desc 'Create an administrative local user'
|
||||
|
||||
task :create_admin, %i[email password] => :environment do |t, args|
|
||||
Rails.logger = Logger.new($stdout)
|
||||
Rails.logger.level = Logger::INFO
|
||||
# Rails.logger.level = Logger::DEBUG
|
||||
|
||||
admin = User.create(email: args.email, password: args.password, provider: 'local')
|
||||
admin.save!
|
||||
end
|
||||
end
|
||||
Loading…
Add table
Add a link
Reference in a new issue