cleaning structure
This commit is contained in:
@@ -4,7 +4,47 @@ 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, administrator, quality, warehouse, scan
|
||||
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}>'
|
||||
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()
|
||||
Reference in New Issue
Block a user