fitur: developer

Deskripsi:
- update struktur db
- update seeder user role
- home developer
- search page developer
- profile developer :: tidak bisa edit

No Issues
This commit is contained in:
amel
2025-04-21 12:03:10 +08:00
parent be297ce6ce
commit 413e46f123
7 changed files with 46 additions and 33 deletions

View File

@@ -98,8 +98,8 @@ model User {
idVillage String idVillage String
Group Group @relation(fields: [idGroup], references: [id]) Group Group @relation(fields: [idGroup], references: [id])
idGroup String idGroup String
Position Position @relation(fields: [idPosition], references: [id]) Position Position? @relation(fields: [idPosition], references: [id])
idPosition String idPosition String?
nik String @unique nik String @unique
name String name String
phone String @unique phone String @unique

View File

@@ -27,8 +27,8 @@ export async function GET(request: Request) {
if (kategori == "kegiatan") { if (kategori == "kegiatan") {
let kondisi let kondisi
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (roleUser == "supadmin") { if (roleUser == "supadmin" || roleUser == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
idVillage: idVillage, idVillage: idVillage,
@@ -87,8 +87,8 @@ export async function GET(request: Request) {
} else if (kategori == "division") { } else if (kategori == "division") {
let kondisi let kondisi
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (roleUser == "supadmin") { if (roleUser == "supadmin" || roleUser == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
idVillage: idVillage, idVillage: idVillage,
@@ -139,8 +139,8 @@ export async function GET(request: Request) {
} else if (kategori == "progress") { } else if (kategori == "progress") {
let kondisi let kondisi
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (roleUser == "supadmin") { if (roleUser == "supadmin" || roleUser == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
Division: { Division: {
@@ -205,8 +205,8 @@ export async function GET(request: Request) {
} else if (kategori == "dokumen") { } else if (kategori == "dokumen") {
let kondisi let kondisi
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (roleUser == "supadmin") { if (roleUser == "supadmin" || roleUser == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
category: 'FILE', category: 'FILE',
@@ -283,8 +283,8 @@ export async function GET(request: Request) {
} else if (kategori == "event") { } else if (kategori == "event") {
let kondisi let kondisi
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (roleUser == "supadmin") { if (roleUser == "supadmin" || roleUser == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
dateStart: new Date(), dateStart: new Date(),
@@ -364,8 +364,8 @@ export async function GET(request: Request) {
} else if (kategori == "discussion") { } else if (kategori == "discussion") {
let kondisi let kondisi
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (roleUser == "supadmin") { if (roleUser == "supadmin" || roleUser == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
status: 1, status: 1,

View File

@@ -15,8 +15,8 @@ export async function GET(request: Request) {
let kondisi: any, kondisiProject: any let kondisi: any, kondisiProject: any
// klo perbekel == semua grup // klo perbekel/developer == semua grup
if (userId.idUserRole == "supadmin") { if (userId.idUserRole == "supadmin" || userId.idUserRole == "developer") {
kondisi = { kondisi = {
isActive: true, isActive: true,
idVillage: userId.idVillage, idVillage: userId.idVillage,

View File

@@ -52,7 +52,7 @@ export async function GET(request: Request, context: { params: { id: string } })
const { ...userData } = users; const { ...userData } = users;
const group = users?.Group.name const group = users?.Group.name
const position = users?.Position.name const position = users?.Position?.name
const idUserRole = users?.UserRole.id const idUserRole = users?.UserRole.id
const phone = users?.phone.substr(2) const phone = users?.phone.substr(2)
const role = users?.UserRole.name const role = users?.UserRole.name

View File

@@ -19,6 +19,7 @@ export async function GET(request: Request) {
}, },
select: { select: {
id: true, id: true,
idUserRole: true,
name: true, name: true,
email: true, email: true,
phone: true, phone: true,
@@ -46,7 +47,7 @@ export async function GET(request: Request) {
}) })
const { ...userData } = data; const { ...userData } = data;
const group = data?.Group.name const group = data?.Group.name
const position = data?.Position.name const position = data?.Position?.name
const phone = data?.phone.substr(2) const phone = data?.phone.substr(2)
const role = data?.UserRole.name const role = data?.UserRole.name

View File

@@ -1,4 +1,9 @@
[ [
{
"id": "developer",
"name": "Developer",
"desc": "-"
},
{ {
"id": "supadmin", "id": "supadmin",
"name": "Super Admin", "name": "Super Admin",

View File

@@ -18,6 +18,7 @@ import { IProfileById } from "../lib/type_profile";
export default function Profile() { export default function Profile() {
const [openModal, setOpenModal] = useState(false); const [openModal, setOpenModal] = useState(false);
const [roleUser, setRoleUser] = useState("")
const [isData, setData] = useState<IProfileById>() const [isData, setData] = useState<IProfileById>()
const router = useRouter() const router = useRouter()
const [loading, setLoading] = useState(true) const [loading, setLoading] = useState(true)
@@ -30,8 +31,8 @@ export default function Profile() {
setLoading(true) setLoading(true)
const res = await funGetProfileByCookies() const res = await funGetProfileByCookies()
setData(res.data) setData(res.data)
setRoleUser(res.data.idUserRole)
setIMG(`https://wibu-storage.wibudev.com/api/files/${res.data.img}`) setIMG(`https://wibu-storage.wibudev.com/api/files/${res.data.img}`)
setLoading(false)
} catch (error) { } catch (error) {
console.error(error); console.error(error);
} finally { } finally {
@@ -101,9 +102,12 @@ export default function Profile() {
<Stack p={20}> <Stack p={20}>
<Group justify="space-between" grow py={5}> <Group justify="space-between" grow py={5}>
<Text fw={'bold'} fz={20}>Informasi</Text> <Text fw={'bold'} fz={20}>Informasi</Text>
<Group justify="flex-end"> {
<Text style={{ cursor: 'pointer' }} ta={"right"} c={"blue"} onClick={() => router.push(`/profile/edit/`)}>Edit</Text> roleUser != "developer" &&
</Group> <Group justify="flex-end">
<Text style={{ cursor: 'pointer' }} ta={"right"} c={"blue"} onClick={() => router.push(`/profile/edit/`)}>Edit</Text>
</Group>
}
</Group> </Group>
<Grid> <Grid>
<Grid.Col span={4}> <Grid.Col span={4}>
@@ -127,17 +131,20 @@ export default function Profile() {
<Text fz={15} fw={'bold'} ta={"right"}>{isData?.group}</Text> <Text fz={15} fw={'bold'} ta={"right"}>{isData?.group}</Text>
</Grid.Col> </Grid.Col>
</Grid> </Grid>
<Grid> {
<Grid.Col span={4}> roleUser != "developer" &&
<Group> <Grid>
<BiSolidUserBadge size={25} /> <Grid.Col span={4}>
<Text fz={15}>Jabatan</Text> <Group>
</Group> <BiSolidUserBadge size={25} />
</Grid.Col> <Text fz={15}>Jabatan</Text>
<Grid.Col span={8}> </Group>
<Text fz={15} fw={'bold'} ta={"right"}>{isData?.position}</Text> </Grid.Col>
</Grid.Col> <Grid.Col span={8}>
</Grid> <Text fz={15} fw={'bold'} ta={"right"}>{isData?.position}</Text>
</Grid.Col>
</Grid>
}
<Grid> <Grid>
<Grid.Col span={5}> <Grid.Col span={5}>
<Group> <Group>