Есть у меня подсистема, которую я в виде расширения выложил, и она содержит четыре роли:
- PAPI_Администратор – полные права
- PAPI_БазовыеПрава – в основном только чтение объектов
- PAPI_ПодсистемаPAPI – только видимость подсистемы PAPI
- PAPI_Оператор – возможность просмотра и работы с некоторыми регистрами.
Расширение чаще всего работает с галочкой «Использовать основные роли для всех пользователей»:
Роль PAPI_БазовыеПрава прописана в основные роли конфигурации:
И все замечательно до тех пор, пока галочка вдруг не слетит. Как только это случается, то у пользователей вдруг появляется нехватка прав. На самом деле это происходит не всегда. Чаще всего эта роль загадочным образом оказывается прописанной в профилях.
Вот как на картинках ниже. Бац, и она сама залезла во все профили без административных прав:
Подобно плесени, она присутствует в каждом профиле. При этом никто ее не прописывал, ее прописывает туда хитрый код под названием «Костыль» от фирмы 1С. Суть проблемы кроется в двух вещах.
1 Фирма 1С написала код, снимающий галочку «Использовать основные роли для всех пользователей», так как она идет в разрез с заложенным ранее механизмом прав.
Свойство «Использовать основные роли для всех пользователей» в БСП не поддерживается (и автоматически очищается). Поддержка не запланирована, так как требуется менять модель назначения прав через роли в целом. Сейчас модель такая: права у пользователя могут быть только, если есть роли у пользователя ИБ, а этот флажок меняет модель - могут быть права и без ролей. То есть требуется существенное перепроектирование механизмов - такие переработки на текущий момент не считаются оправданными.
Для решений не на базе БСП этот флажок можно применять, чтобы любой пользователь получал все права, указанные в основных ролях, то есть фактически все права на объекты, которые указаны в ролях, а не вообще все права. Если решение не на базе БСП и стандартны можно не соблюдать и можно давать совсем все права, то лучше использовать пункт 1 (в этом случае значение флажка ничего не меняет).»
Доступа к партнерке у меня нет, я нашел это тут -> https://forum.infostart.ru/forum86/topic235640/#message2466730
То есть переделывание механизма трудозатратно и нецелесообразно, поэтому это поведение скорее всего навсегда.
2 А вот про вторую вещь надо поговорить подробнее.
Ситуация следующая. Галочка снимается и роль прописывается сама по себе, но что будет, если эта роль не прописалась?
У пользователей повалят ошибки и техсупорт вздрогнет!
Что первое приходит в голову?
Создать профиль, добавить в него базовую роль и повесить на всех пользователей, которым она потребуется.
Правильно. Я бы так и сделал.
А знаете, что произойдет при попытке так сделать?
Выпадет вот такое замечательное окошко:
Сообщение говорит следующее:
- Не ерзай, иди за вазелином, отвечай на звонки и письма пользователей, а главное, наслаждайся этим процессом до тех пор, пока стандартная роль добавляется автоматически!
А когда она добавится?
И что делать, если прошли сутки, а она не добавилась?
А главное! Зачем так сделано?
Почему нельзя дать возможность ее добавить самому, своими руками?
А теперь барабанная дробь! Костыльный обход костылей!
1 Можно выделить все роли и нажать волшебную кнопку и вуаля, все роли выбраны, вплоть до нужной нам.
2 Можно выбрать роль «Базовые права БСП», и роль «PAPI: Базовые права» включилась сама по себе!
Сохранив, мы видим:
Скажите мне: - Где это документировано?
Самое интересное - есть еще один способ обойти эту напасть.
Переименовать роль!
Давайте посмотрим в Код!
Сразу бросается в глаза, куда рыть:
Идем дальше:
Вот где костыль сидит:
Если бы моя роль называлась БазовыеПрава_PAPI или PAPI_Базовая или PAPI_ЖелтыеКотики все бы было замечательно.
Проверим гипотезу?
Назову роль PAPI_Базовая, а синоним оставлю прежний:
Записали:
Соответственно, если вы делаете расширение и не хотите повторить мой путь, делайте нейминг так, чтобы роли не заканчивались на следующие имена:
- ОбщиеПрава
- ПолныеПрава
- БазовыеПрава
- БазовыеПраваВнешнихПользователей
- АдминистраторСистемы
Ну и на затравку...
Кто использует InfostartToolkit?
П.С. Я ни на что не намекаю, просто констатирую факты 😉
А вот теперь точно все!
Спасибо за внимание и всем успехов и новых вершин!