Default groups - venn diagram


(PJH) #1

Just after confirmation, or otherwise, of the following diagram explaining the relationships between the various default groups after a conversation about them on my forum:

e.g. level 4 users are also in level 0-3, admin and moderators are separate roles (both staff), but people can be in both if necessary, and they don’t have to be above level 0 to be so, everyone must be at least level 0, etc…


(PJH) #2

Actually - that’s one that isn’t accurately expressed…


(PJH) #3

Final bash for the moment:


(Jens Maier) #4

I don’t think that’s right. Everyone should include anonymous users, while TL0 should not …right?


(PJH) #5

‘anonymous’? No such thing from what I recall from experimentation on our forum, those invited got a username based on the local part of their email address, and thus became de-facto level-0 users.

Unless you’re thinking of a different type of user?


(PJH) #6

Re-confirmed. What other ways of posting without ‘logging in’ are there?


(Jens Maier) #7

Sorry, I should have been clearer: anonymous referred to users who have not logged in. Those users should be included in ‘Everyone’ but not in TL0.


(PJH) #8

Ah - read-only users? ISTR that @codinghorror (can’t find the post ATM) specifically said that the everyone group was everyone in the database. If they’re not logged in, then they can’t participate in the everyone group.


(PJH) #9

To expand, everyone in the diagram is the one in this screenshot, not ‘everyone’ as in anyone viewing the site:


(Jens Maier) #10

For the purpose of ACLs, however, everyone does include unauthenticated users (users who aren’t currently logged in).


(PJH) #11

We can leave the intricacies of everyone vs ‘everyone’ until the rest of the diagram is sorted? :smile:

‘everyone’ can simply be a bounding box around the diagram as-is/will-be.

I’m currently more concerned about those who are logged in and have been around longer than 30s…


(Jens Maier) #12

Well… no, we can’t, because there’s no difference to be sorted out… whatever @codinghorror said then either changed or was misunderstood.

The ‘everyone’ group always has id 0 in the groups table. If you set a category to be visible to everyone but only writeable for another group, an entry referencing that group id appears in the category_groups table. As long as this entry exists, guests can see posts in the category, hence guests who are not in the database are included in the group ‘everyone’.

Likeweise, the group_users table, which determines group membership, never contains any records with group id set to 0. Membership in the ‘everyone’ group is implicit and applies to every user – regardless of whether that user has authenticated and is represented by a model in the database, or not.

If you want a group that includes all registered and logged in users, that’s the trust_level_0 group – but I’m not sure right now whether that will also include users who have since been promoted to a higher TL. (Edit, apparently it does.)


(PJH) #13

So you’d favour the first diagram with ‘anonymous’ in (as the diagram currently stands) in the top-middle to right corner, above TL0?


(Jens Maier) #14

No, but the first diagram is just right.

But you can either amend it by adding “(includes guests)” to the label for the ‘everyone’ group or add the set of ‘known users’ inside ‘everyone’ that includes all other groups and represents the users stored in the database… but that set would always be identical to the set of TL0 users, unless the database is in a corrupted state. :wink:


(PJH) #15

Ah - right.