Recent Topics

Permissions not removed when deleting a blog [fixed]

Started by on Dec 04, 2005 – Contents updated: Dec 04, 2005

Dec 04, 2005 18:37    

Hi,

I just tried setting up b2e 1.6. Seems to work well as such, but I just can't get the filemanager to work ... anytime I try to open it up, I get a "Requested Blog does not exist!" ... even adding a "blog=1" option (just using one blog, #1, and it's the default) ... what am I missing here?

edit: Also, when in the admin interface, selecting the write menu option, I get a "blog=0" call, which of course also results in the above error message ... !?

Dec 05, 2005 12:11

Could you please try setting $debug = 1 in /conf/_advanced.php?

This should hopefully echo a backtrace in case of this error.

btw: blog=0 shouldn't be a problem when going to "Write", this just means to autodetect the first blog you have permissions on.

Dec 05, 2005 19:21

1. debug_die( "Requested Blog does not exist!" )
File: /var/www/vhosts/antifan.de/httpdocs/evocore/_dataobjectcache.class.php:290
2. blogcache->get_by_id( "2" )
File: /var/www/vhosts/antifan.de/httpdocs/evocore/_filemanager.class.php:726
3. filemanager->getrootlist()
File: /var/www/vhosts/antifan.de/httpdocs/evocore/_filemanager.class.php:220
4. filemanager->filemanager( Object(user), "files.php", NULL, "/", NULL, NULL, NULL, NULL, NULL )
File: /var/www/vhosts/antifan.de/httpdocs/admin/files.php:192

This irritates me:

dataobjects:

* Loading User(4) into cache
* dataobjectcache - Loading Group(ALL) into cache
* Loading Blog(criterion: browse) into cache
* Loading Blog(1,2,3,4) into cache
* Loading Blog(2) into cache
* Could not get DataObject by ID. Query: SELECT * FROM T_blogs WHERE blog_ID = 2

There is no blog #2 ... I don't know where it gets this ID from ...

Dec 05, 2005 19:51

It seems that either your evo_coll_user_perms or evo_coll_group_perms table got messed up, because it looks like that there are permissions for a non-existing blog (#2) defined.

Have you manually deleted this blog (ID 2) from evo_blogs?

François: should BlogCache::load_user_blogs make sure that the blogs exist (by joining T_blogs)?

Dec 05, 2005 20:05

No, no manual delete from any of the tables ...

Looks like I got it fixed: When deleting blogs 2-4 from the default distribution using the admin interface, the entries in the table evo_bloggroups were not removed by b2e ... after deleting the leftover entries, the filemanager is now working ...

Dec 05, 2005 23:19

I wonder if this is related to a trivial little detail: b2evo ships with/installs a sample post that is in two cats in two blogs but does not have the cross-blog option enabled.

Dec 06, 2005 00:07

Garry, you've discovered a bug here. Thank you. I've fixed it in CVS for the next release.

EdB, I think the cross blog option is disabled by default, because it increases the probability to screw things up and could also confuse the user. It's not related to this bug.

Dec 06, 2005 05:56

Visitor

Anytime ... :) Glad to be able to help out ...

Dec 08, 2005 00:17

I have the same symptoms as Gary. I suppressed the three example blogs and now file manager doesn t work, and additionaly the edition doesn t work if I don t select a blog (admin/b2browse.php?blog=0).

Dec 08, 2005 00:47

:D using the same procedure (deleting manualy the appropriate references in the table evo_bloggroups) what is also strange is that by default when a blog is created no group is alowed to change it.

Dec 08, 2005 17:33

Guess, that's why we called it an "alpha" release :>

blueyed wrote:

François: should BlogCache::load_user_blogs make sure that the blogs exist (by joining T_blogs)?

No, this should never happen. We just need to make sure we delete the group perms before actually deleting a blog.

Jan 27, 2006 19:22

Hi Gang,

I found this article as of a search. I'm experiencing this same problem.

Can someone explain to me how I can see exactly which items need to be manually deleted from the evo_bloggroups table? I'm looking at this right now and I'm afraid to make a deletion without a little more help.

Thanks!

Dan

Jan 27, 2006 22:33

> DarkDan

I dont remeber wich one it was, but anyway it depends on what you deleted before in the admin interface of B2Evolution and that is still in the table and should not be, there was quite a lot for me. Try to note the references of users and goup users that ar stil valid and delete others.
Joseph

Jan 29, 2006 11:39

The query to execute is this:

Code

DELETE evo_bloggroups
FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID
WHERE blog_ID IS NULL

which deletes all blog-groups-permissions for non-existing blogs.

Mar 21, 2006 16:21

blueyed wrote:

The query to execute is this:

Code

DELETE evo_bloggroups
FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID
WHERE blog_ID IS NULL

which deletes all blog-groups-permissions for non-existing blogs.

I apologize - I'm not as experienced with MySQL and such. Where do I use this code at exactly? If it makes any difference I have phpMyAdmin as part of my hosting package.

Thanks,
Kyle

Mar 21, 2006 16:36

Yes, go to phpMyAdmin, choose the SQL tab (after browsing to your database, if necessary) and paste the above code. Then click Go/Execute.

Mar 29, 2006 08:16

"Garry" wrote:

1. debug_die( "Requested Blog does not exist!" )

Have the same problem have run debug AS SUGGESTED and got the following

Requested Blog does not exist!
Backtrace:

1. debug_die( "Requested Blog does not exist!" )
File: /var/www/html/blog/evocore/_dataobjectcache.class.php:290
2. blogcache->get_by_id( "6" )
File: /var/www/html/blog/evocore/_filemanager.class.php:726
3. filemanager->getrootlist()
File: /var/www/html/blog/evocore/_filemanager.class.php:220
4. filemanager->filemanager( Object(user), "files.php", NULL, "/", NULL, NULL, NULL, NULL, NULL )
File: /var/www/html/blog/admin/files.php:192

Ignored last: 1

Debug messages
dataobjects:

* Loading User(1) into cache
* dataobjectcache - Loading Group(ALL) into cache
* Loading Blog(criterion: browse) into cache
* Loading Blog(4,1,2,3,2,3,6,4,8,5,1,7) into cache
* Loading Blog(6) into cache
* Could not get DataObject by ID. Query: SELECT * FROM T_blogs WHERE blog_ID = 6

The problem is in my list of bloG I have one through to four then a gap then before eight and nine - BLOGS 5, 6, 7 ARE MISSING FROM MY LIST

Blog Full Name Blog URL Static File Locale Copy Del
1 Properties Blog All Bahrain Bird Report index.php/ all.html [Gen!] English (UK)
2 Properties Observations (Default) Report a sighting a_stub.php a.html [Gen!] English (UK) Copy Del
3 Properties ID Problems with ID b_stub.php b.html [Gen!] English (UK) Copy Del
4 Properties Links Links index.php/ links.html [Gen!] English (UK) Copy Del
8 Properties Projects Projects c_stub.php home [Gen!] English (UK) Copy Del
9 Properties Home Home Page all_stub.php English (UK) Copy Del

Mar 30, 2006 01:46

I RECIEVED THE FOLLOWING FROM TOPANGA

If blog are missing, that means you have once created new blogs, then deleted them, then recreate new blogs. This is something I noticed as well.

Once you do that, you will have errors (blog does not exist)

Restart with a new database, just rename blogs, do not delete any, just create new once, and you will have no problems.

It's a 'known' bug

Thanks Topanga

am now REINSTALLING my database and starting over
Howard

Apr 02, 2006 10:29

I'm having this problem, but I'm receiving an error when I try to run the fix code in myPHPAdmin. Does anyone know what is wrong? Is there something else I need to add to the code to make it work? I don't know anything about MySQL.

#1064 - You have an error in your SQL syntax near 'evo_bloggroups'
FROM 'evo_bloggroups' LEFT JOIN evo_blogs ON blog_ID = bloggroup' at line 1

Note that this problem is happening when the backend tries to access blog 0 (when I click on browse or write without selecting the blog first), which no longer exists or (for some reason) when it tries to access files.php

Thanks for your help.

Apr 02, 2006 17:23

bennybobw, please post the whole SQL you're trying to execute - I want to be sure it's same I've posted.

Also, which MySQL version are you using? (you can see this on the "homepage" of your phpmyadmin installation)

Apr 02, 2006 21:35

blueyed,
I'm using mySQL 3.23.58, phpMyAdmin 2.6.0-pl3, and the Phoenix release of b2evolution.
I'm posting this code in the MySQL query window in myPHPAdmin:

DELETE evo_bloggroups
FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID
WHERE blog_ID IS NULL

And I get this error:

MySQL said: Documentation
#1064 - You have an error in your SQL syntax near 'evo_bloggroups
FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup' at line 1


I thought maybe the problem was the funky quotes around evo_bloggroups so, I changed them to straight quotes, same error:

DELETE evo_bloggroups
FROM 'evo_bloggroups' LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID
WHERE blog_ID IS NULL

And:

SQL-query:
DELETE evo_bloggroups FROM 'evo_bloggroups' LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID WHERE blog_ID IS NULL

MySQL said: Documentation
#1064 - You have an error in your SQL syntax near 'evo_bloggroups FROM 'evo_bloggroups' LEFT JOIN evo_blogs ON blog_ID = bloggroup_' at line 1

Then I thought maybe the problem was line breaks or something, so I tried inserting line breaks at the end of each of the three lines \. No luck. Then I tried putting everything on one line, and that didn't work either.

Like I said, I'm absolutely new to MySQL, so it could be just user error. Hopefully that gives you enough detail to see what the problem might be. Thanks a lot for your help.

bennybobw

Apr 02, 2006 23:04

Ok, it appears that multiple-table deletes are only supported since MySQL 4.0.

So, to fix your problem, you'll have to see which blog_IDs are used/present in the evo_blogs table: each row has an ID, in the column blog_ID.

Then, you'll have to delete every row, which has an ID in the bloggroup_blog_ID column that is not present in evo_blogs.

The following two queries can help:

Get all used blog_IDs:

Code

SELECT blog_ID FROM evo_blogs;

Delete all group permissions for blogs with IDs other than X, Y or Z (replace with your blog IDs, from the first query)

Code

DELETE FROM evo_bloggroups WHERE bloggroup_blog_ID NOT IN ( X, Y, Z )

Apr 04, 2006 02:44

jdumetz wrote:

:D using the same procedure (deleting manualy the appropriate references in the table evo_bloggroups) what is also strange is that by default when a blog is created no group is alowed to change it.

I had the same problem, and did exactly the same thing. It worked for me.

If anyone needs more info on how to do this, here's a series of screenshots from phpmyadmin, explaining how to do it.
[url=http://www.konyk.org/trash/fix/]link[/url]

Apr 04, 2006 20:07

Thanks blueyed. That worked perfectly.

-bennybobw

May 07, 2006 11:25

when i ran the code below I got the following message
Database hawar-islands_com_-_db - Table evo_blogs running on localhost

Error

SQL-query :

DELETE evo_bloggroups FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID WHERE blog_ID IS NULL

MySQL said:
#1064 - You have an error in your SQL syntax near 'evo_bloggroups FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggro' at line 1

-------------------------------------------------------------

"krfinucane" wrote:

blueyed wrote:

The query to execute is this:

Code

DELETE evo_bloggroups
FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup_blog_ID
WHERE blog_ID IS NULL

which deletes all blog-groups-permissions for non-existing blogs.

May 07, 2006 12:04

bennybobw wrote:

MySQL said: Documentation
#1064 - You have an error in your SQL syntax near 'evo_bloggroups
FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggroup' at line 1

howardk wrote:

MySQL said:
#1064 - You have an error in your SQL syntax near 'evo_bloggroups FROM `evo_bloggroups` LEFT JOIN evo_blogs ON blog_ID = bloggro' at line 1

blueyed wrote:

Ok, it appears that multiple-table deletes are only supported since MySQL 4.0.

So, to fix your problem, you'll have to see which blog_IDs are used/present in the evo_blogs table: each row has an ID, in the column blog_ID.

Then, you'll have to delete every row, which has an ID in the bloggroup_blog_ID column that is not present in evo_blogs.

The following two queries can help:

Get all used blog_IDs:

Code

SELECT blog_ID FROM evo_blogs;

Delete all group permissions for blogs with IDs other than X, Y or Z (replace with your blog IDs, from the first query)

Code

DELETE FROM evo_bloggroups WHERE bloggroup_blog_ID NOT IN ( X, Y, Z )

;)

¥

May 07, 2006 13:55

Found the error - following your instructions and corrected the problem many thanks - I had deleted a blog recntly submitted that had undesirable pictures on it - I have a bird site - all feathered - the pictures would make your dog blush.

--------------
So, to fix your problem, you'll have to see which blog_IDs are used/present in the evo_blogs table: each row has an ID, in the column blog_ID.

Then, you'll have to delete every row, which has an ID in the bloggroup_blog_ID column that is not present in evo_blogs.

B)

http://www.hawar-islands.com/blog/index.php


Form is loading...

Photo gallery software – This forum is powered by b2evolution CMS, a complete engine for your website.