diff --git a/code/game/jobs/jobs.dm b/code/game/jobs/jobs.dm
index 35026659dd2..3781ff33d78 100644
--- a/code/game/jobs/jobs.dm
+++ b/code/game/jobs/jobs.dm
@@ -94,12 +94,12 @@ var/list/cargo_positions = list(
var/list/civilian_positions = list(
"Head of Personnel",
+ "Internal Affairs Agent",
"Bartender",
"Gardener",
"Chef",
"Janitor",
"Librarian",
- "Lawyer",
"Chaplain",
"Assistant"
)
diff --git a/code/modules/modular_computers/file_system/programs/card.dm b/code/modules/modular_computers/file_system/programs/card.dm
index 81055e6fd28..c1a13e040a2 100644
--- a/code/modules/modular_computers/file_system/programs/card.dm
+++ b/code/modules/modular_computers/file_system/programs/card.dm
@@ -138,8 +138,11 @@
Blood Type: [id_card.blood_type]
Access:
"}
+
+ var/known_access_rights = get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM)
for(var/A in id_card.access)
- contents += " [get_access_desc(A)]"
+ if(A in known_access_rights)
+ contents += " [get_access_desc(A)]"
if(!computer.nano_printer.print_text(contents,"access report"))
usr << "Hardware error: Printer was unable to print the file. It may be out of paper."
@@ -162,7 +165,7 @@
if("terminate")
if(computer && can_run(user, 1))
id_card.assignment = "Terminated"
- id_card.access = list()
+ remove_nt_access(id_card)
callHook("terminate_employee", list(id_card))
if("edit")
if(computer && can_run(user, 1))
@@ -200,7 +203,8 @@
access = jobdatum.get_access()
- id_card.access = access
+ remove_nt_access(id_card)
+ apply_access(id_card, access)
id_card.assignment = t1
id_card.rank = t1
@@ -209,7 +213,7 @@
if(href_list["allowed"] && computer && can_run(user, 1))
var/access_type = text2num(href_list["access_target"])
var/access_allowed = text2num(href_list["allowed"])
- if(access_type in (get_all_centcom_access() + get_all_station_access()))
+ if(access_type in get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM))
id_card.access -= access_type
if(!access_allowed)
id_card.access += access_type
@@ -218,3 +222,9 @@
nanomanager.update_uis(NM)
return 1
+
+/datum/computer_file/program/card_mod/proc/remove_nt_access(var/obj/item/weapon/card/id/id_card)
+ id_card.access -= get_access_ids(ACCESS_TYPE_STATION|ACCESS_TYPE_CENTCOM)
+
+/datum/computer_file/program/card_mod/proc/apply_access(var/obj/item/weapon/card/id/id_card, var/list/accesses)
+ id_card.access |= accesses