Цитата(garlands @ Apr 21 2011, 20:52)

хм. вся фильтрация осуществляется еще на уровне юзверьского междумордия. и именно в этом модуле принимается решение о манипулировании настройками и даже показом пунктов меню. весь остальной алгоритм пребывает в счастливом неведении об уровнях доступа и прочей ереси. пришла команда зажечь светик - сделано. а вся забота о разграничении прав подать такую команду - на UI (user interface) и связанном с ним модулем разграничения доступа...
Все верно, но встречаются (в частности у меня) ситуации, когда входными, по отношению к системе, являются не только данные с клавиатуры! Ну например асинхронный канал связи по которому передаются команды в систему, ну например информация с датчиков, органов управления и т.д.
получается, что необходимо встраивать механизм разграничения по правам в каждый из этих входных каналов связи?
А выходными параметрами системы никак по Вашему не нужно управлять в разрезе прав доступа?
А как быть если например прибор находится в состоянии с уровнем доступа для пользователя, и этот самый пользователь, нажимая кнопки на приборе, поворачивает стрелу крана, а с правами администратора те же кнопки нужны для навигации по меню и/или переконфигурировании прибора?
Или вот например у меня права доступа "все прочие" должны обязательно сопровождаться отсутствием какой либо индикации на приборе! В конце концов прибор может сформировать результат некоего внутреннего вычисления, исследования, замера но результатом поделиться только лишь с соответствующими пользователями. Можно еще много всего придумать, я уверен, что выходные параметры прибора должны быть под надзором системы разделения прав.
А может все таки наложить некую комбинацию "фильтров" на входные и выходные воздействия системы в соответствии с правами пользователей?
Брак - это такой вид отношений, в которых один всегда прав, - а другой - муж.