updated structure
This commit is contained in:
29
old code/debug_scripts/check_users.py
Normal file
29
old code/debug_scripts/check_users.py
Normal 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()
|
||||
43
old code/debug_scripts/debug_modules.py
Normal file
43
old code/debug_scripts/debug_modules.py
Normal 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()
|
||||
44
old code/debug_scripts/fix_user_data.py
Normal file
44
old code/debug_scripts/fix_user_data.py
Normal 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()
|
||||
73
old code/debug_scripts/test_ciprian_access.py
Normal file
73
old code/debug_scripts/test_ciprian_access.py
Normal 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()
|
||||
49
old code/debug_scripts/test_worker_modules.py
Normal file
49
old code/debug_scripts/test_worker_modules.py
Normal 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()
|
||||
Reference in New Issue
Block a user