Skip to content

Commit f354728

Browse files
authored
(fix) LIME2-623 Update required privilege to utilize useHasAccess hook (#35)
* (fix) LIME2-623 Update required privilege endpoint * refactors to customHasRequiredPrivilege to utilize useHasAccess hook
1 parent 438fb4d commit f354728

File tree

2 files changed

+7
-14
lines changed

2 files changed

+7
-14
lines changed

packages/esm-mental-health-app/src/index.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { configSchema } from './config-schema';
33
import { createDashboardLink as createPatientChartDashboardLink } from '@openmrs/esm-patient-common-lib';
44
import { patientChartDashboardMeta } from './dashboard.meta';
55
import { registerExpressionHelper } from '@openmrs/esm-form-engine-lib/';
6-
import { getLatestOpenmrsObs, getTotalPatientEncounters, hasRequiredPrivilege } from './utils/helpers';
6+
import { getLatestOpenmrsObs, getTotalPatientEncounters, useHasRequiredPrivilege } from './utils/helpers';
77
import MentalHealthSummary from './mental-health/mental-health-summary.component';
88

99
export const importTranslation = require.context('../translations', false, /.json$/, 'lazy');
@@ -17,7 +17,7 @@ const options = {
1717

1818
export function startupApp() {
1919
defineConfigSchema(moduleName, configSchema);
20-
registerExpressionHelper('customHasRequiredPrivilege', hasRequiredPrivilege);
20+
registerExpressionHelper('customHasRequiredPrivilege', useHasRequiredPrivilege);
2121
registerExpressionHelper('customGetTotalPatientEncounters', getTotalPatientEncounters);
2222
registerExpressionHelper('getLatestOpenmrsObs', getLatestOpenmrsObs);
2323
}

packages/esm-mental-health-app/src/utils/helpers.ts

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,9 @@
1-
import { fhirBaseUrl, openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
1+
import { fhirBaseUrl, openmrsFetch, restBaseUrl, userHasAccess, useSession } from '@openmrs/esm-framework';
22

3-
export const hasRequiredPrivilege = async (privilege: string): Promise<boolean> => {
4-
const privileges = await fetchPrivileges();
5-
return privileges.includes(privilege);
6-
};
7-
8-
async function fetchPrivileges(): Promise<Array<string>> {
9-
const response = await openmrsFetch(`${restBaseUrl}/session`, {
10-
method: 'GET',
11-
});
12-
const data = await response.json();
13-
return data?.user?.privileges?.map((p) => p.display) || [];
3+
export function useHasRequiredPrivilege(privilege: string): boolean {
4+
const session = useSession();
5+
const hasPrivilege = userHasAccess(privilege, session?.user);
6+
return !!hasPrivilege;
147
}
158

169
export function getTotalPatientEncounters(patientUuid: string, encounterTypeUuid: string, formName?: string) {

0 commit comments

Comments
 (0)