diff options
author | Claire <claire.github-309c@sitedethib.com> | 2022-01-23 18:13:55 +0100 |
---|---|---|
committer | Claire <claire.github-309c@sitedethib.com> | 2022-01-23 18:24:01 +0100 |
commit | 61ef81c548a0140a80281d4004ac55873d8f74d6 (patch) | |
tree | 770c251059d139243b9cb557c762648e0af55037 /app/helpers | |
parent | 4d0383d75ac606f8c9c2b8ecb0ea2dddf28213cb (diff) | |
parent | 0a120d86d28e3f2e20455f56c1656f5d5f2f4af6 (diff) |
Merge branch 'main' into glitch-soc/merge-upstream
Conflicts: - `spec/models/status_spec.rb`: Upstream added tests too close to glitch-soc-specific tests. Kept both tests.
Diffstat (limited to 'app/helpers')
-rw-r--r-- | app/helpers/application_helper.rb | 26 |
1 files changed, 25 insertions, 1 deletions
diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index 3fbc418cb..f4963ce99 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -50,13 +50,37 @@ module ApplicationHelper end def available_sign_up_path - if closed_registrations? + if closed_registrations? || omniauth_only? 'https://joinmastodon.org/#getting-started' else new_user_registration_path end end + def omniauth_only? + ENV['OMNIAUTH_ONLY'] == 'true' + end + + def link_to_login(name = nil, html_options = nil, &block) + target = new_user_session_path + + if omniauth_only? && Devise.mappings[:user].omniauthable? && User.omniauth_providers.size == 1 + target = omniauth_authorize_path(:user, User.omniauth_providers[0]) + html_options ||= {} + html_options[:method] = :post + end + + if block_given? + link_to(target, html_options, &block) + else + link_to(name, target, html_options) + end + end + + def provider_sign_in_link(provider) + link_to I18n.t("auth.providers.#{provider}", default: provider.to_s.chomp('_oauth2').capitalize), omniauth_authorize_path(:user, provider), class: "button button-#{provider}", method: :post + end + def open_deletion? Setting.open_deletion end |