четверг, 26 февраля 2009 г.

drupal, access denied и потерянный anonymous

Во время разработки проекта на друпале исчез доступ к страницам для анонимуса, просто потерялся, словно и не было его никогда. Сначала нас это не сильно заботило, потому как было много других важных задач, но вот мы подошли к релизу. И выяснилось, что все наши усилия могут быть заживо похоронены по той простой причине, что никто не может их увидеть.

Начались поиски потерянного доступа.

Сначала проверили все права для anonymous user - не помогло. Для зарегистрированного юзера с такими же правами всё работает, для анонимуса - нет.

Пляски с бубном не помогли.

Решили пойти на обман. Так как в друпале группы наследуют права в алфавитном порядке, то мы решили этим воспользоваться. Создали группу, выставили эту группу одному из пользователей, проверили работоспособность - работает. Далее переназвали эту группу aauth_hack и стали ждать манны небесной. Манна не пришла....

Далее решил проверить всё что можно в базе. Выставил анонимусу в базе права на всё! Получился всемогущий юзер... который не мог ничего сделать.

И лишь после стольких усилий я увидел, что в таблице юзеров этот самый анонимус ИСЧЕЗ! Скорее всего его убил какой-то модуль во время деинсталляции. Баг же был поправлен одной строкой кода:


1 INSERT INTO `users` VALUES (0, '', '', '', 0, 0, 0, '', '', 0, 0, 0, 0, NULL, '', '', '', NULL)



Поправив этот баг я достиг просветления... (to be continued?)

Комментариев нет:

Отправить комментарий