Skip to content

Commit

Permalink
Fix LDAP/PAM/SAML/CAS users not being approved instantly (mastodon#10621
Browse files Browse the repository at this point in the history
)
  • Loading branch information
Gargron authored Apr 25, 2019
1 parent c90c680 commit ff094d8
Show file tree
Hide file tree
Showing 4 changed files with 9 additions and 1 deletion.
1 change: 1 addition & 0 deletions app/models/concerns/ldap_authenticable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ module LdapAuthenticable
def ldap_setup(_attributes)
self.confirmed_at = Time.now.utc
self.admin = false
self.external = true

save!
end
Expand Down
1 change: 1 addition & 0 deletions app/models/concerns/omniauthable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ def user_params_from_auth(auth)
email: email || "#{TEMP_EMAIL_PREFIX}-#{auth.uid}-#{auth.provider}.com",
password: Devise.friendly_token[0, 20],
agreement: true,
external: true,
account_attributes: {
username: ensure_unique_username(auth.uid),
display_name: display_name,
Expand Down
1 change: 1 addition & 0 deletions app/models/concerns/pam_authenticable.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ def pam_setup(_attributes)
self.confirmed_at = Time.now.utc
self.admin = false
self.account = account
self.external = true

account.destroy! unless save
end
Expand Down
7 changes: 6 additions & 1 deletion app/models/user.rb
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ class User < ApplicationRecord
:expand_spoilers, :default_language, :aggregate_reblogs, :show_application, to: :settings, prefix: :setting, allow_nil: false

attr_reader :invite_code
attr_writer :external

def confirmed?
confirmed_at.present?
Expand Down Expand Up @@ -273,13 +274,17 @@ def send_devise_notification(notification, *args)
private

def set_approved
self.approved = open_registrations? || invited?
self.approved = open_registrations? || invited? || external?
end

def open_registrations?
Setting.registrations_mode == 'open'
end

def external?
@external
end

def sanitize_languages
return if chosen_languages.nil?
chosen_languages.reject!(&:blank?)
Expand Down

0 comments on commit ff094d8

Please sign in to comment.