From be297ce6ce2bde81c10df441ad8f0f7a03c9df15 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 21 Apr 2025 10:42:25 +0800 Subject: [PATCH 1/5] fix: get user cookies Deskripsi: - prefentif undefined value cookies No Issues --- src/module/auth/api/funGetUserByCookies.ts | 75 +++++++++++++--------- 1 file changed, 45 insertions(+), 30 deletions(-) diff --git a/src/module/auth/api/funGetUserByCookies.ts b/src/module/auth/api/funGetUserByCookies.ts index d57add0..fd1dea2 100644 --- a/src/module/auth/api/funGetUserByCookies.ts +++ b/src/module/auth/api/funGetUserByCookies.ts @@ -1,41 +1,56 @@ 'use server' -import { pwd_key_config, prisma } from "@/module/_global"; +import { prisma, pwd_key_config } from "@/module/_global"; import { unsealData } from "iron-session"; import { cookies } from "next/headers"; export default async function funGetUserByCookies() { - const sessionCookie = cookies().get("sessionCookieSDM"); - const userId : any = await unsealData(sessionCookie!.value, { - password: pwd_key_config, - }); + const sessionCookie = cookies().get("sessionCookieSDM") - const user = await prisma.user.findUnique({ - where: { - id: userId.user ? String(userId.user) : String(userId), - }, - }); + if (sessionCookie != undefined) { + const userId: any = await unsealData(sessionCookie.value, { + password: pwd_key_config, + }); - const village = await prisma.village.findUnique({ - where: { - id: user?.idVillage - } - }) + const user = await prisma.user.findUnique({ + where: { + id: userId.user ? String(userId.user) : String(userId), + }, + }); - const warna = await prisma.colorTheme.findUnique({ - where: { - id: String(village?.idTheme) - } - }) + const village = await prisma.village.findUnique({ + where: { + id: user?.idVillage + } + }) + + const warna = await prisma.colorTheme.findUnique({ + where: { + id: String(village?.idTheme) + } + }) + + return { + id: user?.id, + idUserRole: user?.idUserRole, + name: user?.name, + idVillage: user?.idVillage, + idGroup: user?.idGroup, + idPosition: user?.idPosition, + theme: warna, + showNotification: userId?.showNotification + }; + }else{ + return { + id: undefined, + idUserRole: undefined, + name: undefined, + idVillage: undefined, + idGroup: undefined, + idPosition: undefined, + theme: undefined, + showNotification: undefined + }; + } - return { - id: user?.id, - idUserRole: user?.idUserRole, - name: user?.name, - idVillage: user?.idVillage, - idGroup: user?.idGroup, - idPosition: user?.idPosition, - theme: warna, - showNotification: userId?.showNotification - }; } \ No newline at end of file From 413e46f123eaad62826b79cd301ce9eba471c630 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 21 Apr 2025 12:03:10 +0800 Subject: [PATCH 2/5] fitur: developer Deskripsi: - update struktur db - update seeder user role - home developer - search page developer - profile developer :: tidak bisa edit No Issues --- prisma/schema.prisma | 4 +-- src/app/api/home/route.ts | 24 ++++++++--------- src/app/api/home/search/route.ts | 4 +-- src/app/api/user/[id]/route.ts | 2 +- src/app/api/user/profile/route.ts | 3 ++- src/module/seeder/data/user_role.json | 5 ++++ src/module/user/profile/ui/profile.tsx | 37 +++++++++++++++----------- 7 files changed, 46 insertions(+), 33 deletions(-) diff --git a/prisma/schema.prisma b/prisma/schema.prisma index e187a42..06bb910 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -98,8 +98,8 @@ model User { idVillage String Group Group @relation(fields: [idGroup], references: [id]) idGroup String - Position Position @relation(fields: [idPosition], references: [id]) - idPosition String + Position Position? @relation(fields: [idPosition], references: [id]) + idPosition String? nik String @unique name String phone String @unique diff --git a/src/app/api/home/route.ts b/src/app/api/home/route.ts index d0ef436..45f6514 100644 --- a/src/app/api/home/route.ts +++ b/src/app/api/home/route.ts @@ -27,8 +27,8 @@ export async function GET(request: Request) { if (kategori == "kegiatan") { let kondisi - // klo perbekel == semua grup - if (roleUser == "supadmin") { + // klo perbekel/developer == semua grup + if (roleUser == "supadmin" || roleUser == "developer") { kondisi = { isActive: true, idVillage: idVillage, @@ -87,8 +87,8 @@ export async function GET(request: Request) { } else if (kategori == "division") { let kondisi - // klo perbekel == semua grup - if (roleUser == "supadmin") { + // klo perbekel/developer == semua grup + if (roleUser == "supadmin" || roleUser == "developer") { kondisi = { isActive: true, idVillage: idVillage, @@ -139,8 +139,8 @@ export async function GET(request: Request) { } else if (kategori == "progress") { let kondisi - // klo perbekel == semua grup - if (roleUser == "supadmin") { + // klo perbekel/developer == semua grup + if (roleUser == "supadmin" || roleUser == "developer") { kondisi = { isActive: true, Division: { @@ -205,8 +205,8 @@ export async function GET(request: Request) { } else if (kategori == "dokumen") { let kondisi - // klo perbekel == semua grup - if (roleUser == "supadmin") { + // klo perbekel/developer == semua grup + if (roleUser == "supadmin" || roleUser == "developer") { kondisi = { isActive: true, category: 'FILE', @@ -283,8 +283,8 @@ export async function GET(request: Request) { } else if (kategori == "event") { let kondisi - // klo perbekel == semua grup - if (roleUser == "supadmin") { + // klo perbekel/developer == semua grup + if (roleUser == "supadmin" || roleUser == "developer") { kondisi = { isActive: true, dateStart: new Date(), @@ -364,8 +364,8 @@ export async function GET(request: Request) { } else if (kategori == "discussion") { let kondisi - // klo perbekel == semua grup - if (roleUser == "supadmin") { + // klo perbekel/developer == semua grup + if (roleUser == "supadmin" || roleUser == "developer") { kondisi = { isActive: true, status: 1, diff --git a/src/app/api/home/search/route.ts b/src/app/api/home/search/route.ts index 709ead4..bf6a757 100644 --- a/src/app/api/home/search/route.ts +++ b/src/app/api/home/search/route.ts @@ -15,8 +15,8 @@ export async function GET(request: Request) { let kondisi: any, kondisiProject: any - // klo perbekel == semua grup - if (userId.idUserRole == "supadmin") { + // klo perbekel/developer == semua grup + if (userId.idUserRole == "supadmin" || userId.idUserRole == "developer") { kondisi = { isActive: true, idVillage: userId.idVillage, diff --git a/src/app/api/user/[id]/route.ts b/src/app/api/user/[id]/route.ts index c6d9fef..bea9fb9 100644 --- a/src/app/api/user/[id]/route.ts +++ b/src/app/api/user/[id]/route.ts @@ -52,7 +52,7 @@ export async function GET(request: Request, context: { params: { id: string } }) const { ...userData } = users; const group = users?.Group.name - const position = users?.Position.name + const position = users?.Position?.name const idUserRole = users?.UserRole.id const phone = users?.phone.substr(2) const role = users?.UserRole.name diff --git a/src/app/api/user/profile/route.ts b/src/app/api/user/profile/route.ts index 21a3b20..515a6c8 100644 --- a/src/app/api/user/profile/route.ts +++ b/src/app/api/user/profile/route.ts @@ -19,6 +19,7 @@ export async function GET(request: Request) { }, select: { id: true, + idUserRole: true, name: true, email: true, phone: true, @@ -46,7 +47,7 @@ export async function GET(request: Request) { }) const { ...userData } = data; const group = data?.Group.name - const position = data?.Position.name + const position = data?.Position?.name const phone = data?.phone.substr(2) const role = data?.UserRole.name diff --git a/src/module/seeder/data/user_role.json b/src/module/seeder/data/user_role.json index c388bfb..f15e34e 100644 --- a/src/module/seeder/data/user_role.json +++ b/src/module/seeder/data/user_role.json @@ -1,4 +1,9 @@ [ + { + "id": "developer", + "name": "Developer", + "desc": "-" + }, { "id": "supadmin", "name": "Super Admin", diff --git a/src/module/user/profile/ui/profile.tsx b/src/module/user/profile/ui/profile.tsx index 2013722..0e09530 100644 --- a/src/module/user/profile/ui/profile.tsx +++ b/src/module/user/profile/ui/profile.tsx @@ -18,6 +18,7 @@ import { IProfileById } from "../lib/type_profile"; export default function Profile() { const [openModal, setOpenModal] = useState(false); + const [roleUser, setRoleUser] = useState("") const [isData, setData] = useState() const router = useRouter() const [loading, setLoading] = useState(true) @@ -30,8 +31,8 @@ export default function Profile() { setLoading(true) const res = await funGetProfileByCookies() setData(res.data) + setRoleUser(res.data.idUserRole) setIMG(`https://wibu-storage.wibudev.com/api/files/${res.data.img}`) - setLoading(false) } catch (error) { console.error(error); } finally { @@ -101,9 +102,12 @@ export default function Profile() { Informasi - - router.push(`/profile/edit/`)}>Edit - + { + roleUser != "developer" && + + router.push(`/profile/edit/`)}>Edit + + } @@ -127,17 +131,20 @@ export default function Profile() { {isData?.group} - - - - - Jabatan - - - - {isData?.position} - - + { + roleUser != "developer" && + + + + + Jabatan + + + + {isData?.position} + + + } From 734be3957ba8a1b1cc463a0c3c94efa10fbad81a Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 21 Apr 2025 14:25:55 +0800 Subject: [PATCH 3/5] 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 --- src/app/api/user/route.ts | 10 ++++++-- src/module/home/ui/view_detail_feature.tsx | 12 +-------- .../position/ui/drawer_list_position.tsx | 6 ++--- .../position/ui/list_position_active.tsx | 6 ++--- src/module/user/lib/val_user.ts | 25 +++++++++++++++++++ src/module/user/member/ui/create_member.tsx | 8 +++--- .../user/member/ui/drawer_list_member.tsx | 5 ++-- src/module/user/member/ui/tab_list_member.tsx | 2 +- 8 files changed, 47 insertions(+), 27 deletions(-) diff --git a/src/app/api/user/route.ts b/src/app/api/user/route.ts index 526a4a7..fd9323f 100644 --- a/src/app/api/user/route.ts +++ b/src/app/api/user/route.ts @@ -47,6 +47,9 @@ export async function GET(request: Request) { name: { contains: (name == undefined || name == null) ? "" : name, mode: "insensitive", + }, + NOT: { + idUserRole: 'developer' } }, select: { @@ -78,7 +81,7 @@ export async function GET(request: Request) { const allData = users.map((v: any) => ({ ..._.omit(v, ["Group", "Position"]), group: v.Group.name, - position: v.Position.name + position: v?.Position?.name })) return NextResponse.json({ success: true, message: "Berhasil member", data: allData, filter }, { status: 200 }); @@ -90,6 +93,9 @@ export async function GET(request: Request) { name: { contains: (name == undefined || name == null) ? "" : name, mode: "insensitive", + }, + NOT: { + idUserRole: 'developer' } }, select: { @@ -121,7 +127,7 @@ export async function GET(request: Request) { const allData = users.map((v: any) => ({ ..._.omit(v, ["Group", "Position"]), group: v.Group.name, - position: v.Position.name + position: v?.Position?.name })) return NextResponse.json({ success: true, message: "Berhasil member", data: allData, filter }, { status: 200 }); diff --git a/src/module/home/ui/view_detail_feature.tsx b/src/module/home/ui/view_detail_feature.tsx index 660f438..39c749e 100644 --- a/src/module/home/ui/view_detail_feature.tsx +++ b/src/module/home/ui/view_detail_feature.tsx @@ -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} > @@ -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} > @@ -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} > @@ -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} > @@ -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} > @@ -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} > @@ -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} > @@ -140,7 +133,7 @@ export default function ViewDetailFeature() { } { - roleLogin.get() == "supadmin" && + (roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && <> router.push('/group')}>
@@ -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} > @@ -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} > @@ -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} > diff --git a/src/module/position/ui/drawer_list_position.tsx b/src/module/position/ui/drawer_list_position.tsx index 5eb48d9..9d4b630 100644 --- a/src/module/position/ui/drawer_list_position.tsx +++ b/src/module/position/ui/drawer_list_position.tsx @@ -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 { - roleLogin.get() == "supadmin" && + (roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && router.push('/position?page=filter&group=' + group)}> @@ -155,7 +155,7 @@ export default function DrawerListPosition({ onCreated }: { onCreated: (val: boo setOpenDrawerGroup(false)} title={'Tambah Jabatan'} size="md"> { - roleLogin.get() == "supadmin" && + (roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && { - roleLogin.get() === 'supadmin' && + (roleLogin.get() === 'supadmin' || roleLogin.get() === 'developer') && { diff --git a/src/module/user/member/ui/tab_list_member.tsx b/src/module/user/member/ui/tab_list_member.tsx index e517c51..d6adb89 100644 --- a/src/module/user/member/ui/tab_list_member.tsx +++ b/src/module/user/member/ui/tab_list_member.tsx @@ -131,7 +131,7 @@ export default function TabListMember() { onChange={(e) => setSearchQuery(e.target.value)} my={20} /> - {roleLogin.get() == 'supadmin' && Filter : {nameGroup}} + {(roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer') && Filter : {nameGroup}} {loading ? Array(6) From c68c7d310621f8af20a66b9ea8698699f294a766 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 21 Apr 2025 16:49:59 +0800 Subject: [PATCH 4/5] upd: akses user role developer Deskripsi; - update akses developer pada diskusi umum - update akses developer pada pengumuman - update akses developer pada project general No Issues --- src/app/api/announcement/route.ts | 2 +- src/app/api/project/route.ts | 2 +- src/module/discussion_general/ui/create_discussion.tsx | 6 +++--- src/module/discussion_general/ui/drawer_discussion.tsx | 2 +- src/module/discussion_general/ui/list_discussion.tsx | 2 +- src/module/project/ui/create_project.tsx | 6 +++--- src/module/project/ui/list_project.tsx | 2 +- src/module/project/ui/menu_drawer_project.tsx | 2 +- 8 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/app/api/announcement/route.ts b/src/app/api/announcement/route.ts index 814390e..63270d1 100644 --- a/src/app/api/announcement/route.ts +++ b/src/app/api/announcement/route.ts @@ -34,7 +34,7 @@ export async function GET(request: Request) { } } - if (roleUser != "supadmin") { + if (roleUser != "supadmin" && roleUser != "developer") { if (roleUser == "cosupadmin" || roleUser == "admin") { kondisi = { idVillage: String(villageId), diff --git a/src/app/api/project/route.ts b/src/app/api/project/route.ts index 1e04e0a..ee2a96b 100644 --- a/src/app/api/project/route.ts +++ b/src/app/api/project/route.ts @@ -57,7 +57,7 @@ export async function GET(request: Request) { // JIKA ROLE = USER ATAU COADMIN DAN KATEGORI != SEMUA (KEGIATAN SAYA) - if (roleUser != "supadmin" && roleUser != "cosupadmin" && roleUser != "admin") { + if (roleUser != "supadmin" && roleUser != "developer" && roleUser != "cosupadmin" && roleUser != "admin") { if (kategori != "semua") { kondisi = { isActive: true, diff --git a/src/module/discussion_general/ui/create_discussion.tsx b/src/module/discussion_general/ui/create_discussion.tsx index b251af2..87e3c3a 100644 --- a/src/module/discussion_general/ui/create_discussion.tsx +++ b/src/module/discussion_general/ui/create_discussion.tsx @@ -44,7 +44,7 @@ export default function FormCreateDiscussionGeneral() { }); function onToChooseAnggota() { - if (roleLogin.get() == "supadmin" && (body.idGroup == "" || String(body.idGroup) == "null")) + if ((roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && (body.idGroup == "" || String(body.idGroup) == "null")) return toast.error("Error! lembaga desa tidak boleh kosong") setChooseAnggota(true) } @@ -57,7 +57,7 @@ export default function FormCreateDiscussionGeneral() { toast.error(loadGroup.message); } - if (roleLogin.get() != "supadmin") { + if (roleLogin.get() != "supadmin" && roleLogin.get() != "developer") { const loadUser = await funGetUserByCookies(); setBody({ ...body, idGroup: loadUser.idGroup }) } @@ -156,7 +156,7 @@ export default function FormCreateDiscussionGeneral() { { - (roleLogin.get() == "supadmin") && ( + (roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && ( - {roleLogin.get() == 'supadmin' && Filter : {nameGroup}} + {(roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer') && Filter : {nameGroup}} {(roleLogin.get() == 'user' || roleLogin.get() == 'coadmin') && Filter : {(kategori == null || kategori == undefined || kategori == '') ? 'Kegiatan Saya' : 'Semua Kegiatan'}} Total Kegiatan diff --git a/src/module/project/ui/menu_drawer_project.tsx b/src/module/project/ui/menu_drawer_project.tsx index 4408b27..aec238c 100644 --- a/src/module/project/ui/menu_drawer_project.tsx +++ b/src/module/project/ui/menu_drawer_project.tsx @@ -29,7 +29,7 @@ export default function MenuDrawerProject() { } { - roleLogin.get() == "supadmin" && + (roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && window.location.href = "/project?page=filter&group=" + group} justify={'center'} align={'center'} direction={'column'} > From 3c1b069e1a7ecca477f4604a65a04a9da873fa92 Mon Sep 17 00:00:00 2001 From: amel Date: Mon, 21 Apr 2025 17:24:49 +0800 Subject: [PATCH 5/5] upd: akses user role developer Deskripsi: - update akses list divisi - update akses detail divisi - update akses tambah divisi - update akses laporan divisi No Issues --- src/app/api/division/route.ts | 2 +- src/module/division_new/ui/create_division.tsx | 8 ++++---- src/module/division_new/ui/create_report.tsx | 6 +++--- src/module/division_new/ui/drawer_division.tsx | 9 +++------ src/module/division_new/ui/list_division.tsx | 2 +- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/src/app/api/division/route.ts b/src/app/api/division/route.ts index 5bee3c3..51d2e5f 100644 --- a/src/app/api/division/route.ts +++ b/src/app/api/division/route.ts @@ -44,7 +44,7 @@ export async function GET(request: Request) { // JIKA ROLE = USER ATAU COADMIN DAN KATEGORI != SEMUA (DIVISI SAYA) - if (roleUser != "supadmin" && roleUser != "cosupadmin" && roleUser != "admin") { + if (roleUser != "supadmin" && roleUser != "developer" && roleUser != "cosupadmin" && roleUser != "admin") { if (kategori != "semua") { kondisi = { isActive: active == 'false' ? false : true, diff --git a/src/module/division_new/ui/create_division.tsx b/src/module/division_new/ui/create_division.tsx index dfb5293..ec73fac 100644 --- a/src/module/division_new/ui/create_division.tsx +++ b/src/module/division_new/ui/create_division.tsx @@ -8,11 +8,11 @@ import { useMediaQuery, useShallowEffect } from "@mantine/hooks"; import { useRouter } from "next/navigation"; import { useState } from "react"; import toast from "react-hot-toast"; +import { HiChevronLeft } from "react-icons/hi2"; import { IoIosArrowDropright } from "react-icons/io"; import { globalMemberDivision } from "../lib/val_division"; import NavbarAdminDivision from "./navbar_admin_division"; import NavbarCreateUsers from "./navbar_create_users"; -import { HiChevronLeft } from "react-icons/hi2"; export default function CreateDivision() { const router = useRouter(); @@ -59,7 +59,7 @@ export default function CreateDivision() { } function onToChooseAnggota() { - if (roleUser == "supadmin" && (body.idGroup == "" || String(body.idGroup) == "null")) + if ((roleUser == "supadmin" || roleUser == "developer") && (body.idGroup == "" || String(body.idGroup) == "null")) return toast.error("Error! lembaga desa tidak boleh kosong") setChooseAnggota(true) } @@ -98,7 +98,7 @@ export default function CreateDivision() { function checkAll() { let nilai = true - if (roleUser == "supadmin" && (body.idGroup === "" || String(body.idGroup) == "null")) { + if ((roleUser == "supadmin" || roleUser == "developer") && (body.idGroup === "" || String(body.idGroup) == "null")) { setTouched(touched => ({ ...touched, idGroup: true })) nilai = false } @@ -145,7 +145,7 @@ export default function CreateDivision() { { - (roleUser == "supadmin") && ( + (roleUser == "supadmin" || roleUser == "developer") && ( - + router.push('/division/create')} justify={'center'} align={'center'} direction={'column'} > @@ -30,7 +27,7 @@ export default function DrawerDivision() { { - roleLogin.get() == "supadmin" && + (roleLogin.get() == "supadmin" || roleLogin.get() == "developer") && { router.push('/division?page=filter&group=' + group) }} justify={'center'} align={'center'} direction={'column'} > @@ -44,7 +41,7 @@ export default function DrawerDivision() { } { - (roleLogin.get() == "supadmin" || roleLogin.get() == "cosupadmin") && + (roleLogin.get() == "supadmin" || roleLogin.get() == "cosupadmin" || roleLogin.get() == "developer") && { router.push('/division?page=report') }} justify={'center'} align={'center'} direction={'column'} > diff --git a/src/module/division_new/ui/list_division.tsx b/src/module/division_new/ui/list_division.tsx index 71f65f8..4168083 100644 --- a/src/module/division_new/ui/list_division.tsx +++ b/src/module/division_new/ui/list_division.tsx @@ -157,7 +157,7 @@ export default function ListDivision() { - {roleLogin.get() == 'supadmin' && Filter : {nameGroup}} + {(roleLogin.get() == 'supadmin' || roleLogin.get() == 'developer') && Filter : {nameGroup}} Total Divisi