From b7fa4b012a2bfa671e13e68c4eee50f9c8997bf5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?R=C3=A2u=20Cao?= Date: Sun, 13 Aug 2023 12:27:05 +0200 Subject: [PATCH] Allow Mastodon address domain to be different from primary domain --- app/models/setting.rb | 3 ++ app/models/user.rb | 5 +++ .../settings/services/_mastodon.html.erb | 4 +++ app/views/services/mastodon/show.html.erb | 2 +- spec/models/user_spec.rb | 32 +++++++++++++++++++ 5 files changed, 45 insertions(+), 1 deletion(-) diff --git a/app/models/setting.rb b/app/models/setting.rb index fc3b068..bfa495f 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -106,6 +106,9 @@ class Setting < RailsSettings::Base field :mastodon_enabled, type: :boolean, default: (ENV["MASTODON_PUBLIC_URL"].present?.to_s || false) + field :mastodon_address_domain, type: :string, + default: ENV["MASTODON_ADDRESS_DOMAIN"].presence || self.primary_domain + # # MediaWiki # diff --git a/app/models/user.rb b/app/models/user.rb index 6dca46d..cb596fe 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -110,6 +110,11 @@ class User < ApplicationRecord "#{self.cn}@#{self.ou}" end + def mastodon_address + return nil unless Setting.mastodon_enabled? + "#{self.cn}@#{Setting.mastodon_address_domain}" + end + def valid_attribute?(attribute_name) self.valid? self.errors[attribute_name].blank? diff --git a/app/views/admin/settings/services/_mastodon.html.erb b/app/views/admin/settings/services/_mastodon.html.erb index 0de87d2..1266db1 100644 --- a/app/views/admin/settings/services/_mastodon.html.erb +++ b/app/views/admin/settings/services/_mastodon.html.erb @@ -12,5 +12,9 @@ key: :mastodon_public_url, title: "Public URL" ) %> + <%= render FormElements::FieldsetResettableSettingComponent.new( + key: :mastodon_address_domain, + title: "User address domain" + ) %> <% end %> diff --git a/app/views/services/mastodon/show.html.erb b/app/views/services/mastodon/show.html.erb index d6cc0f8..3853a9d 100644 --- a/app/views/services/mastodon/show.html.erb +++ b/app/views/services/mastodon/show.html.erb @@ -13,7 +13,7 @@

disabled="disabled" + value=<%= current_user.mastodon_address %> disabled="disabled" data-clipboard-target="source" />