- {roles.map((role) => {
- const checked = assignedRoleIds.has(role.id);
- const nextRoleIds = checked
- ? item.roles.map((assignedRole) => assignedRole.id).filter((roleId) => roleId !== role.id)
- : [...item.roles.map((assignedRole) => assignedRole.id), role.id];
+ ...(allowedPermissions.has("users.assignRoles")
+ ? [
+ {
+ key: "assign",
+ header: "Assign roles",
+ render: (item: (typeof users.data)[number]) => {
+ const assignedRoleIds = new Set(item.roles.map((role) => role.id));
return (
-
+
+ {roles.map((role) => {
+ const checked = assignedRoleIds.has(role.id);
+ const nextRoleIds = checked
+ ? item.roles.map((assignedRole) => assignedRole.id).filter((roleId) => roleId !== role.id)
+ : [...item.roles.map((assignedRole) => assignedRole.id), role.id];
+
+ return (
+
+ );
+ })}
+
);
- })}
-
- );
- },
- },
+ },
+ },
+ ]
+ : []),
+ ...(allowedPermissions.has("users.delete")
+ ? [
+ {
+ key: "actions",
+ header: "Actions",
+ className: "w-20",
+ render: (item: (typeof users.data)[number]) => (
+