feature/migrations, closes #19 #20

Merged
crimsen merged 28 commits from feature/migrations into develop 2023-03-02 05:37:11 +00:00
1 changed files with 10 additions and 2 deletions
Showing only changes of commit a50ba403fc - Show all commits

View File

@ -1,6 +1,7 @@
import click import click
from flask import current_app from flask import current_app
from flask.cli import with_appcontext from flask.cli import with_appcontext
from werkzeug.exceptions import NotFound
@click.command(no_args_is_help=True) @click.command(no_args_is_help=True)
@ -13,8 +14,10 @@ def ldap(ctx, sync):
from flaschengeist.controller import userController from flaschengeist.controller import userController
from flaschengeist.plugins.auth_ldap import AuthLDAP from flaschengeist.plugins.auth_ldap import AuthLDAP
from ldap3 import SUBTREE from ldap3 import SUBTREE
from flaschengeist.models import User
from flaschengeist.database import db
auth_ldap: AuthLDAP = current_app.config.get("FG_AUTH_BACKEND") auth_ldap: AuthLDAP = current_app.config.get("FG_PLUGINS").get("auth_ldap")
if auth_ldap is None or not isinstance(auth_ldap, AuthLDAP): if auth_ldap is None or not isinstance(auth_ldap, AuthLDAP):
ctx.fail("auth_ldap plugin not found or not enabled!") ctx.fail("auth_ldap plugin not found or not enabled!")
conn = auth_ldap.ldap.connection conn = auth_ldap.ldap.connection
@ -24,4 +27,9 @@ def ldap(ctx, sync):
ldap_users_response = conn.response ldap_users_response = conn.response
for ldap_user in ldap_users_response: for ldap_user in ldap_users_response:
uid = ldap_user["attributes"]["uid"][0] uid = ldap_user["attributes"]["uid"][0]
userController.find_user(uid) try:
user = userController.get_user(uid)
except NotFound:
user = User(userid=uid)
db.session.add(user)
userController.update_user(user, auth_ldap)