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