====== Расширенный контроль пользователей ====== **Настройка работы:** - UserEx=1, права доступа будут загружены из users.fdb; - UserEx=0, права доступа будут загружены из *mes.fdb; - UserEx_log, обращения будут записаны в RPVISUAL.log; - UserEx_CardReader, название модуля из RpSvrTcp; - UserEx_DBName - путь до базы данных users.fdb. {{:dev:scada:userex.jpg?800|}} **Регистрация карт:** - В режиме UserEx=1, поднести нужную карту {{:dev:scada:loginuserex.jpg?300|}} - id карты запишется в cardlog - в окне "UserEx - Администрирование", выбрать нужного пользователя - кликнуть на кнопку "Выбрать" (Код карты) - в списке выбрать появившийся ID. {{:dev:scada:adminuserex.jpg?800|}} {{:dev:scada:carduserex.jpg?400|}} **Создание правил пользователям:** - в окне "UserEx - Администрирование", "Группы", выбрать группу пользователя {{:dev:scada:rulesuserex.jpg?400|}} - В таблице "Правила пользователя" Выражение = регулярное выражение для перехвата и обработки. - Разр. "да", значит разрешение данной группе обрабатывать действия данной группы; - Разр. "нет", значит запрет данной группе. - Разр. "-" ??? не знаю пока. **Обработка действий для работы :** - в нужный модуль добавить в раздел "uses" добавить UserControlEx - добавить обработчик действия, отправляющий фильтруемое выражение в фильтр - пример обработка нажатия TAdvGlowButton - данный код вернет true, когда пользователю разрешен тип действий (содержится в Caption) - также нажатия кнопки будет записано в rpvisual.log procedure TwndData02Form.checkPermission(Sender: TObject; var bCan: Boolean); begin if isModeUserEx then bCan := isPermitted('~'+(Sender as TAdvGlowButton).Caption); end;