TpFibErrorHandler обработка прав доступа
Добавлено: 27 апр 2008, 14:05
На таблице "Работы" различные права у пользователей, через роли сделано.
Все пользователи могут смотреть таблицу. Некоторые НЕ могут править, но кнопка "Править" в программе есть. Убирать для 20 справочников в зависимости от роли не стали.
Используются компоненты Fibplus, обработчик ошибок.
Ожидаем: при редактировании поля, на которое нет прав у пользователя группы сработает exception, обрабатывается keSecurity и пользователь "отдыхает".
Однако! Схема не работает. При отключенном DoRaise после вышеуказанного сообщения появляется следом другое: Unknown SQL data type (0) от EFIBClientError.
При включенном DoRaise отображается ErrorValue.Message.
Как быть?
Все пользователи могут смотреть таблицу. Некоторые НЕ могут править, но кнопка "Править" в программе есть. Убирать для 20 справочников в зависимости от роли не стали.
Используются компоненты Fibplus, обработчик ошибок.
Ожидаем: при редактировании поля, на которое нет прав у пользователя группы сработает exception, обрабатывается keSecurity и пользователь "отдыхает".
Код: Выделить всё
keSecurity:
begin
Lasterror := 'keSecurity';
MessageBoxA( Self.Handle, PChar('Нарушение прав доступа' + #13#13 + 'Вы не обладаете правами на просмотр/изменение запращиваемой информации.' {+ {ErrorValue.Message}), sErrorMessage, MB_ICONEXCLAMATION+MB_Ok);
DoRaise:=False;
exit;
end;
При включенном DoRaise отображается ErrorValue.Message.
Как быть?