about summary refs log tree commit diff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/devise/ldap_authenticatable.rb3
-rw-r--r--lib/mastodon/media_cli.rb25
-rw-r--r--lib/mastodon/version.rb2
3 files changed, 20 insertions, 10 deletions
diff --git a/lib/devise/ldap_authenticatable.rb b/lib/devise/ldap_authenticatable.rb
index 534c7a851..6903d468d 100644
--- a/lib/devise/ldap_authenticatable.rb
+++ b/lib/devise/ldap_authenticatable.rb
@@ -25,11 +25,12 @@ module Devise
           )
 
           filter = format(Devise.ldap_search_filter, uid: Devise.ldap_uid, email: email)
+
           if (user_info = ldap.bind_as(base: Devise.ldap_base, filter: filter, password: password))
             user = User.ldap_get_user(user_info.first)
             success!(user)
           else
-            return fail(:invalid_login)
+            return fail(:invalid)
           end
         end
       end
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index ee28270da..12ebdb774 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -10,6 +10,8 @@ module Mastodon
   class MediaCLI < Thor
     option :days, type: :numeric, default: 7
     option :background, type: :boolean, default: false
+    option :verbose, type: :boolean, default: false
+    option :dry_run, type: :boolean, default: false
     desc 'remove', 'Remove remote media files'
     long_desc <<-DESC
       Removes locally cached copies of media attachments from other servers.
@@ -22,20 +24,27 @@ module Mastodon
       possible. In Sidekiq they will be processed with higher concurrency, but
       it may impact other operations of the Mastodon server, and it may overload
       the underlying file storage.
+
+      With the --verbose option, output deleting file ID to console (only when --background false).
+
+      With the --dry-run option, output the number of files to delete without deleting.
     DESC
     def remove
       time_ago  = options[:days].days.ago
       queued    = 0
       processed = 0
+      dry_run = options[:dry_run] ? '(DRY RUN)' : ''
 
-      MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).select(:id).reorder(nil).find_in_batches do |media_attachments|
-        if options[:background]
+      if options[:background]
+        MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).select(:id).reorder(nil).find_in_batches do |media_attachments|
           queued += media_attachments.size
-          Maintenance::UncacheMediaWorker.push_bulk(media_attachments.map(&:id))
-        else
+          Maintenance::UncacheMediaWorker.push_bulk(media_attachments.map(&:id)) unless options[:dry_run]
+        end
+      else
+        MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).reorder(nil).find_in_batches do |media_attachments|
           media_attachments.each do |m|
-            Maintenance::UncacheMediaWorker.new.perform(m)
-            say('.', :green, false)
+            Maintenance::UncacheMediaWorker.new.perform(m) unless options[:dry_run]
+            options[:verbose] ? say(m.id) : say('.', :green, false)
             processed += 1
           end
         end
@@ -44,9 +53,9 @@ module Mastodon
       say
 
       if options[:background]
-        say("Scheduled the deletion of #{queued} media attachments", :green)
+        say("Scheduled the deletion of #{queued} media attachments #{dry_run}.", :green)
       else
-        say("Removed #{processed} media attachments", :green)
+        say("Removed #{processed} media attachments #{dry_run}.", :green)
       end
     end
   end
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index d07108ad4..0442a156d 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -21,7 +21,7 @@ module Mastodon
     end
 
     def flags
-      'rc1'
+      ''
     end
 
     def to_a