Usergroup promotions don't change primary group?

The issue is, zero posters have limited permissions including the fact that their posts must be moderated (technically the users first post).

With this system, people would have have a maximum five hour leeway, in which their first post won't need to be moderated.

I have the cron set to five minutes :)

See where the issue is?
I'm not sure... but I think the post doesn't count until it IS moderated and then it will show as an actual post. Brogan or someone more familiar with it can chime in here. :D
 
The registered group should be the one with limited permissions and moderation. You then use usergroup promotions to increase their permissions automatically (or you manually promote, whichever you prefer) ie you add them to additional user groups. Permissions are cumulative. You also have a promotion to a zero poster group as per my previous post which you can then use to email zero posters.
 
I could, but the effort ;-)

It's really not much. :)

For example, extend XenForo_DataWriter_User::_preSave() by writing something like (untested) this:

PHP:
protected function _preSave()
{
// Skip if it isn't a new insert or has errors.
if ($this->isUpdate() ||$this->hasErrors()){
return parent::_preSave();
}
 
if ($this->get('secondary_group_ids')) {
$existingGroups = array_fill_keys(explode(',', $this->get('secondary_group_ids')), true);
} else {
$existingGroups = array();
}
 
$existingGroups['YOURZEROPOSTUSERGROUPID'] = true;
$this->set('secondary_group_ids', implode(',', array_keys($existingGroups)));
 
parent::_preSave();
}
 
The registered group should be the one with limited permissions and moderation. You then use usergroup promotions to increase their permissions automatically (or you manually promote, whichever you prefer) ie you add them to additional user groups. Permissions are cumulative. You also have a promotion to a zero poster group as per my previous post which you can then use to email zero posters.

But then everyone will have the zero posters group as their primary!
 
But then everyone will have the zero posters group as their primary!
Depends on how you set it up. If you follow Martok's recommendation, the primary group will serve as a common denominator. You'd then add anyone with at least one post to a new secondary usergroup, let's call it "Non-Zero Poster Group".
 
But then everyone will have the zero posters group as their primary!
Incorrect. everyone will have the Registered group as their primary. Those with zero posts will additionally have "zero posters" group as a secondary. Anyone who then makes a post will no longer make the promotion criteria (see my previous post) for the "zero posters" group and they will automatically be removed from the group. As you then want users to have more privileges, you then add them to more secondary groups to increase their permissions, either doing this manually or through automatic promotions.

*Edit* you can easily search for users in a secondary group in the admin panel, so you should then be able to identify all those in the zero posters group.


Forget the whole concept of primary group (I don't quite understand why there's a primary group and secondary group tbh, it'd be a lot clearer if there were just groups with no distinguishing between them). Just work on the basis that the primary group always is Registered group and that secondary groups are used to grant additional permissions, mark users as zero posters, etc.
 
Incorrect. everyone will have the Registered group as their primary. Those with zero posts will additionally have "zero posters" group as a secondary. Anyone who then makes a post will no longer make the promotion criteria (see my previous post) for the "zero posters" group and they will automatically be removed from the group. As you then want users to have more privileges, you then add them to more secondary groups to increase their permissions, either doing this manually or through automatic promotions.

*Edit* you can easily search for users in a secondary group in the admin panel, so you should then be able to identify all those in the zero posters group.


Forget the whole concept of primary group (I don't quite understand why there's a primary group and secondary group tbh, it'd be a lot clearer if there were just groups with no distinguishing between them). Just work on the basis that the primary group always is Registered group and that secondary groups are used to grant additional permissions, mark users as zero posters, etc.

That would be fine, but there would be a maximum five minute leeway, as I said, that would allow people without any posts to act as if they did - which means their first post wouldn't have to be approved.

Although there would be a small chance of this being possible (people have to approve their emails first), it is still possible :/
 
Not if "Registered" had no privs to post. ;)

Ideally you want to think about the primary Registered usergroup as having the absolute lowest possible set of permissions of any user on your forums; then use the promotion system along with additional usergroups to "build" the various layers of privileges bestowed from their post count/length of membership/purchased upgrades etc. (y)

One niggling flaw of the current system is that if everyone is in the registered usergroup, it's difficult to select the lowest privs group unless you put them into a secondary group.

In your case you could give Registered no privileges beyond viewing and create a usergroup "Zero Posters" that people are promoted to upon registration using the promotion critera (User is a member of selected [Registered] usergroup). Yes, there is a slight delay for the promotion CRON to run, but at least with view-only privs for the registered group they won't be able to do anything whilst waiting to be put in the zero posters group.

Once the cron runs they'll be popped into the Zero Posters group and you'll be able to select them as a group whenever you need to.

Once they've posted they can be elavated to - Posted (or whatever you call it) - usergroup using the 'x' posts = 1 criteria. :D

Cheers,
Shaun :D
 
Not if "Registered" had no privs to post. ;)

Ideally you want to think about the primary Registered usergroup as having the absolute lowest possible set of permissions of any user on your forums; then use the promotion system along with additional usergroups to "build" the various layers of privileges bestorwed from their post count/length of membership/purchased upgrades etc. (y)

One niggling flaw of the current system is that if everyone is in the registered usergroup, it's difficult to select the lowest privs group unless you put them into a secondary group.

In your case you could give Registered no privileges beyond viewing and create a usergroup "Zero Posters" that people are promoted to upon registration using the promotion critera (User is a member of selected [Registered] usergroup). Yes, there is a slight delay for the promotion CRON to run, but at least with view-only privs for the registered group they won't be able to do anything whilst waiting to be put in the zero posters group.

Once the cron runs they'll be popped into the Zero Posters group and you'll be able to select them as a group whenever you need to.

Once they've posted they can be elavated to - Posted (or whatever you call it) - usergroup using the 'x' posts = 1 criteria. :D

Cheers,
Shaun :D

That sounds like a PERFECT solution! Thanks ;)

Liam
 
Does anyone know why on earth there is a primary usergroup if everyone needs to be in it?

Well I can see a point to it - you've got to have somewhere for new accounts to go, so it might as well be the Registered group by default. (y)

It also avoids the scenario where the admin forgets or neglects to set a default group and new users end up not being able to use the forum at all!!! :eek:
 
Currently I have it set up as follows in my vb big board. How would I translate this to XF?

A ladder of primary usergroups with usergroup promotions based on reputation point:
  1. banned (if the user goes below X points)
  2. lowest group
  3. demoted group
  4. entry group
  5. promoted group
  6. ranking group
  7. highest group
Then there are primary usergroups for staff groups:
  1. junior moderator
  2. moderator
  3. super moderator
  4. administrator
  5. super administrator
Off course there also are these primary usergroups:
  1. bounced email accounts
  2. unapproved
Then I have secondary groups that give each of the above groups additional functionality and access. For example through subscriptions. Or restrictions like miserable members.
  1. subscription 1
  2. subscription 2
  3. miserable members
 
Not if "Registered" had no privs to post. ;)

Ideally you want to think about the primary Registered usergroup as having the absolute lowest possible set of permissions of any user on your forums; then use the promotion system along with additional usergroups to "build" the various layers of privileges bestowed from their post count/length of membership/purchased upgrades etc. (y)

One niggling flaw of the current system is that if everyone is in the registered usergroup, it's difficult to select the lowest privs group unless you put them into a secondary group.

In your case you could give Registered no privileges beyond viewing and create a usergroup "Zero Posters" that people are promoted to upon registration using the promotion critera (User is a member of selected [Registered] usergroup). Yes, there is a slight delay for the promotion CRON to run, but at least with view-only privs for the registered group they won't be able to do anything whilst waiting to be put in the zero posters group.

Once the cron runs they'll be popped into the Zero Posters group and you'll be able to select them as a group whenever you need to.

Once they've posted they can be elavated to - Posted (or whatever you call it) - usergroup using the 'x' posts = 1 criteria. :D

Cheers,
Shaun :D
This is what I was saying (except the bit about the Registered group, which isn't the best solution IMO).


Regarding the Registered users group, you set the permission Follow message moderation rules to Not Set (No). This means that the Registered group have their posts moderated. You then have a secondary group (let's call it Posted) where you set the permission Follow message moderation rules to Allow. The Allow will override the Not Set (No). Once a user is promoted to the Posted group (which can be done manually or through an automatic promotion) they will then be able to post without moderation (even though they are still in the Registered group). So this means that you don't have to set the Registered group to view only, nor worry about a cron job having to run before moderation permissions are imposed.

You might want to read about permissions in the Manual and in Jake Bunce's very useful Understanding Permissions guide.
 
Regarding the Registered users group, you set the permission Follow message moderation rules to Not Set (No). This means that the Registered group have their posts moderated. You then have a secondary group (let's call it Posted) where you set the permission Follow message moderation rules to Allow. The Allow will override the Not Set (No). Once a user is promoted to the Posted group (which can be done manually or through an automatic promotion) they will then be able to post without moderation (even though they are still in the Registered group). So this means that you don't have to set the Registered group to view only, nor worry about a cron job having to run before moderation permissions are imposed.

I agree, but in order to select people who are only in the Zero Poster group - they must (currently) be in a secondary group.

This is the flaw I mentioned - when everyone is in the Registered group there is nothing to distinquish them from each other so you can't selectively group them for any action in the ACP - in order to select only the Zero posters, for example, you must have them in a secondard group - hence my suggestion. ;)

Hopefully the new selection options in 1.2 will negate this. :D
 
I agree, but in order to select people who are only in the Zero Poster group - they must (currently) be in a secondary group.

This is the flaw I mentioned - when everyone is in the Registered group there is nothing to distinquish them from each other so you can't selectively group them for any action in the ACP - in order to select only the Zero posters, for example, you must have them in a secondard group - hence my suggestion. ;)

Hopefully the new selection options in 1.2 will negate this. :D
I think we are agreeing here. I'm saying the Registered group is moderated and new users are automatically promoted to a secondary zero poster group, based on the criteria in my previous post. The zero poster group is purely to identify those with no posts. As soon as they make a post they'll automatically be removed from the zero posters group. However, their posts will be moderated as the Registered group is set to moderated as per my last post. They then post unmoderated when they are added to the Posted group.
 
Top Bottom