diff --git a/app/controllers/settings_controller.rb b/app/controllers/settings_controller.rb index 037379ec..d86866e1 100644 --- a/app/controllers/settings_controller.rb +++ b/app/controllers/settings_controller.rb @@ -271,7 +271,7 @@ class SettingsController < ApplicationController :username, :email, :password, :password_confirmation, :homepage, :about, :email_replies, :email_messages, :email_mentions, :pushover_replies, :pushover_messages, :pushover_mentions, - :mailing_list_mode, :show_avatars, :show_story_previews, + :mailing_list_mode, :show_email, :show_avatars, :show_story_previews, :show_submitted_story_threads, :prefers_color_scheme ) end diff --git a/app/models/user.rb b/app/models/user.rb index bd84f61e..d4ec4646 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -68,6 +68,7 @@ class User < ApplicationRecord s.boolean :pushover_messages, default: false s.boolean :email_mentions, default: false s.boolean :show_avatars, default: true + s.boolean :show_email, default: false s.boolean :show_story_previews, default: false s.boolean :show_submitted_story_threads, default: false s.string :totp_secret diff --git a/app/views/settings/index.html.erb b/app/views/settings/index.html.erb index 03b80a8f..5c2ff5aa 100644 --- a/app/views/settings/index.html.erb +++ b/app/views/settings/index.html.erb @@ -181,6 +181,15 @@

Miscellaneous Settings

+
+ <%= f.label :show_email, "Show Email Address:", + :class => "required" %> + <%= f.check_box :show_email %> + + Only shown to logged-in users + +
+
<%= f.label :show_story_previews, "Show Story Previews:", :class => "required" %> diff --git a/app/views/users/show.html.erb b/app/views/users/show.html.erb index 2a6c3383..256b830b 100644 --- a/app/views/users/show.html.erb +++ b/app/views/users/show.html.erb @@ -100,6 +100,14 @@
<% end %> + <% if @user&.is_admin? || @user&.show_email? %> + + + <%= @showing_user.email %> + +
+ <% end %> + <% if @showing_user.homepage.present? %> @@ -203,12 +211,6 @@ <% if @user.is_admin? %>

Admin Information

- - - <%= @showing_user.email %> - -
- <% @showing_user.votes_for_others.limit(15).each do |v| %> diff --git a/db/migrate/20231023155620_add_user_setting_show_email.rb b/db/migrate/20231023155620_add_user_setting_show_email.rb new file mode 100644 index 00000000..aa3d06f4 --- /dev/null +++ b/db/migrate/20231023155620_add_user_setting_show_email.rb @@ -0,0 +1,5 @@ +class AddUserSettingShowEmail < ActiveRecord::Migration[7.0] + def change + add_column :users, :show_email, :boolean, default: false, null: false + end +end