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.

45 lines
1.3 KiB

import glob
import secrets
import sys
import yaml
from flask import Flask, request
from user import User
class LaToSa:
def __init__(self, app: Flask):
self.users = [
User(app, 'micke', 'Micke Nordin', 'hej@mic.ke', 'S3cr3t!',
secrets.token_hex(32))
]
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]