parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

я делаю немного иначе...

Misha v.3 16.10.2003 23:32

1. есть табличка auser где лежат пользователи и группы, идентификатор - auser_id
2. есть табличка object с объектами сайта, идентификатор object_id. есть еще поле irf - маска наследуемых прав.
3. есть табличка с Access Control List, с полями: auser_id, object_id, rights

Собственно если надо пользователю/группе дать права, я добавляю запись в табличку ACL, при этом права у меня задаются побитно (один бит - одно право)

В классе авторизации у меня есть метод, который сам считает права, которые пользователь имеет на объект - обычная битовая арифметика.
Права пользователя на объект складываются из всех прав данных группам, в которых состоит пользователь на все права объектов вурхних уровней в учетом маски. Если права даны не группе, а непосредственно пользователю, то они перебивают права пришедшие от групп (в общем если кому-нить это что-нить говорит, то я делал этот механизм наследования прав на основе реализованого в Novell NDS)

P.S. наверное завтра выложу класс авторизации в открытый доступ, там можно будет посмотреть реализацию этих методов.