Как мы в WikiMind собрали доступы без “магии в enum”
Когда в продукте документы, команды и LDAP, схема «ADMIN/USER» умирает на enterprise-демо. Поэтому мы сделали 4-уровневую модель доступа с ролями, коллекциями, персональным и групповым доступом.

Когда в продукте документы, команды и LDAP, схема “ну давайте просто ADMIN/USER” умирает на первом же enterprise-демо 😅 Поэтому мы сделали 4-уровневую модель доступа:
- роль в workspace:
ADMIN / EDITOR / VIEWER / GUESTс 70+ разрешениями - доступ к коллекции:
PRIVATE / READ / READ_WRITE - персональный доступ к документу
- групповой доступ через
LDAP
Ключевой момент: роли у нас — не hardcoded enum, а записи в БД с массивом permissions. То есть под каждую организацию можно спокойно докрутить свою матрицу прав, без релизов “на каждый чих”.
Ещё из важного: ADMIN имеет override почти на всё, кроме чтения и избранного. Звучит неожиданно, но это защита от случайного залёта в чужие документы — тот самый кейс “открыл не то на созвоне”.
В эпоху zero-trust и корпоративной паранойи это уже не фича, а база.