diff --git a/code/modules/modular_computers/file_system/programs/command/comm.dm b/code/modules/modular_computers/file_system/programs/command/comm.dm index b69ba7bc73..c174ced23b 100644 --- a/code/modules/modular_computers/file_system/programs/command/comm.dm +++ b/code/modules/modular_computers/file_system/programs/command/comm.dm @@ -61,7 +61,7 @@ data["message_line2"] = msg_line2 data["state"] = current_status data["isAI"] = issilicon(usr) - data["authenticated"] = is_autenthicated(user) + data["authenticated"] = get_authentication_level(user) data["current_security_level"] = security_level data["current_security_level_title"] = num2seclevel(security_level) @@ -95,9 +95,12 @@ ui.set_initial_data(data) ui.open() -/datum/nano_module/program/comm/proc/is_autenthicated(var/mob/user) +/datum/nano_module/program/comm/proc/get_authentication_level(var/mob/user) if(program) - return program.can_run(user) + if(program.can_run(user, 0, access_captain)) + return 2 + else + return program.can_run(user) return 1 /datum/nano_module/program/comm/proc/obtain_message_listener() @@ -119,7 +122,7 @@ current_status = text2num(href_list["target"]) if("announce") . = 1 - if(is_autenthicated(user) && !issilicon(usr) && ntn_comm) + if(get_authentication_level(user) == 2 && !issilicon(usr) && ntn_comm) if(user) var/obj/item/weapon/card/id/id_card = user.GetIdCard() crew_announcement.announcer = GetNameAndAssignmentFromId(id_card) @@ -139,7 +142,7 @@ . = 1 if(href_list["target"] == "emagged") if(program) - if(is_autenthicated(user) && program.computer_emagged && !issilicon(usr) && ntn_comm) + if(get_authentication_level(user) == 2 && program.computer_emagged && !issilicon(usr) && ntn_comm) if(centcomm_message_cooldown) to_chat(usr, "Arrays recycling. Please stand by.") SSnanoui.update_uis(src) @@ -154,7 +157,7 @@ spawn(300)//30 second cooldown centcomm_message_cooldown = 0 else if(href_list["target"] == "regular") - if(is_autenthicated(user) && !issilicon(usr) && ntn_comm) + if(get_authentication_level(user) == 2 && !issilicon(usr) && ntn_comm) if(centcomm_message_cooldown) to_chat(usr, "Arrays recycling. Please stand by.") SSnanoui.update_uis(src) @@ -173,7 +176,7 @@ centcomm_message_cooldown = 0 if("shuttle") . = 1 - if(is_autenthicated(user) && ntn_cont) + if(get_authentication_level(user) && ntn_cont) if(href_list["target"] == "call") var/confirm = alert("Are you sure you want to call the shuttle?", name, "No", "Yes") if(confirm == "Yes" && can_still_topic()) @@ -185,7 +188,7 @@ cancel_call_proc(usr) if("setstatus") . = 1 - if(is_autenthicated(user) && ntn_cont) + if(get_authentication_level(user) && ntn_cont) switch(href_list["target"]) if("line1") var/linput = reject_bad_text(sanitize(input("Line 1", "Enter Message Text", msg_line1) as text|null, 40), 40) @@ -203,7 +206,7 @@ post_status(href_list["target"]) if("setalert") . = 1 - if(is_autenthicated(user) && !issilicon(usr) && ntn_cont && ntn_comm) + if(get_authentication_level(user) && !issilicon(usr) && ntn_cont && ntn_comm) var/current_level = text2num(href_list["target"]) var/confirm = alert("Are you sure you want to change alert level to [num2seclevel(current_level)]?", name, "No", "Yes") if(confirm == "Yes" && can_still_topic()) @@ -232,7 +235,7 @@ current_status = STATE_DEFAULT if("viewmessage") . = 1 - if(is_autenthicated(user) && ntn_comm) + if(get_authentication_level(user) && ntn_comm) current_viewing_message_id = text2num(href_list["target"]) for(var/list/m in l.messages) if(m["id"] == current_viewing_message_id) @@ -240,12 +243,12 @@ current_status = STATE_VIEWMESSAGE if("delmessage") . = 1 - if(is_autenthicated(user) && ntn_comm && l != global_message_listener) + if(get_authentication_level(user) && ntn_comm && l != global_message_listener) l.Remove(current_viewing_message) current_status = STATE_MESSAGELIST if("printmessage") . = 1 - if(is_autenthicated(user) && ntn_comm) + if(get_authentication_level(user) && ntn_comm) if(program && program.computer && program.computer.nano_printer) if(!program.computer.nano_printer.print_text(current_viewing_message["contents"],current_viewing_message["title"])) to_chat(usr, "Hardware error: Printer was unable to print the file. It may be out of paper.") diff --git a/nano/templates/mod_communication.tmpl b/nano/templates/mod_communication.tmpl index 0b0750369f..6eeacf869e 100644 --- a/nano/templates/mod_communication.tmpl +++ b/nano/templates/mod_communication.tmpl @@ -1,11 +1,13 @@ {{if data.authenticated}} {{if data.state === 1}} -