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
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

View File

@@ -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,

View File

@@ -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,

View File

@@ -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

View File

@@ -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

View File

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

View File

@@ -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<IProfileById>()
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() {
<Stack p={20}>
<Group justify="space-between" grow py={5}>
<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>
</Group>
{
roleUser != "developer" &&
<Group justify="flex-end">
<Text style={{ cursor: 'pointer' }} ta={"right"} c={"blue"} onClick={() => router.push(`/profile/edit/`)}>Edit</Text>
</Group>
}
</Group>
<Grid>
<Grid.Col span={4}>
@@ -127,17 +131,20 @@ export default function Profile() {
<Text fz={15} fw={'bold'} ta={"right"}>{isData?.group}</Text>
</Grid.Col>
</Grid>
<Grid>
<Grid.Col span={4}>
<Group>
<BiSolidUserBadge size={25} />
<Text fz={15}>Jabatan</Text>
</Group>
</Grid.Col>
<Grid.Col span={8}>
<Text fz={15} fw={'bold'} ta={"right"}>{isData?.position}</Text>
</Grid.Col>
</Grid>
{
roleUser != "developer" &&
<Grid>
<Grid.Col span={4}>
<Group>
<BiSolidUserBadge size={25} />
<Text fz={15}>Jabatan</Text>
</Group>
</Grid.Col>
<Grid.Col span={8}>
<Text fz={15} fw={'bold'} ta={"right"}>{isData?.position}</Text>
</Grid.Col>
</Grid>
}
<Grid>
<Grid.Col span={5}>
<Group>