Skip to content

Commit

Permalink
Project ARES: Admin Console (#4182)
Browse files Browse the repository at this point in the history
# About the pull request
Adds a remote access console for Admins to see what the ARES Interface
contains. Also allows for direct response to 1:1 messages.
<!-- Remove this text and explain what the purpose of your PR is.

Mention if you have tested your changes. If you changed a map, make sure
you used the mapmerge tool.
If this is an Issue Correction, you can type "Fixes Issue #169420" to
link the PR to the corresponding Issue number #169420.

Remember: something that is self-evident to you might not be to others.
Explain your rationale fully, even if you feel it goes without saying.
-->

# Explain why it's good for the game
Makes things much easier for staff when dealing with anything related to
the ARES Interface.
# Testing Photographs and Procedure
<details>
<summary>Screenshots & Videos</summary>

Put screenshots and videos here with an empty line between the
screenshots and the `<details>` tags.

</details>


# Changelog
:cl:
admin: Adds a remote admin ARES Interface so staff can see the interface
remotely.
admin: Staff can now approve and revoke ARES Access tickets via remote
interface if there are no Working Joes.
/:cl:

---------

Co-authored-by: Drathek <[email protected]>
  • Loading branch information
realforest2001 and Drulikar authored Mar 7, 2024
1 parent ab9e127 commit 7f60873
Show file tree
Hide file tree
Showing 9 changed files with 2,530 additions and 60 deletions.
29 changes: 18 additions & 11 deletions code/__DEFINES/ARES.dm
Original file line number Diff line number Diff line change
@@ -1,21 +1,22 @@
#define ARES_ACCESS_LOGOUT 0
/// Generic access for 1:1 conversations with ARES and unrestricted commands.
#define ARES_ACCESS_BASIC 0
#define ARES_ACCESS_BASIC 1
/// Secure Access, can read ARES Announcements and Bioscans.
#define ARES_ACCESS_COMMAND 1
#define ARES_ACCESS_JOE 2
#define ARES_ACCESS_COMMAND 2
#define ARES_ACCESS_JOE 3
/// CL, can read Apollo Log and also Delete Announcements.
#define ARES_ACCESS_CORPORATE 3
#define ARES_ACCESS_CORPORATE 4
/// Senior Command, can Delete Bioscans.
#define ARES_ACCESS_SENIOR 4
#define ARES_ACCESS_SENIOR 5
/// Synth, CE & Commanding Officer, can read the access log.
#define ARES_ACCESS_CE 5
#define ARES_ACCESS_SYNTH 6
#define ARES_ACCESS_CO 7
#define ARES_ACCESS_CE 6
#define ARES_ACCESS_SYNTH 7
#define ARES_ACCESS_CO 8
/// High Command, can read the deletion log.
#define ARES_ACCESS_HIGH 8
#define ARES_ACCESS_WY_COMMAND 9
#define ARES_ACCESS_HIGH 9
#define ARES_ACCESS_WY_COMMAND 10
/// Debugging. Allows me to view everything without using a high command rank. Unlikely to stay in a full merge.
#define ARES_ACCESS_DEBUG 10
#define ARES_ACCESS_DEBUG 11

#define ARES_RECORD_ANNOUNCE "Announcement Record"
#define ARES_RECORD_ANTIAIR "AntiAir Control Log"
Expand Down Expand Up @@ -67,6 +68,12 @@
#define TICKET_OPEN "OPEN"
#define TICKET_CLOSED "CLOSED"

// Priority status changes.
/// Upgraded to Priority
#define TICKET_PRIORITY "priority"
/// Downgraded from Priority
#define TICKET_NON_PRIORITY "non-priority"

/// Cooldowns
#define COOLDOWN_ARES_SENSOR 60 SECONDS
#define COOLDOWN_ARES_ACCESS_CONTROL 20 SECONDS
10 changes: 8 additions & 2 deletions code/game/machinery/ARES/ARES_interface.dm
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,10 @@
var/current_menu = "login"
var/last_menu = ""

var/authentication = ARES_ACCESS_BASIC
var/authentication = ARES_ACCESS_LOGOUT

/// The last person to login.
var/last_login
var/last_login = "No User"
/// The person pretending to be last_login
var/sudo_holder

Expand Down Expand Up @@ -275,6 +275,8 @@
last_login = sudo_holder
sudo_holder = null
datacore.interface_access_list += "[last_login] logged out at [worldtime2text()]."
last_login = "No User"
authentication = ARES_ACCESS_LOGOUT

if("home")
last_menu = current_menu
Expand Down Expand Up @@ -319,6 +321,8 @@
// -- Delete Button -- //
if("delete_record")
var/datum/ares_record/record = locate(params["record"])
if(!istype(record))
return FALSE
if(record.record_name == ARES_RECORD_DELETED)
return FALSE
var/datum/ares_record/deletion/new_delete = new
Expand Down Expand Up @@ -372,6 +376,8 @@

if("read_record")
var/datum/ares_record/deleted_talk/conversation = locate(params["record"])
if(!istype(conversation))
return FALSE
deleted_1to1 = conversation.conversation
last_menu = current_menu
current_menu = "read_deleted"
Expand Down
Loading

0 comments on commit 7f60873

Please sign in to comment.