parser

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

 

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

Ответ

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)