diff --git a/src/common/Permissions.tsx b/src/common/Permissions.tsx index ad2f6c3658d..354cfbd4fc6 100644 --- a/src/common/Permissions.tsx +++ b/src/common/Permissions.tsx @@ -12,6 +12,8 @@ export const PERMISSION_SUBMIT_PATIENT_QUESTIONNAIRE = export const PERMISSION_CREATE_ENCOUNTER = "can_create_encounter"; export const PERMISSION_LIST_ENCOUNTERS = "can_list_encounter"; export const PERMISSION_WRITE_ENCOUNTER = "can_write_encounter"; +export const PERMISSION_WRITE_ENCOUNTER_CLINICAL_DATA = + "can_write_encounter_clinical_data"; export const PERMISSION_READ_ENCOUNTER = "can_read_encounter"; export const PERMISSION_READ_ENCOUNTER_CLINICAL_DATA = "can_read_encounter_clinical_data"; @@ -138,6 +140,8 @@ export interface Permissions { canListEncounters: boolean; /** Permission slug: "can_write_encounter" */ canWriteEncounter: boolean; + /** Permission slug: "can_write_encounter_clinical_data" */ + canWriteEncounterClinicalData: boolean; /** Permission slug: "can_read_encounter" */ canReadEncounter: boolean; /** Permission slug: "can_read_encounter_clinical_data" */ @@ -310,6 +314,10 @@ export function getPermissions( canCreateEncounter: hasPermission(PERMISSION_CREATE_ENCOUNTER, permissions), canListEncounters: hasPermission(PERMISSION_LIST_ENCOUNTERS, permissions), canWriteEncounter: hasPermission(PERMISSION_WRITE_ENCOUNTER, permissions), + canWriteEncounterClinicalData: hasPermission( + PERMISSION_WRITE_ENCOUNTER_CLINICAL_DATA, + permissions, + ), canReadEncounter: hasPermission(PERMISSION_READ_ENCOUNTER, permissions), canReadEncounterClinicalData: hasPermission( PERMISSION_READ_ENCOUNTER_CLINICAL_DATA, diff --git a/src/components/Notes/NoteManager.tsx b/src/components/Notes/NoteManager.tsx index 1ba249b0203..ed2fd15b877 100644 --- a/src/components/Notes/NoteManager.tsx +++ b/src/components/Notes/NoteManager.tsx @@ -452,6 +452,9 @@ export function NoteManager({ }, [messagesData]); const handleCreateThread = (title: string) => { + if (!canWrite) { + return; + } if (title.trim()) { if ( threadsData?.results.some((thread) => thread.title === title.trim()) @@ -470,7 +473,10 @@ export function NoteManager({ e.preventDefault(); e.stopPropagation(); const canSend = - newMessage.trim() && selectedThread && !createMessageMutation.isPending; + canWrite && + newMessage.trim() && + selectedThread && + !createMessageMutation.isPending; if (canSend) { createMessageMutation.mutate({ message: newMessage.trim() }); } @@ -551,18 +557,20 @@ export function NoteManager({ {t("notes__all_discussions")} - + {canWrite && ( + + )} @@ -623,7 +631,9 @@ export function NoteManager({ ) : (
{t("notes__welcome_description")}
- + {canWrite && ( + + )} )} @@ -769,13 +780,15 @@ export function NoteManager({ canWrite={canWrite} /> -