39 lines
936 B
Python
39 lines
936 B
Python
from pydantic import BaseModel
|
|
from fastapi import FastAPI
|
|
from app.authentik.api import Authentik
|
|
from app.authentik.models import User
|
|
from app.wekan.api import Wekan
|
|
from app.settings import AuthentikSettings
|
|
|
|
|
|
|
|
class Authentik_Hook_Model(BaseModel):
|
|
pk: str
|
|
app: str
|
|
name: str
|
|
model_name: str
|
|
|
|
|
|
class Http_request(BaseModel):
|
|
args: dict
|
|
path: str
|
|
method: str
|
|
|
|
authentikSettings = AuthentikSettings()
|
|
|
|
class Event_Controller:
|
|
|
|
def __init__(self):
|
|
self.jobs = []
|
|
pass
|
|
|
|
def register_api(self, authentik: Authentik, wekan: Wekan):
|
|
self.authentik = authentik
|
|
self.wekan = wekan
|
|
|
|
def handle_model_created_event(self, model: Authentik_Hook_Model):
|
|
user: User = self.authentik.get_user_by_pk(model.pk)
|
|
if not self.wekan.get_user(user.name):
|
|
self.wekan.create_user(username=user.username, email=user.email, password="")
|
|
return True
|