import { ServiceRepository } from 'services/services';
import { PermissionResource } from 'models/permission';
import { snackbarActions, SnackbarKind } from 'store/snackbar/snackbar-actions';
-import { UserResource, getUserDisplayName } from 'models/user';
export const GROUP_DETAILS_MEMBERS_PANEL_ID = 'groupDetailsMembersPanel';
export const GROUP_DETAILS_PERMISSIONS_PANEL_ID = 'groupDetailsPermissionsPanel';
const groupUuid = getCurrentGroupDetailsPanelUuid(getState().properties);
if (groupUuid) {
-
- const group = getResource<GroupResource>(groupUuid)(getState().resources);
- const user = getResource<UserResource>(groupUuid)(getState().resources);
-
dispatch(snackbarActions.OPEN_SNACKBAR({ message: 'Removing ...', kind: SnackbarKind.INFO }));
await deleteGroupMember({
- user: {
+ link: {
uuid,
- name: user ? getUserDisplayName(user) : uuid,
- },
- group: {
- uuid: groupUuid,
- name: group ? group.name : groupUuid,
},
permissionService,
dispatch,
*/
export const addGroupMember = async ({ user, group, ...args }: AddGroupMemberArgs) => {
await createPermission({
- head: { ...user },
- tail: { ...group },
+ head: { ...group },
+ tail: { ...user },
permissionLevel: PermissionLevel.CAN_READ,
...args,
});
};
interface DeleteGroupMemberArgs {
- user: { uuid: string, name: string };
- group: { uuid: string, name: string };
+ link: { uuid: string };
dispatch: Dispatch;
permissionService: PermissionService;
}
-export const deleteGroupMember = async ({ user, group, ...args }: DeleteGroupMemberArgs) => {
+export const deleteGroupMember = async ({ link, ...args }: DeleteGroupMemberArgs) => {
await deletePermission({
- tail: group,
- head: user,
+ uuid: link.uuid,
...args,
});
};
interface DeletePermissionLinkArgs {
- head: { uuid: string, name: string };
- tail: { uuid: string, name: string };
+ uuid: string;
dispatch: Dispatch;
permissionService: PermissionService;
}
-export const deletePermission = async ({ head, tail, dispatch, permissionService }: DeletePermissionLinkArgs) => {
+export const deletePermission = async ({ uuid, dispatch, permissionService }: DeletePermissionLinkArgs) => {
try {
const permissionsResponse = await permissionService.list({
filters: new FilterBuilder()
- .addEqual('tail_uuid', tail.uuid)
- .addEqual('head_uuid', head.uuid)
+ .addEqual('uuid', uuid)
.getFilters()
});
const [permission] = permissionsResponse.items;
}
} catch (e) {
dispatch(snackbarActions.OPEN_SNACKBAR({
- message: `Could not delete ${tail.name} -> ${head.name} relation`,
+ message: `Could not delete ${uuid} permission`,
kind: SnackbarKind.ERROR,
}));
}
-};
\ No newline at end of file
+};