Разграничение прав доступа учетных записей для Внешних Модулей

То есть в настройках учетной записи, например, пусть будет список имеющихся на сервере внешних модулей, в котором будет возможность выставлять флажки “Запретить” или “Разрешить”. При этом, если использование модуля запрещено, нужно, чтобы на клиенте, запрещенный модуль не запускался(не запускался метод Lers.Plugins.IPlugin.Initialize()), то есть не было в списке “Действия” и “Сервис”.

Имеются разные типы модулей, например: для администраторов системы, для опроса и импорта показаний, для просмотра и экспорта данных из ЛЭРС УЧЕТ и т.п. Например, модули администраторов должны быть доступны только учетным записям админов. Другие учетные записи не должны знать об их существовании на своих клиентах.

А если модуля нет на сервере и пользователь самостоятельно скопировал его в папку на своём компьютере?

Может, как обычно?

Разрешить использование внешних модулей:
* Все
* Только указанные

Для существующих пользователей выставить “Все”. Если модуля нет в списке - не запускать.

Да, так будет правильней.

Запретить запуск модулей, которых нет на сервере. Если конкретный пользователь желает добавить некий модуль, то администраторам нужно будет добавить модуль на сервер и открыть доступ только для этого пользователя.

Сейчас при удалении модуля с сервера в пункте меню “Администрирование->Внешние модули”, модуль в папке на локальных компьютерах у пользователей все равно остается. Желательно, чтобы запрещенные модули удалялись при входе в ЛЭРС УЧЕТ, и скачивались только те, доступ к которым открыт. Однако, тут при “Обновлении ЛЭРС УЧЕТ” потребуется лишнее знание учетной записи.

Наверное, не стоит этого делать, поскольку за компьютером пользователя вполне может залогиниться администратор. В таком случае ему бы хотелось, чтобы его модули присутствовали в системе.

Думаю, что модули должны в любом случае скачиваться, но инициализация должна выполняться только в случае если пользователю разрешён этот модуль.