Доступ к хосту только для выбранных внутренних сквадов / Host access for selected Internal Squads only
Примечание: русская версия была переведена с английского с помощью ИИ. Оригинал на английском языке приведён ниже. Прошу простить возможные неточности в переводе.
Русская версия
Проблема
Сейчас при создании или редактировании хоста доступно поле Excluded Internal Squads, позволяющее исключить выбранные внутренние сквады.
Такой подход удобен, если хост должен быть доступен почти всем сквадам. Однако он становится неудобным, если хост предназначен только для одного или нескольких конкретных сквадов, особенно когда разные сквады используют один и тот же инбаунд.
Например:
- Создано 5 внутренних сквадов.
- Для каждого сквада предназначено 10 отдельных хостов.
- Всего существует 50 хостов.
- Сквады используют одинаковые или пересекающиеся инбаунды.
При создании каждого хоста для Squad 1 необходимо вручную исключить остальные четыре сквада. То же самое приходится повторять для всех остальных хостов.
Если позже создать Squad 6, необходимо:
- Создать для него 10 новых хостов и исключить из них предыдущие пять сквадов.
- Отредактировать все 50 существующих хостов и добавить Squad 6 в список исключений.
В противном случае пользователи нового сквада могут получить доступ к ранее созданным хостам, если их инбаунд также доступен новому скваду.
Предлагаемое решение
Добавить в форму хоста настройку режима доступа для внутренних сквадов:
- Исключить выбранные сквады — текущее поведение.
- Разрешить только выбранным сквадам — новый режим allowlist.
Под этой настройкой можно оставить выпадающий список с возможностью выбора нескольких внутренних сквадов.
Эти режимы желательно сделать взаимоисключающими, чтобы правила включения и исключения не конфликтовали.
Ожидаемое поведение
В режиме Разрешить только выбранным сквадам хост должен быть доступен пользователю только в том случае, если:
- пользователь состоит хотя бы в одном из выбранных сквадов;
- соответствующему скваду доступен инбаунд, связанный с хостом.
Если пользователь состоит в нескольких сквадах, достаточно, чтобы хотя бы один подходящий сквад был включён в allowlist хоста.
При создании нового внутреннего сквада он не должен автоматически получать доступ к уже существующим хостам, использующим режим Разрешить только выбранным сквадам.
Обратная совместимость
Существующие хосты должны продолжить работать без изменений, используя текущий режим Исключить выбранные сквады.
Было бы полезно поддержать новый режим при:
- создании хоста;
- редактировании хоста;
- массовом редактировании хостов.
Такой allowlist-режим значительно упростит управление большим количеством хостов и предотвратит случайное предоставление доступа новым сквадам.
English original
Problem
Currently, the Host creation and editing form provides an Excluded Internal Squads field.
This exclusion-based approach works well when a Host should be available to almost every squad. However, it becomes difficult to maintain when a Host is intended for only one or a few squads, especially when several squads use the same or overlapping Inbounds.
For example:
- There are 5 Internal Squads.
- Each squad should have access to its own 10 Hosts.
- There are 50 Hosts in total.
- The squads use the same or overlapping Inbounds.
When creating a Host for Squad 1, the administrator must manually exclude the other four squads. The same process must be repeated for every Host.
If Squad 6 is created later:
- Ten new Hosts must be created for Squad 6, excluding the five existing squads.
- All 50 existing Hosts must be edited to add Squad 6 to their exclusion lists.
Otherwise, users in the new squad may receive previously created Hosts when their Inbounds are also available to the new squad.
Proposed solution
Add an Internal Squad access mode to the Host form:
- Exclude selected squads — the existing behavior.
- Allow only selected squads — a new allowlist mode.
A searchable multi-select field for Internal Squads could appear below this setting.
The modes should preferably be mutually exclusive so that inclusion and exclusion rules cannot conflict.
Expected behavior
In Allow only selected squads mode, a Host should be available only when:
- the user belongs to at least one selected squad; and
- that squad has access to the Inbound associated with the Host.
If a user belongs to multiple squads, membership in at least one allowed and otherwise qualifying squad should grant access.
Creating a new Internal Squad should not automatically give it access to existing Hosts configured with Allow only selected squads.
Backward compatibility
Existing Hosts should retain their current behavior and use Exclude selected squads by default.
It would be helpful for the new mode to be supported when:
- creating a Host;
- editing an individual Host;
- bulk-editing Hosts.
This allowlist option would substantially simplify installations with many Hosts and squads while reducing the risk of accidentally granting new squads access to existing Hosts.