let permissions = [
{
id: 1,
name: "Inventory",
permission: "inventory"
},
{
id: 2,
name: "Inventory read",
permission: "inventory:read"
},
{
id: 3,
name: "Purchase Orders",
permission: "purchase-orders"
},
{
id: 4,
name: "Purchase Orders create",
permission: "purchase-orders:create"
}
];
let roles = [
{
id: 1,
name: "Admin"
},
{
id: 2,
name: "Manager"
}
];
I need to have an array of permissions grouped by first part of "permission" that has properties of permission name and roles that each have the grouped permissions
Originally I have been grouping the permissions by pushing to groups[permission.split(':')] then looping through permissions and within the loop, looping the roles in my template.
I now need to build the data first.
I need the following output:
let list = [
{
permission: 'Inventory',
Admin: [
{
id: 1,
name: "Inventory",
permission: "inventory"
},
{
id: 2,
name: "Inventory read",
permission: "inventory:read"
},
],
Manager: [
{
id: 1,
name: "Inventory",
permission: "inventory"
},
{
id: 2,
name: "Inventory read",
permission: "inventory:read"
},
]
},
{
permission: 'Purchase Orders',
Admin: [
{
id: 3,
name: "Purchase Orders",
permission: "purchase-orders"
},
{
id: 4,
name: "Purchase Orders create",
permission: "purchase-orders:create"
}
],
Manager: [
{
id: 3,
name: "Purchase Orders",
permission: "purchase-orders"
},
{
id: 4,
name: "Purchase Orders create",
permission: "purchase-orders:create"
}
]
}
];