Change language

sf-team

Назначение

Команда как единая рабочая область: кто здесь работает, что каждый из них может
делать и кого уже пригласили, но кто ещё не пришёл.

Представления

Четыре представления setOf, которые оболочка превращает в постоянные кнопки
вкладки — Команда, Приглашения, Расписание, Права — плюс одно
представление objectOf, карточка человека, которая открывается как подвкладка
внутри той же области. Если ничего не нажато, область показывает собственный
экран (team.statistic, разрешённый через её представление setOf, шаблон,
который используют sf-logs и sf-equipment).

Что формирует эту поверхность

Консоль не может ничего выдавать. rp-access — это @Access("internal"), и
среда выполнения отклоняет пользовательский JWT до проверки каких-либо прав
(messaging-access.ts:176). Поэтому каждая операция, изменяющая то, что кому-то
разрешено делать, запускает wf-team-invite на centimanus, где хранится сервисный
токен кластера. Кто может его запускать, определяется обычным разрешением
wf/workflows/wf-team-invite.js(x), которое находится в одном файле пресета — это
разрешение целиком определяет, «кто может добавлять людей».

Три метода приглашения в rp-identity имеют аннотацию уровня метода
@Access("user"), поэтому столбец доставки можно читать без рабочего процесса
для каждого обновления таблицы; доступ к ним ограничивается через
rp/identity/listInvites(r) в пресетах владельца и менеджера.

Представление Права составляется в браузере из списка команды и приглашений,
потому что к сервису, который знает настоящий ответ, отсюда обратиться нельзя.
Оно показывает зафиксированное намерение — роль, выданную человеку, и теги,
которые с ней пришли, — а не состояние его действующего токена.

Операции

team.member.import (именно для этого существует данный контур — на вход
подаётся вставленный список, а на выходе получается заполненная таблица ровно с
этими людьми), team.member.create, team.member.save, team.member.setRole,
team.member.deactivate, team.invite.revoke, team.shift.create.

Три из них опубликованы в каталоге чата в llm.json.

Прямые зависимости модулей

  • front-core, g-centimanus, g-identity, g-staff

Принадлежность к решению

  • production

Источник

modules/surfaces/sequrity/sf-team