From 2c60db77122244319c7103d8071df0afd2da2402 Mon Sep 17 00:00:00 2001 From: Mohammad Jalali Date: Tue, 19 Nov 2024 07:39:30 +0000 Subject: [PATCH] formatting and complete permission part of pages and removing _fencing page... --- src/app/(withAuth)/dashboard/azmayesh/page.js | 7 +- .../dashboard/azmayesh_type/page.js | 7 +- .../inquiry-privacy/_fencing/page.js | 7 - .../assistant/zamin-gov/page.js | 7 +- .../city-admin/zamin-gov/page.js | 7 +- .../general-manager/zamin-gov/page.js | 7 +- .../province-admin/zamin-gov/page.js | 7 +- .../Actions/Create/index.jsx | 55 -- .../Forms/CreateOrUpdate.jsx | 869 ------------------ .../LocationOnMap/MarkerLocation/index.jsx | 37 - .../Forms/LocationOnMap/index.jsx | 22 - .../inquiryPrivacyFencing/Toolbar.jsx | 10 - .../dashboard/inquiryPrivacyFencing/index.jsx | 15 - .../inquiryPrivacyFencingList/index.jsx | 254 ----- src/core/components/Profile/Update/Form.jsx | 6 +- src/core/middlewares/withPermission.js | 29 + src/core/utils/pageMenu.js | 8 +- 17 files changed, 70 insertions(+), 1284 deletions(-) delete mode 100644 src/app/(withAuth)/dashboard/inquiry-privacy/_fencing/page.js delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/Actions/Create/index.jsx delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/Forms/CreateOrUpdate.jsx delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/MarkerLocation/index.jsx delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/index.jsx delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/Toolbar.jsx delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/index.jsx delete mode 100644 src/components/dashboard/inquiryPrivacyFencing/inquiryPrivacyFencingList/index.jsx create mode 100644 src/core/middlewares/withPermission.js diff --git a/src/app/(withAuth)/dashboard/azmayesh/page.js b/src/app/(withAuth)/dashboard/azmayesh/page.js index adda14c..d27371a 100644 --- a/src/app/(withAuth)/dashboard/azmayesh/page.js +++ b/src/app/(withAuth)/dashboard/azmayesh/page.js @@ -1,7 +1,12 @@ import AzmayeshPage from "@/components/dashboard/azmayesh"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return ; + return ( + + + + ); }; export default Page; diff --git a/src/app/(withAuth)/dashboard/azmayesh_type/page.js b/src/app/(withAuth)/dashboard/azmayesh_type/page.js index 5ed5c6b..4032594 100644 --- a/src/app/(withAuth)/dashboard/azmayesh_type/page.js +++ b/src/app/(withAuth)/dashboard/azmayesh_type/page.js @@ -1,7 +1,12 @@ import AzmayeshTypePage from "@/components/dashboard/azmayeshType"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return ; + return ( + + + + ); }; export default Page; diff --git a/src/app/(withAuth)/dashboard/inquiry-privacy/_fencing/page.js b/src/app/(withAuth)/dashboard/inquiry-privacy/_fencing/page.js deleted file mode 100644 index b7aecdd..0000000 --- a/src/app/(withAuth)/dashboard/inquiry-privacy/_fencing/page.js +++ /dev/null @@ -1,7 +0,0 @@ -import InquiryPrivacyFencingPage from "@/components/dashboard/inquiryPrivacyFencing"; - -const Page = () => { - return ; -}; - -export default Page; diff --git a/src/app/(withAuth)/dashboard/inquiry-privacy/assistant/zamin-gov/page.js b/src/app/(withAuth)/dashboard/inquiry-privacy/assistant/zamin-gov/page.js index 0581720..6679ae5 100644 --- a/src/app/(withAuth)/dashboard/inquiry-privacy/assistant/zamin-gov/page.js +++ b/src/app/(withAuth)/dashboard/inquiry-privacy/assistant/zamin-gov/page.js @@ -1,7 +1,12 @@ import AssistantZaminGovComponent from "@/components/dashboard/inquiryPrivacy/assistant/zaminGov"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return ; + return ( + + + + ); }; export default Page; diff --git a/src/app/(withAuth)/dashboard/inquiry-privacy/city-admin/zamin-gov/page.js b/src/app/(withAuth)/dashboard/inquiry-privacy/city-admin/zamin-gov/page.js index 2a45828..7293246 100644 --- a/src/app/(withAuth)/dashboard/inquiry-privacy/city-admin/zamin-gov/page.js +++ b/src/app/(withAuth)/dashboard/inquiry-privacy/city-admin/zamin-gov/page.js @@ -1,7 +1,12 @@ import CityAdminZaminGovComponent from "@/components/dashboard/inquiryPrivacy/cityAdmin/zaminGov"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return ; + return ( + + + + ); }; export default Page; diff --git a/src/app/(withAuth)/dashboard/inquiry-privacy/general-manager/zamin-gov/page.js b/src/app/(withAuth)/dashboard/inquiry-privacy/general-manager/zamin-gov/page.js index 6c02a17..9cb8045 100644 --- a/src/app/(withAuth)/dashboard/inquiry-privacy/general-manager/zamin-gov/page.js +++ b/src/app/(withAuth)/dashboard/inquiry-privacy/general-manager/zamin-gov/page.js @@ -1,7 +1,12 @@ import GeneralManagerZaminGovComponent from "@/components/dashboard/inquiryPrivacy/generalManager/zaminGov"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return ; + return ( + + + + ); }; export default Page; diff --git a/src/app/(withAuth)/dashboard/inquiry-privacy/province-admin/zamin-gov/page.js b/src/app/(withAuth)/dashboard/inquiry-privacy/province-admin/zamin-gov/page.js index 735cd2c..e327c74 100644 --- a/src/app/(withAuth)/dashboard/inquiry-privacy/province-admin/zamin-gov/page.js +++ b/src/app/(withAuth)/dashboard/inquiry-privacy/province-admin/zamin-gov/page.js @@ -1,7 +1,12 @@ import ProvinceAdminZaminGovComponent from "@/components/dashboard/inquiryPrivacy/provinceAdmin/zaminGov"; +import WithPermission from "@/core/middlewares/withPermission"; const Page = () => { - return ; + return ( + + + + ); }; export default Page; diff --git a/src/components/dashboard/inquiryPrivacyFencing/Actions/Create/index.jsx b/src/components/dashboard/inquiryPrivacyFencing/Actions/Create/index.jsx deleted file mode 100644 index a564394..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/Actions/Create/index.jsx +++ /dev/null @@ -1,55 +0,0 @@ -"use client"; -import DialogTransition from "@/core/components/DialogTransition"; -import { AddCircle, Close } from "@mui/icons-material"; -import { Button, Dialog, DialogTitle, IconButton, useMediaQuery } from "@mui/material"; -import CreateOrUpdateForm from "../../Forms/CreateOrUpdate"; -import { SET_INQUIRE_PRIVACY_FENCING } from "@/core/utils/routes"; -import { useState } from "react"; -import { useTheme } from "@emotion/react"; - -const InquiryPrivacyFencingCreate = ({ mutate }) => { - const theme = useTheme(); - const isMobile = useMediaQuery(theme.breakpoints.down("sm")); - const [open, setOpen] = useState(false); - - const handleOpen = () => { - setOpen(true); - }; - - const handleClose = () => { - setOpen(false); - }; - - return ( - <> - {isMobile ? ( - - - - ) : ( - - )} - - - ایجاد پاسخ به استعلام - - theme.palette.grey[500], - }} - > - - - - - - ); -}; -export default InquiryPrivacyFencingCreate; diff --git a/src/components/dashboard/inquiryPrivacyFencing/Forms/CreateOrUpdate.jsx b/src/components/dashboard/inquiryPrivacyFencing/Forms/CreateOrUpdate.jsx deleted file mode 100644 index f3483ae..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/Forms/CreateOrUpdate.jsx +++ /dev/null @@ -1,869 +0,0 @@ -import LtrTextField from "@/core/components/LtrTextField"; -import StyledForm from "@/core/components/StyledForm"; -import useRequest from "@/lib/hooks/useRequest"; -import { - Autocomplete, - Box, - Button, - Chip, - Container, - DialogActions, - DialogContent, - Fade, - Grid, - InputAdornment, - Stack, - TextField, - Typography, -} from "@mui/material"; -import { DatePicker, LocalizationProvider, faIR } from "@mui/x-date-pickers"; -import { AdapterDateFnsJalali } from "@mui/x-date-pickers/AdapterDateFnsJalali"; -import moment from "jalali-moment"; -import { Controller, useForm } from "react-hook-form"; -import LocationOnMap from "./LocationOnMap"; - -const initValues = { - dabirkhaneh_number: "", - nameh_date: moment(), - nameh_date_fa: "", - marjae_pasokh: "", - motaghazi_is_legal_id: null, - motaghazi_is_legal: "", - motaghazi_type_id: "", - motaghazi_type: null, - motaghazi_firstname: "", - motaghazi_lastname: "", - national_id: "", - shenase_melli: "", - tel_number: "", - mobile_number: "", - address: "", - edare_kol_id: null, - edare_kol: "", - edare_shahri_id: null, - edare_shahri: "", - rah_type_id: null, - rah_type: "", - name_mehvar_id: "", - name_mehvar_fa: null, - mizan_harim: null, - arze_navar: null, - samt_id: null, - samt: "", - kilometr: "", - lat: "", - lon: "", - zone: null, - karbari_type_id: null, - karbari_type: "", - tarh_title: "", - masahat_zirbana: "", - ehdasat_type_id: [], - ehdasat_type: "", - divarkeshi_distance: "", - mostahadesat_distance: "", - mahale_ejra_id: null, - mahale_ejra: "", - traffic_id: null, - traffic: "", - vaziat_eghtesadi_id: null, - vaziat_eghtesadi: "", - has_access_id: null, - has_access: "", - shomare_estelam_harim: "", - max_month: "", - max_day: "", - shomare_tahaodname: "", - shomare_daftarkhaneh: "", - description: "", - ronevesht: "", -}; - -const CreateOrUpdateForm = ({ handleClose, mutate, defaultValues, url }) => { - const request = useRequest(); - const { - control, - watch, - register, - handleSubmit, - setValue, - formState: { isSubmitting }, - } = useForm({ defaultValues: defaultValues || initValues }); - - const onSubmit = async (data) => { - const formData = new FormData(); - formData.append("dabirkhaneh_number", data.dabirkhaneh_number); - formData.append("nameh_date", data.nameh_date.format("YYYY-MM-DD")); - formData.append("nameh_date_fa", data.nameh_date); - formData.append("marjae_pasokh", data.marjae_pasokh); - formData.append("motaghazi_is_legal_id", data.motaghazi_is_legal_id); - formData.append("motaghazi_is_legal", data.motaghazi_is_legal_id); - formData.append("motaghazi_type_id", 1); - formData.append("motaghazi_type", data.motaghazi_type); - formData.append("motaghazi_firstname", data.motaghazi_firstname); - formData.append("motaghazi_lastname", data.motaghazi_lastname); - formData.append("national_id", data.national_id); - formData.append("shenase_melli", data.national_id); - formData.append("tel_number", data.tel_number); - formData.append("mobile_number", data.mobile_number); - formData.append("address", data.address); - formData.append("edare_kol_id", data.edare_kol_id); - formData.append("edare_kol", data.edare_kol_id); - formData.append("edare_shahri_id", data.edare_shahri_id); - formData.append("edare_shahri", data.edare_shahri_id); - formData.append("rah_type_id", data.rah_type_id); - formData.append("rah_type", data.rah_type_id); - formData.append("name_mehvar_id", 1); - formData.append("name_mehvar_fa", data.name_mehvar_fa); - formData.append("mizan_harim", data.mizan_harim); - formData.append("arze_navar", data.arze_navar); - formData.append("samt_id", data.samt_id); - formData.append("samt", data.samt_id); - formData.append("kilometr", data.kilometr); - formData.append("lat", data.lat); - formData.append("lon", data.lon); - formData.append("zone", data.zone); - formData.append("karbari_type_id", data.karbari_type_id); - formData.append("karbari_type", data.karbari_type_id); - formData.append("tarh_title", data.tarh_title); - formData.append("masahat_zirbana", data.masahat_zirbana); - formData.append("ehdasat_type_id", data.ehdasat_type_id.join("|")); - formData.append("ehdasat_type", data.ehdasat_type_id.join("|")); - formData.append("divarkeshi_distance", data.divarkeshi_distance); - formData.append("mostahadesat_distance", data.mostahadesat_distance); - formData.append("mahale_ejra_id", data.mahale_ejra_id); - formData.append("mahale_ejra", data.mahale_ejra); - formData.append("traffic_id", data.traffic_id); - formData.append("traffic", data.traffic_id); - formData.append("vaziat_eghtesadi_id", data.vaziat_eghtesadi_id); - formData.append("vaziat_eghtesadi", data.vaziat_eghtesadi); - formData.append("has_access_id", data.has_access_id); - formData.append("has_access", data.has_access_id); - formData.append("shomare_estelam_harim", data.shomare_estelam_harim); - formData.append("max_month", data.max_month); - formData.append("max_day", data.max_day); - formData.append("shomare_tahaodname", data.shomare_tahaodname); - formData.append("shomare_daftarkhaneh", data.shomare_daftarkhaneh); - formData.append("description", data.description); - formData.append("ronevesht", data.ronevesht); - - try { - await request(url, "post", { data: formData }); - handleClose(); - mutate(); - } catch (error) {} - }; - - return ( - - - - - - - - - - ( - onChange(moment(newValue))} - label="تاریخ نامه درخواست *" - slotProps={{ - textField: { fullWidth: true, size: "small", autoComplete: "off" }, - }} - /> - )} - /> - - - - - - ( - { - onChange(newValue); - }} - options={["حقوقی", "حقیقی"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - ( - { - onChange(newValue); - }} - options={["دولتی", "خصوصی"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - - - - - - - - - - - - - - - - - - - - - - - - ( - { - onChange(newValue); - }} - options={["تهران"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["تهران"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["آزاد راه", "بزرگراه", "راه فرعی درجه 3"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["سایر"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - - - - ( - { - onChange(newValue); - }} - options={["چپ", "راست"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["12.5", "17.5"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - ( - { - onChange(newValue); - }} - options={["15", "30"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - - - - - - - - - - ( - { - onChange(newValue); - }} - options={["38", "39"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - ( - { - onChange(newValue); - }} - options={["اتاقک نگهبانی", "دولتی"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - - مترمربع, - }} - /> - - - ( - { - onChange(newValue); - }} - renderTags={(value, getTagProps) => - value.map((option, index) => { - const { key, ...tagProps } = getTagProps({ index }); - return ( - - ); - }) - } - options={["تعمیرات", "احداث بنا"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - متر, - }} - /> - - - متر, - }} - /> - - - ( - { - onChange(newValue); - }} - options={["داخل حریم"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["سبک (ضریب ۱)"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["تست"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - ( - { - onChange(newValue); - }} - options={["بله", "خیر"]} - renderInput={(params) => ( - - )} - /> - )} - /> - - - - - - - - حداکثر مدت زمان شروع عملیات: * - - - - - - - - - - - - - - - - - - - - - - - - - - - - ); -}; -export default CreateOrUpdateForm; diff --git a/src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/MarkerLocation/index.jsx b/src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/MarkerLocation/index.jsx deleted file mode 100644 index c79c266..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/MarkerLocation/index.jsx +++ /dev/null @@ -1,37 +0,0 @@ -import { useRef } from "react"; -import { Marker, useMapEvents } from "react-leaflet"; -import LocationMarker from "@/assets/images/locationMarker.png"; - -const locationMarker = L.icon({ - iconUrl: LocationMarker.src, - iconSize: [50, 50], - iconAnchor: [25, 50], -}); - -const MarkerLocation = ({ setValue, defaultLatLon }) => { - const location = useRef(); - const map = useMapEvents({ - move: (e) => { - const latlon = e.target.getCenter(); - location.current?.setLatLng(latlon); - setValue("lat", latlon.lat); - setValue("lon", latlon.lng); - }, - zoom: (e) => { - const latlon = e.target.getCenter(); - location.current?.setLatLng(latlon); - setValue("lat", latlon.lat); - setValue("lon", latlon.lng); - }, - }); - - return ( - - ); -}; -export default MarkerLocation; diff --git a/src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/index.jsx b/src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/index.jsx deleted file mode 100644 index dfd8854..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/Forms/LocationOnMap/index.jsx +++ /dev/null @@ -1,22 +0,0 @@ -import MapLoading from "@/core/components/MapLayer/Loading"; -import { Paper, Stack } from "@mui/material"; -import dynamic from "next/dynamic"; -import MarkerLocation from "./MarkerLocation"; - -const MapLayer = dynamic(() => import("@/core/components/MapLayer"), { - loading: () => , - ssr: false, -}); - -const LocationOnMap = ({ setValue, defaultLatLon }) => { - return ( - - - - - - - - ); -}; -export default LocationOnMap; diff --git a/src/components/dashboard/inquiryPrivacyFencing/Toolbar.jsx b/src/components/dashboard/inquiryPrivacyFencing/Toolbar.jsx deleted file mode 100644 index 843492b..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/Toolbar.jsx +++ /dev/null @@ -1,10 +0,0 @@ -import InquiryPrivacyFencingCreate from "./Actions/Create"; - -const Toolbar = ({ mutate }) => { - return ( - <> - - - ); -}; -export default Toolbar; diff --git a/src/components/dashboard/inquiryPrivacyFencing/index.jsx b/src/components/dashboard/inquiryPrivacyFencing/index.jsx deleted file mode 100644 index 794be55..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/index.jsx +++ /dev/null @@ -1,15 +0,0 @@ -"use client"; - -import PageTitle from "@/core/components/PageTitle"; -import InquiryPrivacyFencingList from "./inquiryPrivacyFencingList"; -import { Stack } from "@mui/material"; - -const InquiryPrivacyFencingPage = () => { - return ( - - - - - ); -}; -export default InquiryPrivacyFencingPage; diff --git a/src/components/dashboard/inquiryPrivacyFencing/inquiryPrivacyFencingList/index.jsx b/src/components/dashboard/inquiryPrivacyFencing/inquiryPrivacyFencingList/index.jsx deleted file mode 100644 index 24871ed..0000000 --- a/src/components/dashboard/inquiryPrivacyFencing/inquiryPrivacyFencingList/index.jsx +++ /dev/null @@ -1,254 +0,0 @@ -"use client"; - -import { useMemo } from "react"; -import Toolbar from "@/components/dashboard/inquiryPrivacyFencing/Toolbar"; -import DataTable from "@/core/components/DataTable"; -import { GET_INQUIRY_PRIVACY_FENCING_ROUTE } from "@/core/utils/routes"; -import { Box } from "@mui/material"; -import PageTitle from "@/core/components/PageTitle"; - -const InquiryPrivacyFencingList = () => { - const columns = useMemo( - () => [ - { - accessorKey: "dabirkhaneh_number", - header: "شماره دبیرخانه درخواست", - id: "dabirkhaneh_number", - enableColumnFilter: false, - datatype: "text", - filterFn: "notEquals", - }, - { - accessorKey: "marjae_pasokh", - header: "مرجع درخواست کننده پاسخ به استعلام", - id: "marjae_pasokh", - enableColumnFilter: false, - datatype: "text", - filterFn: "equals", - }, - { - accessorKey: "motaghazi_is_legal", - header: "متقاضی", - id: "motaghazi_is_legal", - enableColumnFilter: false, - }, - { - accessorKey: "nameh_date", - header: "تاریخ نامه درخواست", - id: "nameh_date", - enableColumnFilter: false, - }, - { - accessorKey: "motaghazi_type", - header: "نوع متقاضی", - id: "motaghazi_type", - enableColumnFilter: false, - }, - { - accessorKey: "motaghazi_firstname", - header: "نام متقاضی", - id: "motaghazi_firstname", - enableColumnFilter: false, - }, - { - accessorKey: "motaghazi_lastname", - header: "نام خانوادگی متقاضی", - id: "motaghazi_lastname", - enableColumnFilter: false, - }, - { - accessorKey: "national_id", - header: "کد ملی/شناسه ملی", - id: "national_id", - enableColumnFilter: false, - }, - { - accessorKey: "tel_number", - header: "تلفن", - id: "tel_number", - enableColumnFilter: false, - }, - { - accessorKey: "mobile_number", - header: "تلفن همراه", - id: "mobile_number", - enableColumnFilter: false, - }, - { - accessorKey: "address", - header: "آدرس", - id: "address", - enableColumnFilter: false, - }, - { - accessorKey: "edare_kol", - header: "اداره كل راهداری", - id: "edare_kol", - enableColumnFilter: false, - }, - { - accessorKey: "edare_shahri", - header: "اداره شهرستان", - id: "edare_shahri", - enableColumnFilter: false, - }, - { - accessorKey: "rah_type", - header: "نوع راه", - id: "rah_type", - enableColumnFilter: false, - }, - { - accessorKey: "name_mehvar_fa", - header: "نام محور", - id: "name_mehvar_fa", - enableColumnFilter: false, - }, - { - accessorKey: "mizan_harim", - header: "میزان حریم", - id: "mizan_harim", - enableColumnFilter: false, - }, - { - accessorKey: "arze_navar", - header: "عرض نوار تاسیساتی زیربنایی", - id: "arze_navar", - enableColumnFilter: false, - }, - { - accessorKey: "samt", - header: "سمت", - id: "samt", - enableColumnFilter: false, - }, - { - accessorKey: "kilometr", - header: "كيلومتر", - id: "kilometr", - enableColumnFilter: false, - }, - { - accessorKey: "zone", - header: "zone", - id: "zone", - enableColumnFilter: false, - }, - { - accessorKey: "karbari_type", - header: "نوع کاربری", - id: "karbari_type", - enableColumnFilter: false, - }, - { - accessorKey: "tarh_title", - header: "عنوان طرح", - id: "tarh_title", - enableColumnFilter: false, - }, - { - accessorKey: "masahat_zirbana", - header: "مساحت زیربنا", - id: "masahat_zirbana", - enableColumnFilter: false, - }, - { - accessorKey: "ehdasat_type", - header: "نوع احداثات", - id: "ehdasat_type", - enableColumnFilter: false, - }, - { - accessorKey: "divarkeshi_distance", - header: "فاصله دیوارکشی از آکس محور", - id: "divarkeshi_distance", - enableColumnFilter: false, - }, - { - accessorKey: "mahale_ejra", - header: "محل اجرا", - id: "mahale_ejra", - enableColumnFilter: false, - }, - { - accessorKey: "traffic", - header: "میزان ترافیک", - id: "traffic", - enableColumnFilter: false, - }, - { - accessorKey: "vaziat_eghtesadi", - header: "وضعیت اقتصادی", - id: "vaziat_eghtesadi", - enableColumnFilter: false, - }, - { - accessorKey: "has_access", - header: "آیا راه دسترسی از قبل وجود دارد؟", - id: "has_access", - enableColumnFilter: false, - }, - { - accessorKey: "shomare_estelam_harim", - header: "شماره استعلام دفتر ایمنی و حریم", - id: "shomare_estelam_harim", - enableColumnFilter: false, - }, - { - accessorKey: "max_month", - header: "ماه", - id: "max_month", - enableColumnFilter: false, - }, - { - accessorKey: "max_day", - header: "روز", - id: "max_day", - enableColumnFilter: false, - }, - { - accessorKey: "shomare_tahaodname", - header: "شماره تعهدنامه", - id: "shomare_tahaodname", - enableColumnFilter: false, - }, - { - accessorKey: "shomare_daftarkhaneh", - header: "شماره دفترخانه", - id: "shomare_daftarkhaneh", - enableColumnFilter: false, - }, - { - accessorKey: "description", - header: "توضیحات", - id: "description", - enableColumnFilter: false, - }, - { - accessorKey: "ronevesht", - header: "رونوشت", - id: "ronevesht", - enableColumnFilter: false, - }, - ], - [] - ); - - return ( - <> - - - - - ); -}; -export default InquiryPrivacyFencingList; diff --git a/src/core/components/Profile/Update/Form.jsx b/src/core/components/Profile/Update/Form.jsx index d6f8dd9..c34561d 100644 --- a/src/core/components/Profile/Update/Form.jsx +++ b/src/core/components/Profile/Update/Form.jsx @@ -151,11 +151,7 @@ const Form = ({ handleCloseForm, setLoading }) => { - + diff --git a/src/core/middlewares/withPermission.js b/src/core/middlewares/withPermission.js new file mode 100644 index 0000000..c6e3661 --- /dev/null +++ b/src/core/middlewares/withPermission.js @@ -0,0 +1,29 @@ +"use client"; + +import { Box, Typography } from "@mui/material"; +import { usePermissions } from "@/lib/hooks/usePermissions"; + +function WithPermission({ children, permission_name }) { + const { data, error, isLoading } = usePermissions(); + + if (error || isLoading || !data || !permission_name) { + return null; + } + + const hasPermission = + permission_name.includes("all") || permission_name.some((permission) => data.includes(permission)); + + if (!hasPermission) { + return ( + + + شما دسترسی لازم به این صفحه را ندارید + + + ); + } + + return <>{children}; +} + +export default WithPermission; diff --git a/src/core/utils/pageMenu.js b/src/core/utils/pageMenu.js index a38de2b..ccc70d3 100644 --- a/src/core/utils/pageMenu.js +++ b/src/core/utils/pageMenu.js @@ -255,28 +255,28 @@ export const pageMenu = [ label: "استعلام حرائم پنجره واحد", type: "page", route: "/dashboard/inquiry-privacy/city-admin/zamin-gov", - permissions: ["all"], + permissions: [], }, { id: "provinceAdminZaminGov", label: "استعلام حرائم پنجره واحد", type: "page", route: "/dashboard/inquiry-privacy/province-admin/zamin-gov", - permissions: ["all"], + permissions: [], }, { id: "assistantZaminGov", label: "استعلام حرائم پنجره واحد", type: "page", route: "/dashboard/inquiry-privacy/assistant/zamin-gov", - permissions: ["all"], + permissions: [], }, { id: "generalManagerZaminGov", label: "استعلام حرائم پنجره واحد", type: "page", route: "/dashboard/inquiry-privacy/general-manager/zamin-gov", - permissions: ["all"], + permissions: [], }, ], },