updated structure

This commit is contained in:
ske087
2025-12-13 14:52:37 +02:00
parent 1a3e26d86d
commit e6193511e0
81 changed files with 0 additions and 10745 deletions

View File

@@ -0,0 +1,29 @@
#!/usr/bin/env python3
import pymysql
try:
# Connect to the database
conn = pymysql.connect(
host='localhost',
database='trasabilitate',
user='trasabilitate',
password='Initial01!',
cursorclass=pymysql.cursors.DictCursor
)
with conn.cursor() as cursor:
cursor.execute("SELECT id, username, role, modules FROM users")
users = cursor.fetchall()
print("Current users in database:")
print("-" * 50)
for user in users:
print(f"ID: {user['id']}")
print(f"Username: {user['username']}")
print(f"Role: {user['role']}")
print(f"Modules: {user['modules']}")
print("-" * 30)
finally:
conn.close()

View File

@@ -0,0 +1,43 @@
#!/usr/bin/env python3
import pymysql
import json
try:
# Connect to the database
conn = pymysql.connect(
host='localhost',
database='trasabilitate',
user='trasabilitate',
password='Initial01!',
cursorclass=pymysql.cursors.DictCursor
)
with conn.cursor() as cursor:
cursor.execute("SELECT id, username, role, modules FROM users")
users = cursor.fetchall()
print("Debug: User data and get_modules() output:")
print("=" * 60)
for user_data in users:
print(f"Username: {user_data['username']}")
print(f"Role: {user_data['role']}")
print(f"Raw modules: {user_data['modules']} (type: {type(user_data['modules'])})")
# Simulate the get_modules() method
modules = user_data['modules']
if not modules:
parsed_modules = []
else:
try:
parsed_modules = json.loads(modules)
except:
parsed_modules = []
print(f"Parsed modules: {parsed_modules} (type: {type(parsed_modules)})")
print(f"JSON output: {json.dumps(parsed_modules)}")
print("-" * 40)
finally:
conn.close()

View File

@@ -0,0 +1,44 @@
#!/usr/bin/env python3
import pymysql
import json
try:
# Connect to the database
conn = pymysql.connect(
host='localhost',
database='trasabilitate',
user='trasabilitate',
password='Initial01!',
cursorclass=pymysql.cursors.DictCursor
)
with conn.cursor() as cursor:
# Update Ciprian's role from quality_manager to manager
print("Updating Ciprian's role from 'quality_manager' to 'manager'...")
cursor.execute("UPDATE users SET role = 'manager' WHERE username = 'Ciprian'")
# Assign quality module to Ciprian since he was a quality manager
quality_modules = json.dumps(['quality'])
print(f"Assigning quality module to Ciprian: {quality_modules}")
cursor.execute("UPDATE users SET modules = %s WHERE username = 'Ciprian'", (quality_modules,))
# Commit the changes
conn.commit()
print("Database updated successfully!")
# Show updated users
print("\nUpdated users:")
print("-" * 50)
cursor.execute("SELECT id, username, role, modules FROM users")
users = cursor.fetchall()
for user in users:
print(f"ID: {user['id']}")
print(f"Username: {user['username']}")
print(f"Role: {user['role']}")
print(f"Modules: {user['modules']}")
print("-" * 30)
finally:
conn.close()

View File

@@ -0,0 +1,73 @@
#!/usr/bin/env python3
import pymysql
import json
def test_login_data():
try:
# Connect to the database
conn = pymysql.connect(
host='localhost',
database='trasabilitate',
user='trasabilitate',
password='Initial01!',
cursorclass=pymysql.cursors.DictCursor
)
with conn.cursor() as cursor:
# Simulate login for Ciprian
cursor.execute("SELECT username, password, role, modules FROM users WHERE username = 'Ciprian'")
user = cursor.fetchone()
if user:
print("Ciprian's database record:")
print(f"Username: {user['username']}")
print(f"Role: {user['role']}")
print(f"Raw modules: {user['modules']}")
# Simulate what happens in login
user_modules = []
if user['modules']:
try:
user_modules = json.loads(user['modules'])
print(f"Parsed modules: {user_modules}")
except Exception as e:
print(f"Error parsing modules: {e}")
user_modules = []
# Check if user should have quality access
has_quality = 'quality' in user_modules
print(f"Has quality module access: {has_quality}")
# Check role level
ROLES = {
'superadmin': {'level': 100},
'admin': {'level': 90},
'manager': {'level': 70},
'worker': {'level': 50}
}
user_level = ROLES.get(user['role'], {}).get('level', 0)
print(f"Role level: {user_level}")
# Test access control logic
print("\nAccess Control Test:")
print(f"Required modules: ['quality']")
print(f"User role: {user['role']}")
print(f"User modules: {user_modules}")
if user['role'] in ['superadmin', 'admin']:
print("✅ Access granted: Superadmin/Admin has access to all modules")
elif any(module in user_modules for module in ['quality']):
print("✅ Access granted: User has required quality module")
else:
print("❌ Access denied: User does not have quality module")
else:
print("User 'Ciprian' not found!")
finally:
conn.close()
if __name__ == "__main__":
test_login_data()

View File

@@ -0,0 +1,49 @@
#!/usr/bin/env python3
"""
Quick test for updated worker permissions
"""
import sys
import os
sys.path.insert(0, os.path.join(os.path.dirname(__file__), 'app'))
from permissions_simple import validate_user_modules
def test_worker_multiple_modules():
"""Test that workers can now have multiple modules"""
print("Testing Updated Worker Module Permissions")
print("=" * 45)
test_cases = [
# (role, modules, expected_result, description)
('worker', ['quality'], True, "Worker with quality module"),
('worker', ['warehouse'], True, "Worker with warehouse module"),
('worker', ['quality', 'warehouse'], True, "Worker with multiple modules (NEW)"),
('worker', ['quality', 'warehouse', 'labels'], True, "Worker with all modules (NEW)"),
('worker', [], False, "Worker with no modules"),
('manager', ['quality', 'warehouse'], True, "Manager with multiple modules"),
]
passed = 0
failed = 0
for role, modules, expected, description in test_cases:
is_valid, error_msg = validate_user_modules(role, modules)
status = "PASS" if is_valid == expected else "FAIL"
print(f"{status}: {description}")
print(f" Role: {role}, Modules: {modules} -> {is_valid} (expected {expected})")
if error_msg:
print(f" Error: {error_msg}")
print()
if is_valid == expected:
passed += 1
else:
failed += 1
print(f"Results: {passed} passed, {failed} failed")
print("\n✅ Workers can now have multiple modules!" if failed == 0 else "❌ Some tests failed")
if __name__ == "__main__":
test_worker_multiple_modules()