mirror of
https://github.com/discourse/discourse.git
synced 2025-05-21 18:12:32 +08:00
FEATURE: List, revoke and reconnect associated accounts. Phase 1 (#6099)
Listing connections is supported for all built-in auth providers. Revoke and reconnect is currently only implemented for Facebook.
This commit is contained in:
@ -2,7 +2,17 @@
|
||||
# an authentication system interacts with our database and middleware
|
||||
|
||||
class Auth::Authenticator
|
||||
def after_authenticate(auth_options)
|
||||
def name
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
def enabled?
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# run once the user has completed authentication on the third party system. Should return an instance of Auth::Result.
|
||||
# If the user has requested to connect an existing account then `existing_account` will be set
|
||||
def after_authenticate(auth_options, existing_account: nil)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
@ -19,4 +29,31 @@ class Auth::Authenticator
|
||||
def register_middleware(omniauth)
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
# return a string describing the connected account
|
||||
# for a given user (typically email address). Used to list
|
||||
# connected accounts under the user's preferences. Empty string
|
||||
# indicates not connected
|
||||
def description_for_user(user)
|
||||
""
|
||||
end
|
||||
|
||||
# can authorisation for this provider be revoked?
|
||||
def can_revoke?
|
||||
false
|
||||
end
|
||||
|
||||
# can exising discourse users connect this provider to their accounts
|
||||
def can_connect_existing_user?
|
||||
false
|
||||
end
|
||||
|
||||
# optionally implement the ability for users to revoke
|
||||
# their link with this authenticator.
|
||||
# should ideally contact the third party to fully revoke
|
||||
# permissions. If this fails, return :remote_failed.
|
||||
# skip remote if skip_remote == true
|
||||
def revoke(user, skip_remote: false)
|
||||
raise NotImplementedError
|
||||
end
|
||||
end
|
||||
|
Reference in New Issue
Block a user