Ответ
Misha v.3 31.03.2005 21:19
1. ^MAIN:pSQL.sql[table]{...} => ^MAIN:pSQL.table{...} (так короче)
2. WHERE record_id = '2' => WHERE record_id = 2 (не надо заставлять сервер конвертировать данные лишний раз)
3. irf = 0 - это значит установлена маска, т.е. права не стекают. auser.right - это права пользователя на root (это как-бы выше чем корневые объекты). auser.right используется в getRightsToObject (смотрите в конце). т.е. у вас права пользователя с id=4 на объект с id=2 составляют исключительно права, непосредственно выданные пользователю с id=4 (или через группу Admins) на этот объект. чтобы так-же учитывались права пользователя как владельца надо сделать так:
$effective_right(^auth.getRightsToObject[$current_object;$thread;$acl;^if($auth.user.user_id == $current_object.auser_id){1}{0}])
но о целесообразности добавления этой операции я написал выше, возможно мне лучше подправить код класса.
далее, я не понял какие права он должен иметь, т.к. вы не показываете, какие назначения прав есть в табличке acl. если вы проапдейтите irf у всех объектов до 65535 то у вас появятся таки эффективные права у этого пользователя на этот объект, т.к. они стекут с его прав на root (то, что задано в auser.right)
- Класс авторизации. пара вопросов., Gluchik 31.03.2005 17:39
- Ответ, Misha v.3 [M] 31.03.2005 18:42
- Ответ, Gluchik 31.03.2005 20:03
- Ответ, Misha v.3 [M] 31.03.2005 21:19
- Ответ, Gluchik 01.04.2005 13:16
- Ответ, Misha v.3 [M] 01.04.2005 14:00
- Ответ, Gluchik 01.04.2005 15:35
- Ответ, Misha v.3 [M] 01.04.2005 15:58
- Ответ, Gluchik 01.04.2005 16:14
- Ответ, Misha v.3 [M] 01.04.2005 16:15 / 01.04.2005 16:44
- Ответ, Gluchik 01.04.2005 13:21