2019-10-19 16:38:07 +02:00
|
|
|
import { apiClient } from '@scm-manager/ui-components';
|
2019-01-18 13:21:54 +01:00
|
|
|
|
|
|
|
|
export const CONTENT_TYPE_PERMISSIONS =
|
2019-10-19 16:38:07 +02:00
|
|
|
'application/vnd.scmm-permissionCollection+json;v=2';
|
2019-01-18 13:21:54 +01:00
|
|
|
|
|
|
|
|
export function setPermissions(url: string, permissions: string[]) {
|
|
|
|
|
return apiClient
|
2019-10-19 16:38:07 +02:00
|
|
|
.put(
|
|
|
|
|
url,
|
|
|
|
|
{
|
|
|
|
|
permissions: permissions,
|
|
|
|
|
},
|
|
|
|
|
CONTENT_TYPE_PERMISSIONS,
|
|
|
|
|
)
|
2019-01-18 13:21:54 +01:00
|
|
|
.then(response => {
|
|
|
|
|
return response;
|
|
|
|
|
});
|
|
|
|
|
}
|
2019-01-19 20:05:19 +01:00
|
|
|
|
2019-01-21 13:05:05 +01:00
|
|
|
export function loadPermissionsForEntity(
|
|
|
|
|
availableUrl: string,
|
2019-10-19 16:38:07 +02:00
|
|
|
userUrl: string,
|
2019-01-21 13:05:05 +01:00
|
|
|
) {
|
|
|
|
|
return Promise.all([
|
|
|
|
|
apiClient.get(availableUrl).then(response => {
|
|
|
|
|
return response.json();
|
|
|
|
|
}),
|
|
|
|
|
apiClient.get(userUrl).then(response => {
|
|
|
|
|
return response.json();
|
2019-10-19 16:38:07 +02:00
|
|
|
}),
|
2019-01-21 13:05:05 +01:00
|
|
|
]).then(values => {
|
|
|
|
|
const [availablePermissions, checkedPermissions] = values;
|
|
|
|
|
const permissions = {};
|
|
|
|
|
availablePermissions.permissions.forEach(p => (permissions[p] = false));
|
|
|
|
|
checkedPermissions.permissions.forEach(p => (permissions[p] = true));
|
2019-10-19 16:38:07 +02:00
|
|
|
return {
|
|
|
|
|
permissions,
|
|
|
|
|
overwriteLink: checkedPermissions._links.overwrite,
|
|
|
|
|
};
|
2019-01-19 20:05:19 +01:00
|
|
|
});
|
|
|
|
|
}
|