Ошибка после удаления коллективного блога
Недавно один пользователь жаловался что не может добавить посты. Скинул скрин, посмотрел, у него была такая ошибка:
Посмотрел строку 65 файла ACL.class.php, понял что у него нету разрешения для поста. Здесь у вас тоже искал решения, но конкретно ничего не было. Потом сам нашел и решил поделится. Может разработчики сделают дополнение и закроют баг?
В общем если юзер добавился к одному коллективному блогу и потом админ этого блога удалил этот блог, то в базе все равно этот юзер как бы состоит в том блоге. и система не понимает это когда он хочет добавить пост, поэтому дает такую ошибку. я пока через myadmin захожу в базу и нахожу в таблице _blog_user все блоги данного юзера (естественно сначала сортировав через user_id) потом через админку moysite/admin/blogs/list/open/ проверяю ID коллективных блогов. таким образом нахожу не нужный (удаленный блог) блог и удаляю с таблицы юзера.
Надеюсь понятно объяснил :) Удачи!
Catchable fatal error: Argument 2 passed to ModuleACL::CanAddTopic() must be an instance of ModuleBlog_EntityBlog, null given in /var/www/***/classes/modules/acl/ACL.class.php on line 65
Посмотрел строку 65 файла ACL.class.php, понял что у него нету разрешения для поста. Здесь у вас тоже искал решения, но конкретно ничего не было. Потом сам нашел и решил поделится. Может разработчики сделают дополнение и закроют баг?
В общем если юзер добавился к одному коллективному блогу и потом админ этого блога удалил этот блог, то в базе все равно этот юзер как бы состоит в том блоге. и система не понимает это когда он хочет добавить пост, поэтому дает такую ошибку. я пока через myadmin захожу в базу и нахожу в таблице _blog_user все блоги данного юзера (естественно сначала сортировав через user_id) потом через админку moysite/admin/blogs/list/open/ проверяю ID коллективных блогов. таким образом нахожу не нужный (удаленный блог) блог и удаляю с таблицы юзера.
Надеюсь понятно объяснил :) Удачи!
16 комментариев
ТОлько не разобрался до конца =( Нашёл «мёртвый блог» который надо удалить.
"… и удаляю с таблицы юзера" а как эта таблица называется?
в таблице _user ничего связанного с блогами нету. =(
извини, если не понятно написал решение. я не русский :)
З.ы. только там еще кеш нужно скинуть.
P.S> Спасибо за информацию. Будем учитывать.
Делаем бэкап базы.
Делаем такой запрос
select * from prefix_blog_user where blog_id not in (select blog_id from prefix_blog)
Это показывает какие юзеры ссылаются на несуществующие блоги.
Удаляем эти строки и чистим кэш.
Может кто-то поделится решением?