Ребят, сейчас поймал себя на мысли, что в моем одном проекте дыра в системе ролей и доступов.
У пользователя есть доступы. Для каждого действия проверяется наличие соответствующего доступа. Но это не достаточная проверка. Надо еще проверять и на наличие пользователя в той или иной команде...
Но тут есть одна загвоздка. Пользователь, теоретически, может состоять в нескольких командах. В одной у него роль с правами выше, чем в другой. При проверки права на действие сперва проводится проверка наличия пользователя в команде, а затем наличие доступа. Вот только доступ может быть от другой роли в другой команде.
Что подскажите? Как такой исклюючать? Прривязывать роли не к пользователю, а к отношению пользователя и команды? Или какие вообще есть практики?
@cauf
"В одной у него роль с правами выше, чем в другой." - это на административном уровне?
@inqbrc эээээ... Что?
@cauf
Как реализованы 2 разных набора прав у одного пользователя в одной системе?
@cauf
Профиль прав доступа. Содержит в себе команду, набор прав доступа к действиям. Доступы к действиям разруливаются не чистыми правами, а профилями.
Дальше, либо в профили добавляются пользователи, которые имеют доступ к этим правам, либо в пользователе указываются профили прав.
Либо по классике - доступы к действиям разруливаются правами и командами, но у сотрудника несколько учеток с разными правами и командами.
@cauf
Профиль - абстракция более высокого уровня, чем роль. Он может группировать роль/набор ролей и команду. В 1С это не так сложно организовать. В свой системе тебе придётся самому подумать над реализацией.
А задачу твою заберу на собеседования. Пусть кандидаты подумают😁
@inqbrc профили прав доступа звучат как роли. Чуть подробнее со схемой описал здесь
https://lor.sh/@cauf/112070136632869288