Merge remote-tracking branch 'origin/master' into merge-upstream
Conflicts: README.md app/controllers/follower_accounts_controller.rb app/controllers/following_accounts_controller.rb app/serializers/rest/instance_serializer.rb app/views/stream_entries/_simple_status.html.haml config/locales/simple_form.ja.yml
This commit is contained in:
49
lib/devise/ldap_authenticatable.rb
Normal file
49
lib/devise/ldap_authenticatable.rb
Normal file
@@ -0,0 +1,49 @@
|
||||
# frozen_string_literal: true
|
||||
|
||||
if ENV['LDAP_ENABLED'] == 'true'
|
||||
require 'net/ldap'
|
||||
require 'devise/strategies/authenticatable'
|
||||
|
||||
module Devise
|
||||
module Strategies
|
||||
class LdapAuthenticatable < Authenticatable
|
||||
def authenticate!
|
||||
if params[:user]
|
||||
ldap = Net::LDAP.new(
|
||||
host: Devise.ldap_host,
|
||||
port: Devise.ldap_port,
|
||||
base: Devise.ldap_base,
|
||||
encryption: {
|
||||
method: Devise.ldap_method,
|
||||
tls_options: OpenSSL::SSL::SSLContext::DEFAULT_PARAMS,
|
||||
},
|
||||
auth: {
|
||||
method: :simple,
|
||||
username: Devise.ldap_bind_dn,
|
||||
password: Devise.ldap_password,
|
||||
},
|
||||
connect_timeout: 10
|
||||
)
|
||||
|
||||
if (user_info = ldap.bind_as(base: Devise.ldap_base, filter: "(#{Devise.ldap_uid}=#{email})", password: password))
|
||||
user = User.ldap_get_user(user_info.first)
|
||||
success!(user)
|
||||
else
|
||||
return fail(:invalid_login)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
def email
|
||||
params[:user][:email]
|
||||
end
|
||||
|
||||
def password
|
||||
params[:user][:password]
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Warden::Strategies.add(:ldap_authenticatable, Devise::Strategies::LdapAuthenticatable)
|
||||
end
|
||||
@@ -9,7 +9,7 @@ module Mastodon
|
||||
end
|
||||
|
||||
def minor
|
||||
2
|
||||
3
|
||||
end
|
||||
|
||||
def patch
|
||||
@@ -21,7 +21,7 @@ module Mastodon
|
||||
end
|
||||
|
||||
def flags
|
||||
''
|
||||
'rc1'
|
||||
end
|
||||
|
||||
def to_a
|
||||
|
||||
@@ -23,7 +23,7 @@ namespace :mastodon do
|
||||
prompt.say('Single user mode disables registrations and redirects the landing page to your public profile.')
|
||||
env['SINGLE_USER_MODE'] = prompt.yes?('Do you want to enable single user mode?', default: false)
|
||||
|
||||
%w(SECRET_KEY_BASE PAPERCLIP_SECRET OTP_SECRET).each do |key|
|
||||
%w(SECRET_KEY_BASE OTP_SECRET).each do |key|
|
||||
env[key] = SecureRandom.hex(64)
|
||||
end
|
||||
|
||||
@@ -476,8 +476,10 @@ namespace :mastodon do
|
||||
time_ago = ENV.fetch('NUM_DAYS') { 7 }.to_i.days.ago
|
||||
|
||||
MediaAttachment.where.not(remote_url: '').where.not(file_file_name: nil).where('created_at < ?', time_ago).find_each do |media|
|
||||
media.file.destroy
|
||||
media.save
|
||||
if media.file.exists?
|
||||
media.file.destroy
|
||||
media.save
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@@ -494,9 +496,13 @@ namespace :mastodon do
|
||||
accounts = accounts.where(domain: ENV['DOMAIN']) if ENV['DOMAIN'].present?
|
||||
|
||||
accounts.find_each do |account|
|
||||
account.reset_avatar!
|
||||
account.reset_header!
|
||||
account.save
|
||||
begin
|
||||
account.reset_avatar!
|
||||
account.reset_header!
|
||||
account.save
|
||||
rescue Paperclip::Error
|
||||
puts "Error resetting avatar and header for account #{username}@#{domain}"
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user