Skip to content

Commit

Permalink
ensure to trigger set permissions after all the geolimits updates (#459)
Browse files Browse the repository at this point in the history
  • Loading branch information
allyoucanmap authored Aug 24, 2021
1 parent 2712763 commit dba3d05
Show file tree
Hide file tree
Showing 7 changed files with 45 additions and 44 deletions.
77 changes: 39 additions & 38 deletions geonode_mapstore_client/client/js/epics/gnsave.js
Original file line number Diff line number Diff line change
Expand Up @@ -185,42 +185,43 @@ export const gnSaveDirectContent = (action$, store) =>
const resourceId = mapInfo?.id || getResourceId(state);
const { compactPermissions, geoLimits } = getPermissionsPayload(state);
const currentResource = getResourceData(state);
return Observable.concat(
...(compactPermissions ? [
Observable.defer(() =>
updateCompactPermissionsByPk(resourceId, cleanCompactPermissions(compactPermissions))
.then(output => ({ resource: currentResource, output, processType: ProcessTypes.PERMISSIONS_RESOURCE }))
.catch((error) => ({ resource: currentResource, error: error?.data?.detail || error?.statusText || error?.message || true, processType: ProcessTypes.PERMISSIONS_RESOURCE }))

return Observable.defer(() => axios.all([
getResourceByPk(resourceId),
...(geoLimits
? geoLimits.map((limits) =>
limits.features.length === 0
? deleteGeoLimits(resourceId, limits.id, limits.type)
.catch(() => ({ error: true, resourceId, limits }))
: updateGeoLimits(resourceId, limits.id, limits.type, { features: limits.features })
.catch(() => ({ error: true, resourceId, limits }))
)
.switchMap((payload) => {
return Observable.of(startAsyncProcess(payload));
})
] : []),
Observable.defer(() => axios.all([
getResourceByPk(resourceId),
...(geoLimits
? geoLimits.map((limits) =>
limits.features.length === 0
? deleteGeoLimits(resourceId, limits.id, limits.type)
.catch(() => ({ error: true, resourceId, limits }))
: updateGeoLimits(resourceId, limits.id, limits.type, { features: limits.features })
.catch(() => ({ error: true, resourceId, limits }))
)
: [])
]))
.switchMap(([resource, ...geoLimitsResponses]) => {
const geoLimitsErrors = geoLimitsResponses.filter(({ error }) => error);
const name = getResourceName(state);
const description = getResourceDescription(state);
const thumbnail = getResourceThumbnail(state);
const metadata = {
name: (name) ? name : resource?.title,
description: (description) ? description : resource?.abstract,
thumbnail: (thumbnail) ? thumbnail : resource?.thumbnail_url,
extension: resource?.extension,
href: resource?.href
};
return Observable.of(
: [])
]))
.switchMap(([resource, ...geoLimitsResponses]) => {
const geoLimitsErrors = geoLimitsResponses.filter(({ error }) => error);
const name = getResourceName(state);
const description = getResourceDescription(state);
const thumbnail = getResourceThumbnail(state);
const metadata = {
name: (name) ? name : resource?.title,
description: (description) ? description : resource?.abstract,
thumbnail: (thumbnail) ? thumbnail : resource?.thumbnail_url,
extension: resource?.extension,
href: resource?.href
};
return Observable.concat(
...(compactPermissions ? [
Observable.defer(() =>
updateCompactPermissionsByPk(resourceId, cleanCompactPermissions(compactPermissions))
.then(output => ({ resource: currentResource, output, processType: ProcessTypes.PERMISSIONS_RESOURCE }))
.catch((error) => ({ resource: currentResource, error: error?.data?.detail || error?.statusText || error?.message || true, processType: ProcessTypes.PERMISSIONS_RESOURCE }))
)
.switchMap((payload) => {
return Observable.of(startAsyncProcess(payload));
})
] : []),
Observable.of(
saveContent(
resourceId,
metadata,
Expand All @@ -232,9 +233,9 @@ export const gnSaveDirectContent = (action$, store) =>
}
: true /* showNotification */),
resetGeoLimits()
);
})
)
)
);
})
.catch((error) => {
return Observable.of(
saveError(error.data || error.message),
Expand Down
2 changes: 1 addition & 1 deletion geonode_mapstore_client/client/js/selectors/resource.js
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,7 @@ export const getPermissionsPayload = (state) => {
const isCompactPermissionsChanged = state?.gnresource?.isCompactPermissionsChanged;
const geoLimits = state?.gnresource?.geoLimits;
return {
compactPermissions: isCompactPermissionsChanged && compactPermissions ? compactPermissions : null,
compactPermissions: (isCompactPermissionsChanged || geoLimits?.length > 0) && compactPermissions ? compactPermissions : null,
geoLimits: geoLimits?.length > 0 ? geoLimits : null
};
};
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
"permissionsName": "Name",
"permissions": "Berechtigungen",
"anonymous": "Jeder",
"registered-members": "Mitwirkende",
"registered-members": "Registrierte Mitglieder",
"permissionsEntriesNoResults": "Keine Ergebnisse...",
"shareThisResource": "Diese Ressource teilen",
"embed": "Einbetten",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -160,7 +160,7 @@
"permissionsName": "Name",
"permissions": "Permissions",
"anonymous": "Anyone",
"registered-members": "Contributors",
"registered-members": "Registered members",
"permissionsEntriesNoResults": "No Results...",
"shareThisResource": "Share this resource",
"embed": "Embed",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
"permissionsName": "Nombre",
"permissions": "Permisos",
"anonymous": "Cualquiera",
"registered-members": "Colaboradores",
"registered-members": "Miembros registrados",
"permissionsEntriesNoResults": "Sin resultados ...",
"shareThisResource": "Comparte este recurso",
"embed": "Insertar",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -159,7 +159,7 @@
"permissionsName": "Nom",
"permissions": "Autorisations",
"anonymous": "Personne",
"registered-members": "Contributeurs",
"registered-members": "Membres enregistrés",
"permissionsEntriesNoResults": "Aucun résultat...",
"shareThisResource": "Partager cette ressource",
"embed": "Intégrer",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -161,7 +161,7 @@
"permissionsName": "Nome",
"permissions": "Permessi",
"anonymous": "Chiunque",
"registered-members": "Collaboratori",
"registered-members": "Membri registrati",
"permissionsEntriesNoResults": "Nessun risultato...",
"shareThisResource": "Condividi questa risorsa",
"embed": "Incorpora",
Expand Down

0 comments on commit dba3d05

Please sign in to comment.