35 lines
1.5 KiB
Ruby
35 lines
1.5 KiB
Ruby
# frozen_string_literal: true
|
|
|
|
# name: discourse-oauth2-basic
|
|
# about: Allows users to login to your forum using a basic OAuth2 provider.
|
|
# meta_topic_id: 33879
|
|
# version: 0.3
|
|
# authors: Robin Ward
|
|
# url: https://github.com/discourse/discourse-oauth2-basic
|
|
|
|
enabled_site_setting :oauth2_enabled
|
|
|
|
require_relative "lib/omniauth/strategies/oauth2_basic"
|
|
require_relative "lib/oauth2_faraday_formatter"
|
|
require_relative "lib/oauth2_basic_authenticator"
|
|
|
|
# You should use this register if you want to add custom paths to traverse the user details JSON.
|
|
# We'll store the value in the user associated account's extra attribute hash using the full path as the key.
|
|
DiscoursePluginRegistry.define_filtered_register :oauth2_basic_additional_json_paths
|
|
|
|
# After authentication, we'll use this to confirm that the registered json paths are fulfilled, or display an error.
|
|
# This requires SiteSetting.oauth2_fetch_user_details? to be true, and can be used with
|
|
# DiscoursePluginRegistry.oauth2_basic_additional_json_paths.
|
|
#
|
|
# Example usage:
|
|
# DiscoursePluginRegistry.register_oauth2_basic_required_json_path({
|
|
# path: "extra:data.is_allowed_user",
|
|
# required_value: true,
|
|
# error_message: I18n.t("auth.user_not_allowed")
|
|
# }, self)
|
|
DiscoursePluginRegistry.define_filtered_register :oauth2_basic_required_json_paths
|
|
|
|
auth_provider title_setting: "oauth2_button_title", authenticator: OAuth2BasicAuthenticator.new
|
|
|
|
require_relative "lib/validators/oauth2_basic/oauth2_fetch_user_details_validator"
|