You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

43 lines
1.2 KiB

import glob
import sys
import yaml
from flask import Flask, request
from user import User
class LoToSa:
def __init__(self, app: Flask):
self.users = [
User(app, 'micke', 'Micke Nordin', 'hej@mic.ke', 'S3cr3t!')
]
def get_users(self):
return self.users
def login_user(self, username, password):
for user in self.users:
if user.get_id() == username and user.check_password(password):
user.set_authenticated(True)
user.set_active(True)
print(f'Logged in {user.get_id()}', file=sys.stderr)
return user
print(f'Login failed for {username}', file=sys.stderr)
return None
def get_i18n(self, request: request):
language_files = glob.glob("i18n/*.yaml")
languages = {}
for lang in language_files:
filename = lang.split('/')
lang_code = filename[1].split('.')[0]
with open(lang, 'r', encoding='utf8') as file:
languages[lang_code] = yaml.safe_load(file.read())
supported_languages = list(languages.keys())
user_language = request.accept_languages.best_match(
supported_languages)
return languages[user_language]