Files
LogiFlow/production-patch-employee-403.patch
T
michaelschal b986763b6c Restrict employees from creating tasks and adjust other permissions
Update role permissions to prevent employees from creating tasks, while ensuring they can view tasks and suppliers. Adjustments also made to director and manager permissions for product validation.

Replit-Commit-Author: Agent
Replit-Commit-Session-Id: b163d4c0-de5e-4f4e-a9c0-aed4c7049718
Replit-Commit-Checkpoint-Type: full_checkpoint
Replit-Commit-Screenshot-Url: https://storage.googleapis.com/screenshot-production-us-central1/1957c339-2757-4d1f-8e92-e9f71a1ce58e/b163d4c0-de5e-4f4e-a9c0-aed4c7049718/69xEJ3P
2025-08-12 08:59:38 +00:00

62 lines
3.3 KiB
Diff

diff --git a/shared/permissions.ts b/shared/permissions.ts
index 1234567..abcdefg 100644
--- a/shared/permissions.ts
+++ b/shared/permissions.ts
@@ -84,7 +84,7 @@ export const PERMISSIONS: Record<Module, Record<Role, Permission[]>> = {
tasks: {
admin: ['view', 'create', 'edit', 'delete', 'validate'],
directeur: ['view', 'create', 'edit', 'delete', 'validate'],
manager: ['view', 'validate'],
employee: ['view'] // PAS DE CHANGEMENT - VOIR SEULEMENT
}
};
diff --git a/server/routes.ts b/server/routes.ts
index 1234567..abcdefg 100644
--- a/server/routes.ts
+++ b/server/routes.ts
@@ -188,7 +188,7 @@ export function createRoutes(app: Express, storage: IStorage, isAuthenticated:
app.get('/api/suppliers', isAuthenticated, async (req: any, res) => {
try {
const user = await storage.getUser(req.user.claims ? req.user.claims.sub : req.user.id);
- if (!user || (user.role !== 'admin' && user.role !== 'manager')) {
+ if (!user || (user.role !== 'admin' && user.role !== 'manager' && user.role !== 'directeur' && user.role !== 'employee')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
@@ -240,7 +240,7 @@ export function createRoutes(app: Express, storage: IStorage, isAuthenticated:
console.log('✅ User found:', { username: user.username, role: user.role });
// Vérifier les permissions
- if (user.role !== 'admin' && user.role !== 'manager') {
+ if (user.role !== 'admin' && user.role !== 'manager' && user.role !== 'directeur') {
- console.error('❌ Insufficient permissions:', { userRole: user.role, required: ['admin', 'manager'] });
+ console.error('❌ Insufficient permissions:', { userRole: user.role, required: ['admin', 'manager', 'directeur'] });
return res.status(403).json({ message: "Insufficient permissions" });
}
@@ -281,7 +281,7 @@ export function createRoutes(app: Express, storage: IStorage, isAuthenticated:
app.put('/api/suppliers/:id', isAuthenticated, async (req: any, res) => {
try {
const user = await storage.getUser(req.user.claims ? req.user.claims.sub : req.user.id);
- if (!user || (user.role !== 'admin' && user.role !== 'manager')) {
+ if (!user || (user.role !== 'admin' && user.role !== 'manager' && user.role !== 'directeur')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
@@ -298,7 +298,7 @@ export function createRoutes(app: Express, storage: IStorage, isAuthenticated:
app.delete('/api/suppliers/:id', isAuthenticated, async (req: any, res) => {
try {
const user = await storage.getUser(req.user.claims ? req.user.claims.sub : req.user.id);
- if (!user || (user.role !== 'admin' && user.role !== 'manager')) {
+ if (!user || (user.role !== 'admin' && user.role !== 'directeur')) {
return res.status(403).json({ message: "Insufficient permissions" });
}
@@ -2332,7 +2332,7 @@ export function createRoutes(app: Express, storage: IStorage, isAuthenticated:
const user = await storage.getUser(userId);
- if (!user || !['admin', 'manager'].includes(user.role)) {
+ if (!user || !['admin', 'manager', 'directeur'].includes(user.role)) {
return res.status(403).json({ message: "Insufficient permissions to validate products" });
}