upd: user role developer

Deskripsi:
- update fitur akses buat user role developer
- update akses jabatan
- update akses lembaga desa
- update akses developer pada tema
- update akses developer pada banner
- update akses developer pada anggota

No Issues
This commit is contained in:
amel
2025-04-21 14:25:55 +08:00
parent 413e46f123
commit 734be3957b
8 changed files with 47 additions and 27 deletions

View File

@@ -30,7 +30,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<HiMiniUserGroup size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -46,7 +45,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<HiMiniPresentationChartBar size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -62,7 +60,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<HiMegaphone size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -78,7 +75,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<FaComments size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -94,7 +90,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<PiUsersFourFill size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -110,7 +105,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<FaUserTie size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -128,7 +122,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<RiLayoutTop2Fill size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -140,7 +133,7 @@ export default function ViewDetailFeature() {
</Box>
}
{
roleLogin.get() == "supadmin" &&
(roleLogin.get() == "supadmin" || roleLogin.get() == "developer") &&
<>
<Box onClick={() => router.push('/group')}>
<Center>
@@ -148,7 +141,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<FaUserTag size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -164,7 +156,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<IoColorPalette size={isMobile ? 25 : 35} color={tema.get().utama} />
@@ -180,7 +171,6 @@ export default function ViewDetailFeature() {
size={isMobile ? 50 : 68}
aria-label="Gradient action icon"
radius={100}
// gradient={{ from: '#DFDA7C', to: '#F2AF46', deg: 174 }}
bg={tema.get().bgFiturHome}
>
<RiLayoutTop2Fill size={isMobile ? 25 : 35} color={tema.get().utama} />

View File

@@ -99,7 +99,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
nilai = false
}
if (roleLogin.get() == "supadmin" && (listData.idGroup == "" || String(listData.idGroup) == "null")) {
if ((roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && (listData.idGroup == "" || String(listData.idGroup) == "null")) {
setTouched(touched => ({ ...touched, idGroup: true }))
nilai = false
}
@@ -140,7 +140,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
</Box>
</Flex>
{
roleLogin.get() == "supadmin" &&
(roleLogin.get() == "supadmin" || roleLogin.get() == "developer") &&
<Flex justify={'center'} align={'center'} direction={'column'} onClick={() => router.push('/position?page=filter&group=' + group)}>
<Box>
<RiFilter2Line size={30} color={tema.get().utama} />
@@ -155,7 +155,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo
<LayoutDrawer opened={openDrawerGroup} onClose={() => setOpenDrawerGroup(false)} title={'Tambah Jabatan'} size="md">
<Box pos={"relative"} h={"35vh"}>
{
roleLogin.get() == "supadmin" &&
(roleLogin.get() == "supadmin" || roleLogin.get() == "developer") &&
<Select
label="Lembaga Desa"
placeholder="Pilih Lembaga Desa"

View File

@@ -78,9 +78,9 @@ export default function ListPositionActive() {
placeholder="Pencarian"
onChange={(e) => setSearchQuery(e.target.value)}
/>
{roleLogin.get() == 'supadmin' && <Text mt={10}>Filter : {nameGroup}</Text>}
{(roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer') && <Text mt={10}>Filter : {nameGroup}</Text>}
{loading ? Array(6).fill(null).map((_, i) => (
<Box key={i} mb={roleLogin.get() == 'supadmin' ? "20" : "0"} mt={roleLogin.get() == 'supadmin' ? "0" : "20"}>
<Box key={i} mb={roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer' ? "20" : "0"} mt={roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer' ? "0" : "20"}>
<Group
align="center"
style={{
@@ -107,7 +107,7 @@ export default function ListPositionActive() {
</Group>
</Box>
)) :
<Box pt={roleLogin.get() == 'supadmin' ? "0" : "20"}>
<Box pt={roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer' ? "0" : "20"}>
{isDataPosition.length == 0 ?
<Box style={{ display: 'flex', justifyContent: 'center', alignItems: 'center', height: '60vh' }}>
<Text c="dimmed" ta={"center"} fs={"italic"}>Tidak ada jabatan</Text>

View File

@@ -1,5 +1,30 @@
export const valueRoleUser =
[
{
login: "developer",
data: [
{
id: "supadmin",
name: "Super Admin"
},
{
id: "cosupadmin",
name: "Wakil Super Admin"
},
{
id: "admin",
name: "Admin"
},
{
id: "coadmin",
name: "Wakil Admin"
},
{
id: "user",
name: "User"
},
]
},
{
login: "supadmin",
data: [

View File

@@ -13,10 +13,10 @@ import { useRouter } from "next/navigation";
import { useRef, useState } from "react";
import toast from "react-hot-toast";
import { FaCamera } from "react-icons/fa6";
import { useWibuRealtime } from "wibu-realtime";
import { valueRoleUser } from "../../lib/val_user";
import { funCreateMember } from "../lib/api_member";
import { IDataPositionMember, IDataROleMember } from "../lib/type_member";
import { useWibuRealtime } from "wibu-realtime";
export default function CreateMember() {
const router = useRouter();
@@ -73,7 +73,7 @@ export default function CreateMember() {
async function getLogin() {
try {
const res = await funGetUserByCookies();
if (roleLogin.get() != "supadmin") {
if (roleLogin.get() != "supadmin" && roleLogin.get() != "developer") {
getAllPosition(res.idGroup)
}
@@ -182,7 +182,7 @@ export default function CreateMember() {
nilai = false
}
if (roleLogin.get() == "supadmin" && (listData.idGroup == "" || String(listData.idGroup) == "null")) {
if ((roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && (listData.idGroup == "" || String(listData.idGroup) == "null")) {
setTouched(touched => ({ ...touched, idGroup: true }))
nilai = false
}
@@ -298,7 +298,7 @@ export default function CreateMember() {
/>
</Indicator>
{
roleLogin.get() == "supadmin" &&
(roleLogin.get() == "supadmin" || roleLogin.get() == "developer") &&
<Select
placeholder="Lembaga Desa"
label="Lembaga Desa"

View File

@@ -1,8 +1,7 @@
import { globalRole, TEMA, WARNA } from '@/module/_global';
import { globalRole, TEMA } from '@/module/_global';
import { useHookstate } from '@hookstate/core';
import { Box, Flex, SimpleGrid, Stack, Text } from '@mantine/core';
import { useRouter, useSearchParams } from 'next/navigation';
import React from 'react';
import { IoAddCircle } from "react-icons/io5";
import { RiFilter2Line } from 'react-icons/ri';
@@ -35,7 +34,7 @@ export default function DrawerListMember() {
</Box>
</Flex>
{
roleLogin.get() === 'supadmin' &&
(roleLogin.get() === 'supadmin' || roleLogin.get() === 'developer') &&
<Flex justify={'center'} align={'center'} direction={'column'}
style={{ cursor: 'pointer' }}
onClick={() => {

View File

@@ -131,7 +131,7 @@ export default function TabListMember() {
onChange={(e) => setSearchQuery(e.target.value)}
my={20}
/>
{roleLogin.get() == 'supadmin' && <Text mt={10}>Filter : {nameGroup}</Text>}
{(roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer') && <Text mt={10}>Filter : {nameGroup}</Text>}
{loading
?
Array(6)