discourse/spec/requests/api/schemas/json
benj 72e4e53fda
FEATURE: add option to hide IP addresses from moderators (#33682)
# Hide IP Addresses from Moderators When `moderators_view_ips` is
Disabled

## Summary 
Feature Request Link -
https://meta.discourse.org/t/option-to-hide-ip-addresses-from-moderators/207715/51
This PR implements a feature to **hide IP addresses from moderators**
when the `moderators_view_ips` site setting is disabled. Previously,
moderators could view IPs in multiple locations across the admin UI.
This update ensures that IP addresses are visible to moderators when the
setting allows it.

## Changes Implemented  

### Backend Updates
- **Added `moderators_view_ips` site setting** in `site_settings.yml`
- **Updated `CurrentUserSerializer`** to include `can_see_ip` field
based on the user’s role and site setting.
- **Modified `AdminUserSerializer`** to restrict IP address visibility.
- **Updated `UsersController`** to prevent IP addresses from being
included in API responses.
- **Restricted IPs in `ScreenedIpAddressesController`** by throwing
`Discourse::InvalidAccess` if the user lacks permission.

### Frontend Updates
- **Hid "Screened IPs" tab** in `/admin/logs` when `moderators_view_ips`
is disabled.
- **Blocked direct access to `/admin/logs/screened_ip_addresses`** for
unauthorized users.
- **Updated `user-index.hbs` and `logs.hbs`** to conditionally hide IP
fields.

### UI Screenshots

New option for Admins in the Admin Security settings dashboard:
![Screenshot 2025-02-21 at 5 32
00 PM](https://github.com/user-attachments/assets/5b315434-7724-4cb9-a3dc-d88750df00a6)


Moderator's view before:
![Screenshot 2025-02-21 at 5 25
41 PM](https://github.com/user-attachments/assets/0fb269e2-db40-488b-b11d-8bdfbe2a5245)
Moderator's view after:
![Screenshot 2025-02-21 at 5 26
59 PM](https://github.com/user-attachments/assets/efb848b0-1d7f-4ec9-8238-d8ee4eddbbe1)

Moderator's view before:
![Screenshot 2025-02-21 at 5 23
52 PM](https://github.com/user-attachments/assets/226e6d63-df3e-45d0-833f-de52593a086e)
Moderator's view after:
![Screenshot 2025-02-21 at 5 23
15 PM](https://github.com/user-attachments/assets/af313af2-2329-46d1-827d-290243c320e5)

---------

Co-authored-by: Bennett Dungan <bennettdungan@gmail.com>
2025-08-05 10:09:02 -05:00
..
admin_user_list_response.json DEV: revert admin users list change (#32723) 2025-05-15 09:48:01 +02:00
admin_user_response.json FEATURE: add option to hide IP addresses from moderators (#33682) 2025-08-05 10:09:02 -05:00
backups_create_request.json
backups_list_response.json
badge_create_request.json
badge_create_response.json FEATURE: Show when a badge has been granted for a post (#29696) 2024-12-03 13:43:27 +11:00
badge_list_response.json FEATURE: Show when a badge has been granted for a post (#29696) 2024-12-03 13:43:27 +11:00
badge_update_request.json
badge_update_response.json FEATURE: Show when a badge has been granted for a post (#29696) 2024-12-03 13:43:27 +11:00
category_create_request.json DEV: Supplement updateCategory API doc to include localizations (#33601) 2025-07-15 22:03:33 +08:00
category_create_response.json FEATURE: Set category localizations in category settings (#32412) 2025-04-24 10:48:35 +08:00
category_list_response.json FEATURE: add icons and emojis to category (#31795) 2025-03-26 09:46:17 +04:00
category_topics_response.json FIX: update id types in API docs to integers (#27412) 2024-06-26 20:44:39 -06:00
category_update_response.json FEATURE: Set category localizations in category settings (#32412) 2025-04-24 10:48:35 +08:00
group_add_members_request.json
group_add_members_response.json
group_create_request.json DEV: Document create group api params (#18736) 2022-10-24 18:55:51 -06:00
group_create_response.json FEATURE: Allow group owners promote more owners (#19768) 2023-01-11 16:43:18 +08:00
group_members_response.json
group_remove_members_request.json
group_remove_members_response.json
group_response.json UX: Use a dropdown for SSL mode for group SMTP (#27932) 2024-07-18 10:33:14 +10:00
groups_list_response.json FEATURE: Allow group owners promote more owners (#19768) 2023-01-11 16:43:18 +08:00
post_delete_request.json
post_replies_response.json FEATURE: prioritize the user who is getting the reply in the autocomplete (#32086) 2025-04-04 10:11:37 -03:00
post_show_response.json DEV: Post localization improvements (#32869) 2025-05-27 08:49:53 -07:00
post_update_request.json DEV: Add fetching likes info to api docs (#21028) 2023-04-10 09:07:10 -06:00
post_update_response.json FEATURE: Add translations to posts (#32564) 2025-05-08 10:40:36 -07:00
search_response.json FIX: Load categories with search topic results (#25700) 2024-02-21 17:29:47 +02:00
site_basic_info_response.json DEV: Refactor discover setting reporting (#26706) 2024-04-23 09:52:01 -04:00
site_response.json FEATURE: Add dark color scheme setting for themes (#33967) 2025-08-04 12:33:41 +08:00
success_ok_response.json
tag_group_create_request.json
tag_group_create_response.json
topic_create_request.json DEV: Added a missing parameter to Discourse API Docs (#21085) 2023-04-24 15:44:09 +10:00
topic_create_response.json FEATURE: Add translations to posts (#32564) 2025-05-08 10:40:36 -07:00
topic_show_response.json DEV: Remove summarization code (#27373) 2024-07-02 08:51:47 -07:00
upload_abort_multipart_request.json
upload_batch_presign_multipart_parts_request.json
upload_batch_presign_multipart_parts_response.json
upload_complete_external_upload_request.json
upload_complete_multipart_request.json
upload_create_multipart_request.json
upload_create_multipart_response.json
upload_create_request.json
upload_create_response.json DEV: serialize image upload thumbnail (#29276) 2024-10-18 12:55:14 +04:00
upload_generate_presigned_put_request.json
upload_generate_presigned_put_response.json DEV: Add S3 upload system specs using minio (#22975) 2023-08-23 11:18:33 +10:00
user_actions_response.json
user_anonymize_response.json
user_badges_response.json
user_create_request.json DEV: Correct users create API docs (#31578) 2025-03-03 16:42:46 +08:00
user_create_response.json
user_delete_request.json
user_delete_response.json
user_emails_response.json
user_get_response.json FEATURE: User preference for editor Markdown monospace font (#34051) 2025-08-04 14:56:21 +10:00
user_password_change_request.json
user_password_reset_request.json
user_password_reset_response.json
user_refresh_gravatar_response.json
user_silence_request.json DEV: Use Service::Base for suspend and silence actions (#28459) 2024-08-22 14:38:56 +03:00
user_silence_response.json
user_suspend_request.json
user_suspend_response.json
user_update_avatar_request.json
user_update_email_request.json
user_update_request.json DEV: Fix user update api docs (#23047) 2023-08-09 16:56:10 -06:00
user_update_response.json
user_update_username_request.json
users_public_list_response.json