Control de modo editor/admin produccion/local
This commit is contained in:
24
mcp-server/tools/helpers/roleCheck.js
Normal file
24
mcp-server/tools/helpers/roleCheck.js
Normal file
@@ -0,0 +1,24 @@
|
||||
/**
|
||||
* Helper central para determinar el rol efectivo del MCP y bloquear tools
|
||||
* peligrosas cuando el user es "editor".
|
||||
*
|
||||
* El rol se recibe principalmente via env var ACAI_ROLE_OVERRIDE inyectada
|
||||
* por el backend Python (agentic.py y cronjobs.py). Hay autoderivacion
|
||||
* defensiva en caso de que alguien lance el MCP sin el override:
|
||||
* - Si ACAI_MODE(_OVERRIDE) = "production" → rol editor por defecto.
|
||||
* - Si no → rol developer.
|
||||
*/
|
||||
export function getEffectiveRole() {
|
||||
if (process.env.ACAI_ROLE_OVERRIDE) return process.env.ACAI_ROLE_OVERRIDE;
|
||||
if (process.env.ACAI_MODE_OVERRIDE === "production") return "editor";
|
||||
if (process.env.ACAI_MODE === "production") return "editor";
|
||||
return "developer";
|
||||
}
|
||||
|
||||
/**
|
||||
* True si el rol efectivo puede editar archivos de codigo.
|
||||
* Los roles permitidos son todo lo que NO sea "editor".
|
||||
*/
|
||||
export function canEditCode() {
|
||||
return getEffectiveRole() !== "editor";
|
||||
}
|
||||
Reference in New Issue
Block a user