Skip to content

Commit

Permalink
Merge pull request #673 from amansinghbais/#669
Browse files Browse the repository at this point in the history
Improved: restricting user to login if no facilities found before setting token in state (#669)
  • Loading branch information
ravilodhi authored Feb 6, 2025
2 parents 709b6dd + 6aedb06 commit ebc3755
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 15 deletions.
28 changes: 22 additions & 6 deletions src/services/UserService.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,19 +62,35 @@ const getAvailableTimeZones = async (): Promise <any> => {
});
}

const fetchFacilities = async (payload: any): Promise <any> => {
return api({
const fetchFacilities = async (payload: any, token: any): Promise <any> => {
const url = store.getters["user/getBaseUrl"]
const baseURL = url.startsWith('http') ? url.includes('/rest/s1/inventory-cycle-count') ? url : `${url}/rest/s1/inventory-cycle-count/` : `https://${url}.hotwax.io/rest/s1/inventory-cycle-count/`;

return client({
url: "facilities",
method: "GET",
params: payload
baseURL,
params: payload,
headers: {
"api_key": token,
"Content-Type": "application/json"
}
});
}

const fetchAssociatedFacilities = async (payload: any): Promise <any> => {
return api({
const fetchAssociatedFacilities = async (payload: any, token: any): Promise <any> => {
const url = store.getters["user/getBaseUrl"]
const baseURL = url.startsWith('http') ? url.includes('/rest/s1/inventory-cycle-count') ? url : `${url}/rest/s1/inventory-cycle-count/` : `https://${url}.hotwax.io/rest/s1/inventory-cycle-count/`;

return client({
url: `user/${payload.partyId}/facilities`,
method: "GET",
params: payload
baseURL,
params: payload,
headers: {
"api_key": token,
"Content-Type": "application/json"
}
});
}

Expand Down
19 changes: 10 additions & 9 deletions src/store/modules/user/actions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -62,20 +62,21 @@ const actions: ActionTree<UserState, RootState> = {
Settings.defaultZone = userProfile.timeZone;
}

const facilities = await dispatch("fetchFacilities",{ partyId: userProfile.partyId, token: api_key, isAdminUser: hasPermission("APP_DRAFT_VIEW") })
if(!facilities.length) throw "Unable to login. User is not associated with any facility"

setPermissions(appPermissions);
if(omsRedirectionUrl && token) {
dispatch("setOmsRedirectionInfo", { url: omsRedirectionUrl, token })
}
commit(types.USER_PERMISSIONS_UPDATED, appPermissions);
commit(types.USER_TOKEN_CHANGED, { newToken: api_key })
commit(types.USER_INFO_UPDATED, userProfile);
commit(types.USER_PERMISSIONS_UPDATED, appPermissions);
await dispatch("fetchFacilities")
if(hasPermission("APP_DRAFT_VIEW")) await dispatch("fetchProductStores")
await dispatch('getFieldMappings')
emitter.emit("dismissLoader")
} catch (err: any) {
emitter.emit("dismissLoader")
showToast(translate(err));
logger.error("error", err);
return Promise.reject(new Error(err))
}
Expand Down Expand Up @@ -138,17 +139,17 @@ const actions: ActionTree<UserState, RootState> = {
commit(types.USER_INSTANCE_URL_UPDATED, payload)
},

async fetchFacilities({ commit, dispatch, state }) {
async fetchFacilities({ commit, dispatch }, payload) {
let facilities: Array<any> = []
try {
let associatedFacilityIds: Array<string> = []
let params = {}

if(!hasPermission("APP_DRAFT_VIEW")) {
if(!payload.isAdminUser) {
const associatedFacilitiesResp = await UserService.fetchAssociatedFacilities({
partyId: (state.current as any).partyId,
partyId: payload.partyId,
pageSize: 200
})
}, payload.token)

if(!hasError(associatedFacilitiesResp)) {
// Filtering facilities on which thruDate is set, as we are unable to pass thruDate check in the api payload
Expand All @@ -175,14 +176,13 @@ const actions: ActionTree<UserState, RootState> = {
facilityTypeId_not: "Y",
pageSize: 200,
...params
})
}, payload.token)

if(!hasError(resp)) {
facilities = resp.data
}
} catch(err) {
logger.error("Failed to fetch facilities")
throw err
}

// Updating current facility with a default first facility when fetching facilities on login
Expand All @@ -191,6 +191,7 @@ const actions: ActionTree<UserState, RootState> = {
}

commit(types.USER_FACILITIES_UPDATED, facilities)
return facilities
},

async updateCurrentFacility({ commit, dispatch }, facility) {
Expand Down

0 comments on commit ebc3755

Please sign in to comment.