I have SMF 1.1.14. The only mod installed is Single Category.
The board has been live for two days. Everything was working fine and then all of a sudden none of the regular members see any of the boards. Admin users still see all the boards. It's possible one of the admin users messed up the permissions, but I can't find the problem. Help!
I also noticed that a regular user can't view his own profile, even though in permissions "own profile" is checked under View profile summary and stats. A regular member gets this message: An Error Has Occurred! Many apologies, but you can't view your own profile.
I'm more concerned about the invisible boards, but perhaps the two are related.
Step 1 : uninstall Single Category - does it cure the problem?
Step 2 : admin > forum > boards - re-check the board permissions.
If all is now OK then re-install Single Category. If still problems best bet is to post on the mod support thread...
http://www.simplemachines.org/community/index.php?topic=118299.100 (http://www.simplemachines.org/community/index.php?topic=118299.100)
Let us know how you get on.
If it isn't mod related then come back anyway. :)
Uninstalling the mod made no difference. I'm stuck.
I have the 20 most recent posts on my web site home page (not the SMF home page). I noticed that recent posts don't appear for regular members either. I looked at the query it was generating:
SELECT
m.posterTime, ms.subject, m.ID_TOPIC, m.ID_MEMBER, m.ID_MSG, b.ID_BOARD, b.name AS bName,
IFNULL(mem.realName, m.posterName) AS posterName,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, 0)) >= m.ID_MSG_MODIFIED AS isRead,
IFNULL(lt.ID_MSG, IFNULL(lmr.ID_MSG, -1)) + 1 AS new_from, LEFT(m.body, 384) AS body, m.smileysEnabled, m.icon
FROM (`bushpilots_smf_prod`.smf_messages AS m, `bushpilots_smf_prod`.smf_topics AS t, `bushpilots_smf_prod`.smf_boards AS b, `bushpilots_smf_prod`.smf_messages AS ms)
LEFT JOIN `bushpilots_smf_prod`.smf_members AS mem ON (mem.ID_MEMBER = m.ID_MEMBER)
LEFT JOIN `bushpilots_smf_prod`.smf_log_topics AS lt ON (lt.ID_TOPIC = t.ID_TOPIC AND lt.ID_MEMBER = 2150)
LEFT JOIN `bushpilots_smf_prod`.smf_log_mark_read AS lmr ON (lmr.ID_BOARD = b.ID_BOARD AND lmr.ID_MEMBER = 2150)
WHERE t.ID_LAST_MSG >= 17398
AND t.ID_LAST_MSG = m.ID_MSG
AND b.ID_BOARD = t.ID_BOARD
AND (FIND_IN_SET(13, b.memberGroups) OR FIND_IN_SET(8, b.memberGroups))
AND ms.ID_MSG = t.ID_FIRST_MSG
ORDER BY t.ID_LAST_MSG DESC
LIMIT 20
The problem seems to be in the line "AND (FIND_IN_SET(13, b.memberGroups) OR FIND_IN_SET(8, b.memberGroups))". When I look at the boards in my database, membergroups is -1,0,2 for all of them, but the query is looking for boards for membergroups 13 or 8. Where do the 13 and 8 come from?
I'm still hoping to find a simple solution by changing settings in admin. Any ideas?
OK, I managed to solve my problem, although I have no idea what caused it. I started hacking and discovered that about 5% of members of the site had ID_GROUP set to 13 in the smf_members table. These members were able to see all the boards until today. I went into PHPMyAdmin, did a backup, then ran a SQL query to change all the 13's to 0. Now all members can see all boards.
There are two factors that may or may not be the cause. This forum was converted from a very old yabbse forum two days ago (and was working fine for everyone). Today I ran the admin option to find and fix errors.