PDA

View Full Version : Bug: Добавление групп хостов в права доступа


dotneft
27-04-2009, 07:42
В ревизии 7220 1.6 при попытке добавить группу в любой из разделов прав (Чтение-запись, Только чтение, Запрещено) пишется сообщение "Нет установленных ресурсов"

Updated: Проблема возникла в ревизии 7173.

Так же имеется баг, но довольно старый:) к группе нельзя привязать несколько пользоваталей, приходится к каждому пользователю заходить в свойства и добавлять группу. То же самое и при редактировании группы с несколькими пользователями, её уже сохранить не удается. В этих случаях появляется ошибка: "Невозможно обновить"

Vedmak
30-04-2009, 11:41
В ревизии 7220 1.6 при попытке добавить группу в любой из разделов прав (Чтение-запись, Только чтение, Запрещено) пишется сообщение "Нет установленных ресурсов"


Да, была такая ошибка, исправлено в 7235.

А к группе, у меня, добавляются несколько пользователей без ошибок.

dotneft
30-04-2009, 17:03
странно не хочет и все... даже взять уже существующую группу с несколькими пользователями и попытаться сохранить её, получаем ошибку О_О

зафтро еще поковыряюсь))) Может проблема и у меня...

Ps: протестировал еще раз...на 7239 1.6.4 не хочет никак:( второго уже пользователя к группе не добавляет, ошибка и все:( есть какие нибудь способы дебага?

А вот с транковым фронтендом все гуд))) правда ругается, что нет колонки Ip для записи в аудит лог:) но в группу добавляет без проблем

dotneft
01-05-2009, 10:22
Проблема в users.inc.php:

где то здесь:)

if($grant){
$result = DBexecute('DELETE FROM users_groups WHERE usrgrpid='.$usrgrpid);
foreach($users as $userid => $name){

$result &= add_user_to_group($userid,$usrgrpid);
error("Result in update_user_group str 347 '$result'");
if(!$result) return $result;
}

}


Я добавил error сообщение в add_user_to_group и в код, указанный выше, и вот что получилось:


Result in func add_user_to_group 'Resource id #122'
Result in update_user_group str 347 '112'
Result in func add_user_to_group 'Resource id #128'
Result in update_user_group str 347 '0'

Да, совсем забыл) БД у меня Oracle

Aly
05-05-2009, 10:08
А если заменить на это? :) if($grant){
$result = DBexecute('DELETE FROM users_groups WHERE usrgrpid='.$usrgrpid);
foreach($users as $userid => $name){
$result = add_user_to_group($userid,$usrgrpid);
if(!$result) return $result;
}
}

dotneft
05-05-2009, 12:18
А это работает:) уже протестировал... Насколько я понимаю & побайтовое сравнение? Т.е. получается результат добавления пользователя 1 и результат добавления пользователя 2 не одинаков?

Интересно это фича Oracle или бага=\

ЗЫ: в догонку, в Опере (в других браузерах не пробовал) делаешь изменение у группы (права, пользователи и т.п.), нажимаешь кнопку сохранить. Сохранение происходит, но если опять открыть группу на изменение, то все изменений никаких не будет (кэшируется что-ли=\)! А если же обновить страницу групп пользователей и потом открыть недавно измененную группу, то все изменения имеются.

Aly
05-05-2009, 13:00
Думаю не то и не другое. Просто особенность работы с базой данных.

В опере есть кешинг, кажется это preferences-> advanced->history memory cache - off

dotneft
05-05-2009, 13:09
вижу уже иправили:) быстро, спасибо;)