Files
wwdpublic/Content.Shared/Administration/AdminFlags.cs
SimpleStation14 e6779b650a Mirror: Add Stealthmins (#360)
## Mirror of PR #26263: [Add
stealthmins](https://github.com/space-wizards/space-station-14/pull/26263)
from <img src="https://avatars.githubusercontent.com/u/10567778?v=4"
alt="space-wizards" width="22"/>
[space-wizards](https://github.com/space-wizards)/[space-station-14](https://github.com/space-wizards/space-station-14)

###### `dca0c6694bce56fcf962feab2b59ad4a849f4533`

PR opened by <img
src="https://avatars.githubusercontent.com/u/32041239?v=4"
width="16"/><a href="https://github.com/nikthechampiongr">
nikthechampiongr</a> at 2024-03-19 16:14:22 UTC

---

PR changed 11 files with 197 additions and 10 deletions.

The PR had the following labels:
- Status: Needs Review


---

<details open="true"><summary><h1>Original Body</h1></summary>

> <!-- Please read these guidelines before opening your PR:
https://docs.spacestation14.io/en/getting-started/pr-guideline -->
> <!-- The text between the arrows are comments - they will not be
visible on your PR. -->
> 
> resolve #26013 
> 
> ## About the PR
> <!-- What did you change in this PR? -->
> This pr implements stealthmins as laid out in issue #26013. 
> 
> There is now the Stealth permission flag. This allows admins to use
the stealthmin command and to see other stealthmins.
> 
> When stealthmin is toggled, the admin will not show up in adminwho
except for other admins with the Stealth permission.
> 
> The stealthmin command sends fake de-admin/re-admin messages to admins
without the Stealth flag.
> 
> stealthmin persists in the same way deadmin does(it persists for the
lifetime of the server).
> 
> Admin login/logout messages are suppressed for stealthmins except for
other admins with the Stealth flag.
> 
> It is still possible possible to find stealthed admins using toolshed
commands or logs. This is in line with the requirements of the issue,
and I don't want to start clobbering functionality of logs and toolshed.
> 
> ## Why / Balance
> 
> See #26013 
> 
> ## Technical details
> <!-- If this is a code change, summarize at high level how your new
code works. This makes it easier to review. -->
> 
> Stealth flag now exist for AdminFlags. 
> 
> An admin's stealth status is saved in their admin registration and in
ContentData.
> 
> SendAdminAnnouncement now takes a whitelist flag and blacklist flag
(This will work with multiple flags). This is necessary to suppress
admin announcements where necessary. Blacklist takes priority over
whitelist.
> 
> ## Media
> <!-- 
> PRs which make ingame changes (adding clothing, items, new features,
etc) are required to have media attached that showcase the changes.
> Small fixes/refactors are exempt.
> Any media may be used in SS14 progress reports, with clear credit
given.
> 
> If you're unsure whether your PR will require media, ask a maintainer.
> 
> Check the box below to confirm that you have in fact seen this (put an
X in the brackets, like [X]):
> -->
> 
>
https://github.com/space-wizards/space-station-14/assets/32041239/98ec48c3-170e-406a-b177-07003ff7d59f
> 
> 
> - [x] I have added screenshots/videos to this PR showcasing its
changes ingame, **or** this PR does not require an ingame showcase
> 
> **Changelog**
> <!--
> Make players aware of new features and changes that could affect how
they play the game by adding a Changelog entry. Please read the
Changelog guidelines located at:
https://docs.spacestation14.io/en/getting-started/pr-guideline#changelog
> -->
> 
> <!--
> Make sure to take this Changelog template out of the comment block in
order for it to show up.
> 🆑
> - add: Added fun!
> - remove: Removed fun!
> - tweak: Changed fun!
> - fix: Fixed fun!
> -->
> 
> 🆑
> ADMIN:
> - add: The stealthmin command has been added. Admins with the Stealth
permission can now hide themselves from adminwho except for other admins
with that permission.


</details>

---------

Signed-off-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
Co-authored-by: SimpleStation14 <Unknown>
Co-authored-by: VMSolidus <evilexecutive@gmail.com>
Co-authored-by: DEATHB4DEFEAT <77995199+DEATHB4DEFEAT@users.noreply.github.com>
2024-07-11 18:09:39 -07:00

114 lines
2.8 KiB
C#

namespace Content.Shared.Administration
{
/// <summary>
/// Permissions that admins can have.
/// </summary>
[Flags]
public enum AdminFlags : uint
{
None = 0,
/// <summary>
/// Basic admin verbs.
/// </summary>
Admin = 1 << 0,
/// <summary>
/// Ability to ban people.
/// </summary>
Ban = 1 << 1,
/// <summary>
/// Debug commands for coders.
/// </summary>
Debug = 1 << 2,
/// <summary>
/// !!FUN!!
/// This is stuff that trial administrators shouldn't quite have access to yet, e.g. for running events.
/// </summary>
Fun = 1 << 3,
/// <summary>
/// Ability to edit permissions for other administrators.
/// </summary>
Permissions = 1 << 4,
/// <summary>
/// Ability to control the server like restart it or change the round type.
/// </summary>
Server = 1 << 5,
/// <summary>
/// Ability to spawn stuff in.
/// </summary>
Spawn = 1 << 6,
/// <summary>
/// Ability to use VV.
/// </summary>
VarEdit = 1 << 7,
/// <summary>
/// Large mapping operations.
/// </summary>
Mapping = 1 << 8,
/// <summary>
/// Makes you british.
/// </summary>
//Piss = 1 << 9,
/// <summary>
/// Lets you view admin logs.
/// </summary>
Logs = 1 << 9,
/// <summary>
/// Lets you modify the round (forcemap, loadgamemap, etc)
/// </summary>
Round = 1 << 10,
/// <summary>
/// Lets you use BQL queries.
/// </summary>
Query = 1 << 11,
/// <summary>
/// Lets you use the admin help system.
/// </summary>
Adminhelp = 1 << 12,
/// <summary>
/// Lets you view admin notes.
/// </summary>
ViewNotes = 1 << 13,
/// <summary>
/// Lets you create, edit and delete admin notes.
/// </summary>
EditNotes = 1 << 14,
/// <summary>
/// Lets you Massban, on SS14.Admin
/// </summary>
MassBan = 1 << 15,
/// <summary>
/// Allows you to remain hidden from adminwho except to other admins with this flag.
/// </summary>
Stealth = 1 << 16,
/// <summary>
/// DeltaV - The ability to whitelist people. Either this permission or +BAN is required for remove.
/// </summary>
Whitelist = 1 << 20,
/// <summary>
/// Dangerous host permissions like scsi.
/// </summary>
Host = 1u << 31,
}
}