mirror of
https://github.com/fastogt/fastocloud_admin.git
synced 2025-03-09 23:38:52 +00:00
35 lines
1 KiB
Python
35 lines
1 KiB
Python
from flask import session
|
|
from flask_login import UserMixin, login_user, logout_user
|
|
|
|
from app.common.provider.entry import Provider
|
|
|
|
SERVER_POSITION_SESSION_FIELD = 'server_position'
|
|
|
|
|
|
def login_user_wrap(user):
|
|
login_user(user)
|
|
user.set_current_server_position(0)
|
|
|
|
|
|
class ProviderUser(UserMixin, Provider):
|
|
def logout(self):
|
|
session.pop(SERVER_POSITION_SESSION_FIELD)
|
|
logout_user()
|
|
|
|
def set_current_server_position(self, pos: int):
|
|
session[SERVER_POSITION_SESSION_FIELD] = pos
|
|
|
|
def get_current_server(self):
|
|
if not self.servers:
|
|
return None
|
|
|
|
server_settings = self.servers[session[SERVER_POSITION_SESSION_FIELD]]
|
|
if server_settings:
|
|
from app import servers_manager
|
|
return servers_manager.find_or_create_server(server_settings)
|
|
|
|
return None
|
|
|
|
@classmethod
|
|
def make_provider(cls, email: str, password: str, country: str):
|
|
return cls(email=email, password=Provider.generate_password_hash(password), country=country)
|