Initial commit: Robot ökoszisztéma v2.0 - Stabilizált jármű és szerviz robotok
This commit is contained in:
1
code-server-config/data/User/History/-4c88f193/entries.json
Executable file
1
code-server-config/data/User/History/-4c88f193/entries.json
Executable file
@@ -0,0 +1 @@
|
||||
{"version":1,"resource":"vscode-remote://192.168.100.43:8443/home/coder/project/backend/update_permissions.py","entries":[{"id":"rXIc.py","timestamp":1768943765757}]}
|
||||
61
code-server-config/data/User/History/-4c88f193/rXIc.py
Executable file
61
code-server-config/data/User/History/-4c88f193/rXIc.py
Executable file
@@ -0,0 +1,61 @@
|
||||
import asyncio
|
||||
import os
|
||||
from sqlalchemy.ext.asyncio import create_async_engine
|
||||
from sqlalchemy import text
|
||||
from dotenv import load_dotenv
|
||||
|
||||
load_dotenv()
|
||||
|
||||
raw_url = os.getenv("DATABASE_URL")
|
||||
if not raw_url:
|
||||
raw_url = "postgresql://admin:PASSWORD_111@postgres-db:5432/service_finder"
|
||||
DATABASE_URL = raw_url.replace("postgresql://", "postgresql+asyncpg://").replace("/service_finder_db", "/service_finder")
|
||||
|
||||
async def upgrade_permissions():
|
||||
print(f"🔌 Kapcsolódás...")
|
||||
engine = create_async_engine(DATABASE_URL)
|
||||
|
||||
async with engine.begin() as conn:
|
||||
print("👑 USERS tábla bővítése (Rendszer és Szervezeti szintek)...")
|
||||
|
||||
# 1. SYS_ROLE: Rendszergazda / Moderátor / User
|
||||
await conn.execute(text("""
|
||||
ALTER TABLE data.users
|
||||
ADD COLUMN IF NOT EXISTS sys_role VARCHAR(20) DEFAULT 'USER';
|
||||
"""))
|
||||
|
||||
# 2. HIERARCHIA: Ki a főnököd? (Parent User ID)
|
||||
# Ha NULL, akkor ő a Cégtulajdonos (SuperUser). Ha van ID, akkor Alkalmazott.
|
||||
await conn.execute(text("""
|
||||
ALTER TABLE data.users
|
||||
ADD COLUMN IF NOT EXISTS parent_id INTEGER REFERENCES data.users(id);
|
||||
"""))
|
||||
|
||||
# 3. ORG_ROLE: Cégen belüli szerep (Owner, Fleet Manager, Employee)
|
||||
await conn.execute(text("""
|
||||
ALTER TABLE data.users
|
||||
ADD COLUMN IF NOT EXISTS org_role VARCHAR(20) DEFAULT 'OWNER';
|
||||
"""))
|
||||
|
||||
print("🚦 VEHICLE_HISTORY tábla bővítése (Sofőr jogosultságok)...")
|
||||
|
||||
# 4. ACCESS_LEVEL: Mit láthat a sofőr? (COST_MANAGER vs LOG_ONLY)
|
||||
await conn.execute(text("""
|
||||
ALTER TABLE data.vehicle_history
|
||||
ADD COLUMN IF NOT EXISTS access_level VARCHAR(20) DEFAULT 'FULL';
|
||||
-- Lehetséges értékek: 'FULL', 'COST_MANAGER', 'LOG_ONLY'
|
||||
"""))
|
||||
|
||||
# --- DEMO ADATOK FRISSÍTÉSE ---
|
||||
print("👤 Demo User (ID:1) kinevezése Rendszergazdának és Cégtulajdonosnak...")
|
||||
await conn.execute(text("""
|
||||
UPDATE data.users
|
||||
SET sys_role = 'SYS_ADMIN', org_role = 'OWNER', parent_id = NULL
|
||||
WHERE id = 1;
|
||||
"""))
|
||||
|
||||
print("✅ KÉSZ! A jogosultsági mátrix beépítve az adatbázisba.")
|
||||
await engine.dispose()
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(upgrade_permissions())
|
||||
Reference in New Issue
Block a user