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:
1 parent
10549934ea
commit
1ba78992a6
63 files changed
+5410
No files matched your search
@@ -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()
|
||||
|
||||
|
||||
|
||||
Reference in new issue
Block a user