integrasi role user
This commit is contained in:
@@ -15,6 +15,40 @@ import { deleteUser, getAllUser, approveUser } from '../../../api/user';
|
|||||||
import TableList from '../../../components/Global/TableList';
|
import TableList from '../../../components/Global/TableList';
|
||||||
import Swal from 'sweetalert2';
|
import Swal from 'sweetalert2';
|
||||||
|
|
||||||
|
// Helper function to capitalize first letter
|
||||||
|
const capitalizeFirstLetter = (str) => {
|
||||||
|
if (!str) return '';
|
||||||
|
return str.charAt(0).toUpperCase() + str.slice(1).toLowerCase();
|
||||||
|
};
|
||||||
|
|
||||||
|
// Helper function to get role tag color based on role_level or role_name
|
||||||
|
const getRoleColor = (role_name, role_level) => {
|
||||||
|
// Priority 1: Based on role_level
|
||||||
|
if (role_level) {
|
||||||
|
switch (role_level) {
|
||||||
|
case 1:
|
||||||
|
return 'purple'; // Highest level
|
||||||
|
case 2:
|
||||||
|
return 'blue';
|
||||||
|
case 3:
|
||||||
|
return 'cyan';
|
||||||
|
case 4:
|
||||||
|
return 'green';
|
||||||
|
default:
|
||||||
|
return 'default';
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Priority 2: Based on role_name (fallback for backward compatibility)
|
||||||
|
const roleLower = role_name?.toLowerCase() || '';
|
||||||
|
if (roleLower.includes('admin')) return 'purple';
|
||||||
|
if (roleLower.includes('operator')) return 'blue';
|
||||||
|
if (roleLower.includes('engineer')) return 'cyan';
|
||||||
|
if (roleLower.includes('guest')) return 'default';
|
||||||
|
|
||||||
|
return 'default';
|
||||||
|
};
|
||||||
|
|
||||||
const columns = (showPreviewModal, showEditModal, showDeleteDialog, showApproveDialog) => [
|
const columns = (showPreviewModal, showEditModal, showDeleteDialog, showApproveDialog) => [
|
||||||
{
|
{
|
||||||
title: 'ID',
|
title: 'ID',
|
||||||
@@ -54,31 +88,16 @@ const columns = (showPreviewModal, showEditModal, showDeleteDialog, showApproveD
|
|||||||
dataIndex: 'role_name',
|
dataIndex: 'role_name',
|
||||||
key: 'role_name',
|
key: 'role_name',
|
||||||
width: '12%',
|
width: '12%',
|
||||||
render: (_, { role_name }) => {
|
render: (_, { role_name, role_level }) => {
|
||||||
if (!role_name) return <Tag color={'default'}>Belum Ada Role</Tag>;
|
if (!role_name) return <Tag color={'default'}>Belum Ada Role</Tag>;
|
||||||
|
|
||||||
|
const color = getRoleColor(role_name, role_level);
|
||||||
|
const displayName = capitalizeFirstLetter(role_name);
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<Tag color={color} key={'role'}>
|
||||||
{role_name === 'administrator' && (
|
{displayName}
|
||||||
<Tag color={'purple'} key={'role'}>
|
|
||||||
Administrator
|
|
||||||
</Tag>
|
</Tag>
|
||||||
)}
|
|
||||||
{role_name === 'operator' && (
|
|
||||||
<Tag color={'blue'} key={'role'}>
|
|
||||||
Operator
|
|
||||||
</Tag>
|
|
||||||
)}
|
|
||||||
{role_name === 'engineer' && (
|
|
||||||
<Tag color={'cyan'} key={'role'}>
|
|
||||||
Engineer
|
|
||||||
</Tag>
|
|
||||||
)}
|
|
||||||
{role_name === 'guest' && (
|
|
||||||
<Tag color={'default'} key={'role'}>
|
|
||||||
Guest
|
|
||||||
</Tag>
|
|
||||||
)}
|
|
||||||
</>
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
@@ -354,7 +373,6 @@ const ListUser = memo(function ListUser(props) {
|
|||||||
</Col>
|
</Col>
|
||||||
</Row>
|
</Row>
|
||||||
</Card>
|
</Card>
|
||||||
|
|
||||||
</React.Fragment>
|
</React.Fragment>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
|
|||||||
Reference in New Issue
Block a user