Initial Commit für das Grundgerüst der Anwendung, bestehend aus der Dev-Container Konfiguration, der Docker und docker-Compose Definitionen sowie der Verzeichnisse App_Server für die Backend-Programme sowie Client für die browserseitigen GUI-Komponenten

This commit is contained in:
gg committed 2026-08-17 16:10:11 +02:00
1 parent 10549934ea
commit 1ba78992a6
63 files changed
+5410

No files matched your search

+50
View File
@@ -0,0 +1,50 @@
from . import SYS_ADMIN, Application, Role, dbauth, User
from sqlalchemy.sql import collate
from flask_login import current_user
from .errors import AutorisationError
session = dbauth.session
def get_roles():
roles = Role.query.order_by(collate(Role.roleid, 'NOCASE')).all()
return roles
def updaterole(data):
if not current_user.is_SysAdmin():
raise AutorisationError(allowed_roles=[SYS_ADMIN], user_roles=None)
currentrole = None
if data["id"] == -1:
currentrole = Role()
currentrole.id = None
session.add(currentrole)
else:
currentrole = Role.query.get(data["id"])
if currentrole is None:
raise Exception ("404")
currentrole.level = data["level"]
currentrole.name = data["name"]
currentrole.roleid = data["roleid"]
currentrole.beschreibung = data["beschreibung"]
session.commit()
def deleteroles(roleids):
if not current_user.is_SysAdmin():
raise AutorisationError(allowed_roles=[SYS_ADMIN], user_roles=None)
for roleid in roleids:
role: Role = Role.query.filter(Role.roleid == roleid).one()
if role is not None:
appq = Application.query
for app in appq:
if role in app.roles:
app.roles.remove(role) # remove kann hier einfach so verwendet werden, da nicht über app.roles iteriert wird
userq = User.query
for user in userq:
for userapp in user.userapps:
if role in userapp.userapp_roles:
userapp.userapp_roles.remove(role) # remove kann hier einfach so verwendet werden, da nicht über userapp_roles iteriert wird
session.delete(role)
session.commit()