Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automated whitelists #19606

Open
Tracked by #23246
Chief-Engineer opened this issue Aug 28, 2023 · 1 comment · May be fixed by #23985
Open
Tracked by #23246

Automated whitelists #19606

Chief-Engineer opened this issue Aug 28, 2023 · 1 comment · May be fixed by #23985
Assignees
Labels
Issue: Feature Request This issue is a feature request. Priority: 1-Urgent GET ON IT STAT

Comments

@Chief-Engineer
Copy link
Contributor

It may be best to include some sort of whitelist refactor with this that makes it so whitelists can be defined with more flexibility. The design I'm sharing in the example is a lot more flexible than it'd need to be to be useful, but would be very nice to have.

  • Servers can be configured to use:
    • Fully manual whitelist
    • Fully automated whitelist
    • Fully automated blacklist
  • In addition, hybrid whitelisting is possible, ideally with evaluation order determined by the server.

Hybrid whitelisting example

Server defines:

  1. Manual blacklist (mBlacklist)
  2. Manual whitelist (priorityWhitelist)
  3. Automatic blacklist (aBlacklist)
  4. Manual whitelist (legacyWhitelist)
  5. Automatic whitelist (aWhitelist)
  6. Server state whitelist (sWhitelist)
  7. Blacklist All (blacklistAll)

The whitelist status will be evaluated in order, where the first matching rule applies. First the server will check if the player is on mBlacklist, then priorityWhitelist, then check for the criteria in aBlacklist, and so on. This specific setup allows the following:

  1. mBlacklist is used to effectively ban people from the whitelisted server.
  2. priorityWhitelist is used to whitelist players who you don't want to be automatically blacklisted. I'm not sure why you'd want this, but it's good for the example.
  3. aBlacklist defines player criteria to match to blacklist. For example: 1 or more medium severity notes in the last 2 weeks.
  4. legacyWhitelist is the manual whitelist previously used by the server, which they'd like to retain.
  5. aWhitelist defines player criteria to match to whitelist. For example: 30 or more hours overall playtime.
  6. sWhitelist defines server criteria to match to whitelist. For example: 20 or less players currently connected.
  7. blacklistAll rejects everyone. This is to catch people who don't match an earlier rule

An example of what wizden would probably use:

  1. Manual blacklist (mrpBanlist)
  2. Automatic blacklist (highSeverityNoteBlacklist: 1 or more high severity notes in the last 30 days)
  3. Automatic blacklist (mediumSeverityNoteBlacklist: 1 or more medium severity notes in the last 14 days)
  4. Automatic blacklist (lowSeverityNoteBlacklist: 3 or more low severity notes in the last 14 days)
  5. Manual whitelist (legacyWhitelist)
  6. Automatic whitelist (aWhitelist: 20 or more overall hours playtime)
  7. Server state whitelist (sWhitelist: 15 or less players currently connected)
  8. Blacklist all (blacklistAll)

This sort of hybrid whitelisting support would intrinsically support simple whitelists:

  1. Manual whitelist (mWhitelist)
  2. Blacklist all (blacklistAll)

Player criteria

Criteria usable by player based automatic whitelists/blacklists.

  • Playtime
  • X in period (filterable by severity, filterable by secret/hidden status) where X is a selectable combination of:
    • Bans (filterable by unbanned status)
    • Notes
    • Role bans (filterable by unbanned status)
  • Time since first connection

Server state criteria

Criteria usable by automatic whitelists/blacklists that depend on the state of the server rather than on player info.

  • Connected players
@Chief-Engineer Chief-Engineer added Priority: 3-Not Required This doesn't necessarily need to be fixed any time soon, but is still an issue. Issue: Feature Request This issue is a feature request. labels Aug 28, 2023
@Simyon264
Copy link
Contributor

I am currently working on this issue.

@Simyon264 Simyon264 linked a pull request Jan 12, 2024 that will close this issue
1 task
@ShadowCommander ShadowCommander added Priority: 1-Urgent GET ON IT STAT and removed Priority: 3-Not Required This doesn't necessarily need to be fixed any time soon, but is still an issue. labels Mar 19, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Issue: Feature Request This issue is a feature request. Priority: 1-Urgent GET ON IT STAT
Projects
Status: 🔖 Defined
Development

Successfully merging a pull request may close this issue.

3 participants