Files
quality_recticel/py_app/app/models.py
Quality System Admin 50c791e242 cleaning structure
2025-10-16 01:42:59 +03:00

50 lines
1.8 KiB
Python
Executable File

from . import db
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
username = db.Column(db.String(80), unique=True, nullable=False)
password = db.Column(db.String(120), nullable=False)
role = db.Column(db.String(20), nullable=False) # Role: superadmin, admin, manager, worker
modules = db.Column(db.Text, nullable=True) # JSON string of assigned modules: ["quality", "warehouse"]
def __repr__(self):
return f'<User {self.username}>'
def get_modules(self):
"""Get user's assigned modules as a list"""
if not self.modules:
return []
try:
import json
return json.loads(self.modules)
except:
return []
def set_modules(self, module_list):
"""Set user's assigned modules from a list"""
if not module_list:
self.modules = None
else:
import json
self.modules = json.dumps(module_list)
def add_module(self, module):
"""Add a module to user's assignments"""
current_modules = self.get_modules()
if module not in current_modules:
current_modules.append(module)
self.set_modules(current_modules)
def remove_module(self, module):
"""Remove a module from user's assignments"""
current_modules = self.get_modules()
if module in current_modules:
current_modules.remove(module)
self.set_modules(current_modules)
def has_module(self, module):
"""Check if user has access to a specific module"""
# Superadmin and admin have access to all modules
if self.role in ['superadmin', 'admin']:
return True
return module in self.get_modules()