From 82ff5d1bcb8aa5a3feda5e7f94d71ba00d3a1a50 Mon Sep 17 00:00:00 2001 From: Salah Eddine Lalami <136928179+salahlalami@users.noreply.github.com> Date: Mon, 16 Mar 2026 18:21:13 +0100 Subject: [PATCH 1/4] Simplify vulnerability reporting section in SECURITY.md Removed duplicate reporting process for vulnerabilities via Huntr.dev. --- SECURITY.md | 16 ---------------- 1 file changed, 16 deletions(-) diff --git a/SECURITY.md b/SECURITY.md index fc8f79f40e..65720e41c3 100644 --- a/SECURITY.md +++ b/SECURITY.md @@ -29,23 +29,7 @@ This security policy covers the security of this repository and its code. If you 5. **Disclosure**: We will coordinate with you regarding the public disclosure of the vulnerability. We aim to release a security advisory with information about the issue and the fix. -6. **Credit**: If you report a vulnerability that is successfully fixed, we will credit you for your responsible disclosure in the security advisory unless you prefer to remain anonymous. -#### Option 2: Reporting via Huntr.dev - -Alternatively, you can report vulnerabilities through [Huntr.dev](https://huntr.dev). Follow these steps: - -1. **Submit Report**: Create a report for this repository on Huntr.dev, providing details of the vulnerability. Include a link to this repository in your report. - -2. **Confirmation**: We will be notified of your report on Huntr.dev and will acknowledge it within [X] business days. - -3. **Investigation**: We will investigate the issue, which may involve reproducing the vulnerability or seeking further information from you. - -4. **Resolution**: Once the vulnerability is confirmed, we will work to address it promptly and develop a fix. - -5. **Disclosure**: We will coordinate with you regarding the public disclosure of the vulnerability. We aim to release a security advisory with information about the issue and the fix. - -6. **Credit**: If you report a vulnerability that is successfully fixed, we will credit you for your responsible disclosure in the security advisory unless you prefer to remain anonymous. ### Safe Harbor From 5f59dce220b0655e9354617826e509b6a776dc93 Mon Sep 17 00:00:00 2001 From: Salah Eddine Lalami <136928179+salahlalami@users.noreply.github.com> Date: Tue, 28 Apr 2026 17:18:18 +0100 Subject: [PATCH 2/4] Change self-hosted enterprise link to new URL Updated the link for the self-hosted enterprise version in the README. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index a42b345cb5..94e92cf5f2 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ IDURAR is Open Source ERP / CRM (Invoice / Quote / Accounting ) Based on Advance -**🚀 Self-hosted Entreprise Version** : [https://cloud.idurarapp.com](https://cloud.idurarapp.com) +**🚀 Self-hosted Entreprise Version** : [https://www.idurarapp.com](https://www.idurarapp.com) @@ -94,7 +94,7 @@ IDURAR is Open "Fair-Code" Source ERP / CRM (Invoice / Inventory / Accounting / Dont forget to give a ⭐️ to this project ... Happy coding! -**🚀 Self-hosted Entreprise Version** : [https://cloud.idurarapp.com](https://cloud.idurarapp.com) +**🚀 Self-hosted Entreprise Version** : [https://www.idurarapp.com](https://www.idurarapp.com) ## License From 5b2cf28969dc9a720c3fca20f0d2c7606534b277 Mon Sep 17 00:00:00 2001 From: Salah Eddine Lalami <136928179+salahlalami@users.noreply.github.com> Date: Tue, 12 May 2026 13:32:31 +0100 Subject: [PATCH 3/4] Change self-hosted version link to cloud.idurarapp.com Updated the link for the self-hosted enterprise version of IDURAR. --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94e92cf5f2..a42b345cb5 100644 --- a/README.md +++ b/README.md @@ -16,7 +16,7 @@ IDURAR is Open Source ERP / CRM (Invoice / Quote / Accounting ) Based on Advance -**🚀 Self-hosted Entreprise Version** : [https://www.idurarapp.com](https://www.idurarapp.com) +**🚀 Self-hosted Entreprise Version** : [https://cloud.idurarapp.com](https://cloud.idurarapp.com) @@ -94,7 +94,7 @@ IDURAR is Open "Fair-Code" Source ERP / CRM (Invoice / Inventory / Accounting / Dont forget to give a ⭐️ to this project ... Happy coding! -**🚀 Self-hosted Entreprise Version** : [https://www.idurarapp.com](https://www.idurarapp.com) +**🚀 Self-hosted Entreprise Version** : [https://cloud.idurarapp.com](https://cloud.idurarapp.com) ## License From d51697b32143c887bad99e0f160ece8cd69e7daf Mon Sep 17 00:00:00 2001 From: Tushar Pandhare Date: Fri, 5 Jun 2026 04:56:41 +0530 Subject: [PATCH 4/4] fix: add missing PaymentMode and Taxes models and remove undefined routes - Added missing PaymentMode.js model required by setup.js - Added missing Taxes.js model required by setup.js - Removed undefined Quote, PaymentMode, Taxes route imports that caused app crash on fresh install Fixes #1456 Fixes #1457 --- backend/src/models/appModels/PaymentMode.js | 14 +++ backend/src/models/appModels/Taxes.js | 14 +++ frontend/src/router/routes.jsx | 98 +++++++++++---------- 3 files changed, 80 insertions(+), 46 deletions(-) create mode 100644 backend/src/models/appModels/PaymentMode.js create mode 100644 backend/src/models/appModels/Taxes.js diff --git a/backend/src/models/appModels/PaymentMode.js b/backend/src/models/appModels/PaymentMode.js new file mode 100644 index 0000000000..0dbe864840 --- /dev/null +++ b/backend/src/models/appModels/PaymentMode.js @@ -0,0 +1,14 @@ +const mongoose = require('mongoose'); + +const paymentModeSchema = new mongoose.Schema( + { + name: { type: String, required: true }, + description: { type: String }, + isDefault: { type: Boolean, default: false }, + enabled: { type: Boolean, default: true }, + removed: { type: Boolean, default: false }, + }, + { timestamps: true } +); + +module.exports = mongoose.model('PaymentMode', paymentModeSchema); \ No newline at end of file diff --git a/backend/src/models/appModels/Taxes.js b/backend/src/models/appModels/Taxes.js new file mode 100644 index 0000000000..e8f862e5f9 --- /dev/null +++ b/backend/src/models/appModels/Taxes.js @@ -0,0 +1,14 @@ +const mongoose = require('mongoose'); + +const taxesSchema = new mongoose.Schema( + { + taxName: { type: String, required: true }, + taxValue: { type: String, required: true }, + isDefault: { type: Boolean, default: false }, + enabled: { type: Boolean, default: true }, + removed: { type: Boolean, default: false }, + }, + { timestamps: true } +); + +module.exports = mongoose.model('Taxes', taxesSchema); \ No newline at end of file diff --git a/frontend/src/router/routes.jsx b/frontend/src/router/routes.jsx index f6ea58f92f..9e454e69ea 100644 --- a/frontend/src/router/routes.jsx +++ b/frontend/src/router/routes.jsx @@ -5,15 +5,21 @@ import { Navigate } from 'react-router-dom'; const Logout = lazy(() => import('@/pages/Logout.jsx')); const NotFound = lazy(() => import('@/pages/NotFound.jsx')); - const Customer = lazy(() => import('@/pages/Customer')); + const Invoice = lazy(() => import('@/pages/Invoice')); const InvoiceCreate = lazy(() => import('@/pages/Invoice/InvoiceCreate')); - const InvoiceRead = lazy(() => import('@/pages/Invoice/InvoiceRead')); const InvoiceUpdate = lazy(() => import('@/pages/Invoice/InvoiceUpdate')); const InvoiceRecordPayment = lazy(() => import('@/pages/Invoice/InvoiceRecordPayment')); +// const Quote = lazy(() => import('@/pages/Quote')); +// const QuoteCreate = lazy(() => import('@/pages/Quote/QuoteCreate')); +// const QuoteRead = lazy(() => import('@/pages/Quote/QuoteRead')); +// const QuoteUpdate = lazy(() => import('@/pages/Quote/QuoteUpdate')); + +// const PaymentMode = lazy(() => import('@/pages/PaymentMode')); +// const Taxes = lazy(() => import('@/pages/Taxes')); const Payment = lazy(() => import('@/pages/Payment/index')); const PaymentRead = lazy(() => import('@/pages/Payment/PaymentRead')); const PaymentUpdate = lazy(() => import('@/pages/Payment/PaymentUpdate')); @@ -69,51 +75,51 @@ let routes = { path: '/invoice/pay/:id', element: , }, - { - path: '/quote', - element: , - }, - { - path: '/quote/create', - element: , - }, - { - path: '/quote/read/:id', - element: , - }, - { - path: '/quote/update/:id', - element: , - }, - { - path: '/payment', - element: , - }, - { - path: '/payment/read/:id', - element: , - }, - { - path: '/payment/update/:id', - element: , - }, + // { + // path: '/quote', + // element: , + // }, + // { + // path: '/quote/create', + // element: , + // }, + // { + // path: '/quote/read/:id', + // element: , + // }, + // { + // path: '/quote/update/:id', + // element: , + // }, + // { + // path: '/payment', + // element: , + // }, + // { + // path: '/payment/read/:id', + // element: , + // }, + // { + // path: '/payment/update/:id', + // element: , + // }, - { - path: '/settings', - element: , - }, - { - path: '/settings/edit/:settingsKey', - element: , - }, - { - path: '/payment/mode', - element: , - }, - { - path: '/taxes', - element: , - }, + // { + // path: '/settings', + // element: , + // }, + // { + // path: '/settings/edit/:settingsKey', + // element: , + // }, + // { + // path: '/payment/mode', + // element: , + // }, + // { + // path: '/taxes', + // element: , + // }, { path: '/profile',