Please upgrade here. These earlier versions are no longer being updated and have security issues.
HackerOne users: Testing against this community violates our program's Terms of Service and will result in your bounty being denied.

Temporary ban plugin?

jackjitsujackjitsu ✭✭
edited October 2013 in Vanilla 2.0 - 2.8
  1. Does anyone know if such a plugin exists?

  2. If not, does the architecture allow for this to be developed as a plugin?

  3. Is there an official place to suggest a plugin and get community buy in/interest?

  4. Does vanilla have a different mechanism to handle this im not aware of?

As a moderator, I find the ability to temp ban pretty damn important

«1

Comments

  • peregrineperegrine MVP
    edited October 2013

    what do you mean? you want to set a time limit, because you don't want to unban from dashboard.


    answers:

    1. I am not aware of a temporary ban plugin
    2. yes
    3. just write a discussion and how much you want to pledge.

      I think someone wanted a plugin like that, but no on offered any pledges for development.
      once you post an amount you will be willing to pledge - developers will pounce on it and vie for the development of plugin.
      often times people ask for something but can't back it up with a pledge - so it goes into the wastebin of some developers who would be willing to do it (but just not for free).

      As you will note it is difficult to get more than two or three people to pledge anything, even if they want something desperately, and the others who are mildly interested just wait till the others have pledged and reap the benefits of a free plugin.

      you could run a cronscript.

    4. that checks the insert date against the current date in the ban table - gets the user id - removes the record and updates the user table by removing the ban flag in the ban column of the user table.

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • hgtonighthgtonight ∞ · New Moderator

    The banning action in 2.1+ is completely reversible as long as you don't also delete a users content. I know there is a warning system in place on the hosted version, so perhaps this is a good reason to go hosted.

    From what I understand, mods/admins can give a warning with a specified level, length, reason, and note to other admins. The level determines if someone is outright banned, put in a temporary restricted role, or somewhere in between. I would also assume that enough cumulative low levels could automatically jail/ban you.

    The biggest issue is there is no real good way to set up a cron job via php that is reliable on most webhosts.

    This is a really interesting idea that I have no use for :(. I only develop large projects when my community wants them. I am happy to help with dev time and offering a small pledge.

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • peregrineperegrine MVP
    edited October 2013

    I'm not interested in developing either

    but it doesn't seem "overly complicated" to have a manual dashboard entry - unban based on insert date or an addition to ban table that has a days to ban entry and tests the days to ban versus insert date, days to ban and current date.

    I may not provide the completed solution you might desire, but I do try to provide honest suggestions to help you solve your issue.

  • businessdadbusinessdad Stealth contributor MVP

    @hgtonight said:
    The biggest issue is there is no real good way to set up a cron job via php that is reliable on most webhosts.

    Apart that you may not necessarily need cron for this, but the Cron plugin is not strictly host-dependent. As long as you can call the cron URL (after securing it properly), Vanilla Cron will run. Even cheap hosts, such as BlueHost and HostGator, allow to run cron tasks. In worst case, one can run a scheduled task from his own computer. I don't see it as a huge limitation, unless one really wants to go with an ultra-hyper-cheap provider. :)

  • hbfhbf wiki guy? MVP

    I don't think a cron is needed for this. Just hook into the login request from the user, if current time is after the ban expires, remove the ban and proceed with the login.

    It's a category 2, or maybe 3 depending on the ui aspects and if the hooks needed are already available.

    For those unfamiliar with the category system, see my signature.

  • vrijvlindervrijvlinder Papillon-Sauvage MVP

    How about a temporary restricted Role, you would create a new Role which has limited permissions and can't post. Then give that Role to the Member instead of Member, then you can reverse the procedure. Back to member.

  • hbfhbf wiki guy? MVP

    you can ban/un-ban users without any new roles or permissions.

  • vrijvlindervrijvlinder Papillon-Sauvage MVP

    Ah! so the answer to OP 1.Does anyone know if such a plugin exists?

    You don't need one ...it turns out.

  • hbfhbf wiki guy? MVP
    edited October 2013

    you dont need a plugin to do it manually. but there is no way to set a time based limit. in the default permission model a mod/admin needs to modify the user's account to ban or unban them manually.

    what the op was asking about is if they could place a "temporary" and i take that to mean a "time/duration based" ban on a user say "i ban you for 2 days" and instead of the mod/admin remembering 2 days later to unban the person, the system/plugin would automatically lift the ban at the prescribed time. this type of ban management does not exist in vanilla today that i am aware of. but it could be created... see signature for more information.

  • hbfhbf wiki guy? MVP

    oh, and that type of ban management does exist OOTB in many other software packages, including mediawiki and vBulletin to name 2 off the top of my head

  • vrijvlindervrijvlinder Papillon-Sauvage MVP

    I see, sort of like a ban on a timer and it automatically ends when the time is consumed.

    There is a timer on invites , after a certain time it is no longer valid right? something like that... maybe the same process can be applied but to the banned Role. So it does not affect the other banned people.

    That is what I meant by creating a temp role. Because you don't want to use the same banning procedure .

    The hell ban plugin sound hella good though

  • hbfhbf wiki guy? MVP

    you wouldn't need to create a new role. just establish a table that lists the temporary bans and their expiration. when you encounter a banned user during login, check the exipiry table, if the user is listed and the expiry has passed, then remove the ban and the expiry table entry and finish logging the user in.

  • phreakphreak Vanilla*APP (White Label) & Vanilla*Skins Shop MVP
    edited October 2013

    Good discussion. It could make sense to take it a small step further and create a plugin where roles can be timed for every user. From user of the month, mod for a certain time, banning for two weeks, role for a payment or any other playfull routines can be accomplished.

    • VanillaAPP | iOS & Android App for Vanilla - White label app for Vanilla Forums OS
    • VanillaSkins | Plugins, Themes, Graphics and Custom Development for Vanilla
  • My premium roles plugin add an removes a role based on period, it doesn't use a cron, though you could.

    grep is your friend.

  • hbfhbf wiki guy? MVP

    @x00 said:
    My premium roles plugin add an removes a role based on period, it doesn't use a cron, though you could.

    ban is not a regular role assignment, so i dont know if your plugin handles that case. but it certainly handles all of the other cases phreak mentioned.

  • x00x00 MVP
    edited October 2013

    @hbf said:
    ban is not a regular role assignment, so i dont know if your plugin handles that case. but it certainly handles all of the other cases phreak mentioned.

    There is no reason why it couldn't be but whatever, you can use the same principles, just useBanModel::SaveUser() or update the column.

    No need to change their details.

    grep is your friend.

  • jackjitsujackjitsu ✭✭
    edited October 2013

    Just realized I could manually do this using the PurchasePremiumRoles and Spoof plugins.

    Step 1) Create a role with all/as-many perms removed as possible

    Step 2) Add a marketplace option that costs 0 Karma which purchases you the "ban role"

    Step 3) Use Spoof plugin to become the user and purchase the "ban role" which has a timeout.

    The only missing part is the user would not get a message about the temp ban.

    In any case, the software to do this has already been effectively written by these previous plugins.

  • x00x00 MVP
    edited October 2013

    @jackjitsu said:
    Just realized I could manually do this using the PurchasePremiumRoles and Spoof plugins.

    Step 1) Create a role with all/as-many perms removed as possible

    Step 2) Add a marketplace option that costs 0 Karma which purchases you the "ban role"

    Step 3) Use Spoof plugin to become the user and purchase the "ban role" which has a timeout.

    The only missing part is the user would not get a message about the temp ban.

    In any case, the software to do this has already been effectively written by these previous plugins.

    This is a fudge. Roles cascade in vanilla, they are not mutually exclusive. I haven’t tested whether there is a special case for Banned. PurchasePremiumRoles currently saves all roles.

    If something is worth doing it is worth doing properly. It is simpler to add a value to Banned column than stash all their roles somewhere and then apply a banned role, then when reinstating them apply their stashed roles.

    grep is your friend.

  • hgtonighthgtonight ∞ · New Moderator

    In my mind Banning, as in the Vanilla action, is much to extreme for it to be of any constructive use. It acts like a permaban in most forums. Typical temporary bans for forums still let you log in and read with your normal account which at least gives the impression they (the community that banned you) will have you back once your time is up.

    It also doesn't prevent you from participating in the private parts of the community (PMs, tracking reading, managing drafts, etc.).

    Just some thoughts.

    Search first

    Check out the Documentation! We are always looking for new content and pull requests.

    Click on insightful, awesome, and funny reactions to thank community volunteers for their valuable posts.

  • whu606whu606 I'm not a SuperHero; I just like wearing tights... MVP

    I guess it depends on how often you need to give bans.

    Luckily, it's very rare on my forum, so when we have had to, we just change their status to Guest for the required time.

Sign In or Register to comment.