So first up, SMF.
The first thing to note about SMF is that the ability to see a board is the same as the ability to see the content inside that board - you can't enter a board you can't see. (Caveat: if you have a board that's not visible, and a sub-board of it that is, you can enter that because it's not 'not visible' to you, it's just not visible. Permissions are not hierarchical.)
Board access is very simple - either a group can see it or they can't. Note here that it is on/off, and on a per-board basis, but you can actually deny access to boards. You just have to go to another screen (Admin > Forum > Boards and Categories > Settings) and turn on deny permissions, at which point the list of tick-boxes becomes something a bit different.
So here we see the classic 'Allow', 'Disallow', 'Deny' triple - other platforms call this 'Yes', 'No', 'Never', but it's the same basic idea. I think people who come to SMF get hung-up on the terminology based on discussions I've had.
Disallow doesn't mean 'can't', it means 'can't unless allowed', while deny means 'can't ever'.
Next up, let's take a quick look at general permissions. These are for permissions that aren't board-specific.
This is an interesting screen to me, mostly because it's quite confusing.
What we're saying here is: these are the groups that can have permissions. (Post count based permissions don't get a look in here, you have to go to Admin > Members > Permissions > Settings to enable them)
The first problem with this screen are all the groups that have (?) icons by them, because they're immediately confusing, and this is absolutely one of the reasons people have trouble with SMF permissions.
Specifically: Regular Members, Administrators and Moderators are complicated. Regular Members in this context doesn't mean 'registered members', it means 'registered members' who have no defined *primary* member group. (You can have a primary membergroup, this is what will be used in the in-post profile, and you can have secondary groups. Regular Members are everyone who have no defined primary group, but will still be in any secondary groups you give them. Most people don't get why there is a distinction.)
Administrators are here despite the fact there's no real reason for them to be here: they have all permissions all the time - as it says. I'd be more sympathetic to the idea of spelling it out but it's not consistent; the board access listing doesn't show admins (because they always have access) but this does.
Moderators are also complicated because the moderator group isn't really a group. Well, it is but it's not an assignable group as such. Basically, the Moderator group is one that you get given if you are assigned as a board-level moderator through the board configuration (you get listed on the board index and everything), and it will be added to your groups...
while you are in that board. Which means the listing here confusing because this is for 'general permissions' and initially that doesn't parse because... general permissions generally are for outside boards.
What it's actually doing is saying 'this is the list of general permissions around the forum PLUS the default profile for permissions that we expect most boards to use'. In fairness this is sort of explained actually in the permissions page itself but before we get to that I just want to touch on the bottom part of the page first.
The second problem with this screen are the three options at the bottom. First glance you wouldn't realise they're three separate options that are completely independent from each other, or indeed how they work.
The first option is 'for the groups you have ticked above, apply a set default list of permissions'. Basically, wired into the code of SMF are pre-set lists of permissions under the headings of 'restrictive', 'standard', 'moderator', 'maintenance'. I don't think it's *ever* explained anywhere what the permissions under those headings are and you have to go into the code itself to check. I also don't think anyone ever used this intentionally.
The second option is 'for the groups you have ticked above, copy the permissions from this group to all of those groups'. Useful if you have a lot of groups whose existence is for display purposes (e.g. different badges for different things) and you want to align the permissions, but honestly... there are better ways to do that.
The third option is for 'for the groups you have ticked above, (add or remove) (single specific permission)'. I'm also fairly sure no-one's ever used this.
And if we actually go into the permissions for a group we see the following.
That's a lot of permissions.
The first thing that's interesting is that SMF separates out admin level permissions - there's no 'user is admin' permission in the conventional sense. (Internally there is. Membergroup 1 is special; you can give out all the permissions but you can't give out group 1 unless you're in group 1. And group 1 has magic rules around 'always has all permissions' and 'bans do not affect group 1', something not true for other groups.)
Here we also see the permissions attached to the 'default profile' in this case, the normal permissions in a normal board for Regular Members.
The idea of profiles makes sense - you can then keep your permissions consistent between boards. But SMF's setup is confusing.
So, it comes by default with 4 profiles: Default, No Polls, Reply Only, Read Only. The last three are minor variations, whereby no polls just is the same as the above but with the polls permissions removed; Reply Only is so admins can make new topics but users can't; Read Only is what it says.
BUT... the Default profile is editable, you can click on it in the list of profiles and go edit it for each group. The others are *not* editable, you can only look up what permissions are available in them for each group (which if you make your own groups or add add-ons with permissions renders this somewhat useless), and what you have to do is *copy* them to a new profile, edit *that* profile, then apply that profile in the boards you want to be different.
But wait, there's more. SMF also has post moderation. It's off in the above screen, but if you enable it, you get new permissions that show up, plus a whole new screen.
In the SMF world of post moderation, permissions have a sort of cascade effect. There is the standard permission for 'can create new topic' (plus new reply), but post moderation also adds a permission for 'can create new topic but requires approval' and 'can create new reply but requires approval'.
This is confusing because... the 'can create new topic' and 'can create new reply' permissions automatically override the '...but requires approval' permission. Which means if you ever want to set up post moderation, you're in for a game I once described thusly:
Let me explain the problem of doing this on a fresh SMF install, and you're welcome to join in at home. Today's challenge: configure it so that regular users don't have moderation but new users with up to and including 5 posts are moderated.
There are, in fact, two ways to do this, both of which are convoluted.
1. Turn on post moderation in Core Features.
2. Making sure that the 0-post count group is left alone, create a new post count group that requires 5 posts, so that once a user has successfully posted 5 posts (and until they're approved, it won't affect their post count), they can have different permissions attached.
3. Admin > Members > Permissions > Settings > Enable permissions for post count based groups (tick) > save
Here's where the paths diverge. Here's path A:
A4: On the same page as above (Admin > Members > Permissions > Settings) also enable Enable the option to deny permissions
A5: Go to Admin > Members > Permissions > Board Permissions and for each profile (that allows posting) set the permissions up as follows: Regular members should have "Post new topics, without requiring approval" and "Post replies to topics, without requiring approval" enabled, while the 0-post count group should have those permissions *denied* and "Post new topics, but hide until approved" and "Post replies to topics, but hide until approved" in their place. Once the user leaves the 0-post count group for the 5-post count group, the other permissions are no longer denied.
[3]
Or, path B. It doesn't require deny permissions but it does things another way.
B4: Go to Admin > Members > Permissions > Board Permissions. For Regular Members, set all the posting permissions to disallow. Then in the 0-post count group, give them "Post new topics, but hide until approved" and "Post replies to topics, but hide until approved" and for every other post count group, give them "Post new topics, without requiring approval" and "Post replies to topics, without requiring approval".
[4]
Either way, banal and frustrating (and in fact, you still have to do the same thing using the other interface but it's actually slightly *more* confusing, not less there).
Footnotes:
3. But now we have an extra membergroup that does absolutely nothing other than allow another group's permissions to expire.
4. This means you still have the extra group, but at least the extra group is now doing something. This is also very fractionally faster, but harder to maintain as you have to set the new permission up on any new post count group you create.
(This was in the 2.0 era; 2.1 doesn't have the Core Features page. Instead you go to Admin > Members > Permissions > Post moderation and turn it on.)
This is still a logical problem one has to wrap their head around.
And just to help you out, post moderation gets its own special permissions screen.
This does (somewhat) mitigate the concept of 'create' vs 'create but with approval' in that you can't accidentally set the same group to have create *and* create-but-approve permissions (in the way you can in the other UI), but it's not obvious that if a user has two groups, create without requiring approval supersedes.
Anyway. That's SMF's permissions. Comprehensive enough but convoluted how to do things is really my hot take on this.