2020-04-23 15:43:08 +00:00
|
|
|
import { ShopInfo_shop_permissions } from "@saleor/components/Shop/types/ShopInfo";
|
2020-07-07 10:14:12 +00:00
|
|
|
import { User_userPermissions } from "@saleor/fragments/types/User";
|
2020-04-23 15:43:08 +00:00
|
|
|
import { PermissionGroupDetails_user_userPermissions } from "@saleor/permissionGroups/types/PermissionGroupDetails";
|
|
|
|
|
|
|
|
export const getLastSourcesOfPermission = (
|
|
|
|
groupId: string,
|
|
|
|
userPermissions: PermissionGroupDetails_user_userPermissions[]
|
|
|
|
) =>
|
|
|
|
userPermissions
|
|
|
|
.filter(
|
|
|
|
perm =>
|
|
|
|
perm.sourcePermissionGroups.length === 1 &&
|
|
|
|
perm.sourcePermissionGroups[0].id === groupId
|
|
|
|
)
|
|
|
|
.map(perm => perm.code);
|
|
|
|
|
|
|
|
export const getPermissionsComponentChoices = (
|
|
|
|
userPermissions: User_userPermissions[],
|
|
|
|
shopPermissions: ShopInfo_shop_permissions[],
|
|
|
|
lastSourcesOfPermissionIds: string[]
|
|
|
|
) => {
|
|
|
|
const userCodes = userPermissions.map(p => p.code) || [];
|
|
|
|
|
|
|
|
return shopPermissions.map(perm => ({
|
|
|
|
...perm,
|
|
|
|
__typename: "PermissionData",
|
|
|
|
disabled: !userCodes.includes(perm.code),
|
|
|
|
lastSource: lastSourcesOfPermissionIds.includes(perm.code)
|
|
|
|
}));
|
|
|
|
};
|