using Content.Shared.Administration; using Content.Shared.Administration.Managers; using Robust.Shared.Player; using Robust.Shared.Toolshed; namespace Content.Server.Administration.Managers { /// /// Manages server administrators and their permission flags. /// public interface IAdminManager : ISharedAdminManager { /// /// Fired when the permissions of an admin on the server changed. /// event Action OnPermsChanged; /// /// Gets all active admins currently on the server. /// /// /// This does not include admins that are de-adminned. /// IEnumerable ActiveAdmins { get; } /// /// Gets all admins currently on the server, even de-adminned ones. /// IEnumerable AllAdmins { get; } /// /// De-admins an admin temporarily so they are effectively a normal player. /// /// /// De-adminned admins are able to re-admin at any time if they so desire. /// void DeAdmin(ICommonSession session); /// /// Re-admins a de-adminned admin. /// void ReAdmin(ICommonSession session); /// /// Make admin hidden from adminwho. /// void Stealth(ICommonSession session); /// /// Unhide admin from adminwho. /// void UnStealth(ICommonSession session); /// /// Re-loads the permissions of an player in case their admin data changed DB-side. /// /// void ReloadAdmin(ICommonSession player); /// /// Reloads admin permissions for all admins with a certain rank. /// /// The database ID of the rank. /// void ReloadAdminsWithRank(int rankId); void Initialize(); void PromoteHost(ICommonSession player); bool TryGetCommandFlags(CommandSpec command, out AdminFlags[]? flags); } }