Fix/duplicate function and auth#196
Merged
Nitya-003 merged 3 commits intoNitya-003:mainfrom Mar 8, 2026
Merged
Conversation
… missing batch controller functions - Fix nonce validation in walletLogin and walletRegister to prevent replay attacks * Always require stored nonce instead of falling back to constant string * Return 401 error if no nonce exists for the address - Add missing controller functions to batchController.js: * createBatch - handles batch creation with transaction support * getBatch - retrieves single batch by ID * getAllBatches - alias for getBatches (consistency) * updateBatch - handles batch updates with stage transitions * recallBatch - admin-only batch recall functionality - These functions prevent future import errors if routes are extracted from server.js
…in sync failures - Add comprehensive documentation in STAGE_CONSISTENCY_GUIDE.md * Explains critical importance of stage consistency across layers * Documents the 4-stage supply chain model (farmer, mandi, transport, retailer) * Provides step-by-step guide for making stage changes safely * Lists common mistakes and troubleshooting steps - Enhance backend/constants/stages.js with: * STAGE_TO_NUMBER mapping for blockchain contract compatibility * getStageNumber() function for safe string-to-enum conversion * validateStageMapping() function to verify consistency on startup * Detailed JSDoc comments explaining critical dependencies - Update blockchainWorker.js to use centralized stage mapping: * Import getStageNumber() from constants/stages.js * Replace hardcoded stageMap with centralized function * Eliminates duplication and prevents drift between layers - Add automatic validation in server.js: * Run validateStageMapping() on application startup * Exit immediately with clear error if mismatch detected * Prevents blockchain sync failures due to configuration errors This ensures that any future changes to stages will be caught at startup before they can cause blockchain synchronization issues or data corruption.
…ation check - Remove duplicate generateBatchId() in server.js (lines 313-337) * First implementation didn't support optional session parameter * Second implementation (kept) properly handles both with/without session * Eliminates code duplication and potential confusion - Add critical admin role check in updateBatchStatus() in batchController.js * Verify req.user.role === 'admin' before allowing status changes * Return 403 Forbidden error if user is not admin * Add security logging for audit trail of admin actions * Prevents unauthorized users from flagging/unflagging batches These fixes address: 1. Code quality issue with duplicate function definitions 2. Security vulnerability allowing any authenticated user to change batch status
❌ Deploy Preview for roaring-ganache-c7465f failed. Why did it fail? →
|
Contributor
Author
|
This change may be better classified as medium rather than easy. The fix required identifying and resolving duplicate generateBatchId() implementations in server.js, ensuring the correct version supports optional session handling, and adding a missing admin authorization check in updateBatchStatus() to prevent unauthorized status modifications. Please consider updating the label to medium. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Remove duplicate generateBatchId() in server.js (lines 313-337)
Add critical admin role check in updateBatchStatus() in batchController.js
These fixes address: