Files

63 lines
2.3 KiB
Python

from tools import *
from AppBridge import *
from Utils.Lib import *
from Utils.Config import *
from Utils.Models import *
from Utils.Object import *
from Utils.Browser import *
class UGM:
def __init__(self):
pass
@staticmethod
def GetUserDataByUserUUID(UserUUID: UUIDObj) -> GERPUser:
if not UserUUID: return
return GERPUser.query.filter(GERPUser.UserUUID == UserUUID).first()
@staticmethod
def GetUserDataByUserName(UserName) -> GERPUser:
if not UserName: return
return GERPUser.query.filter(GERPUser.UserName == UserName).first()
@staticmethod
def GetUserAvatar(User: GERPUser) -> bytes:
if not User: return False
return GERPUserAvatar.query.filter(GERPUserAvatar.UserUUID == UUIDObj(User.UserUUID)).first()
@staticmethod
def CreateELT(User: GERPUser, MaxTime: int = 3600 * 24 * 30, Type: int = 0, AllowIP: list = None, Commit: bool = True) -> GERPUserELT:
ELTSession = GERPUserELT()
ELTSession.ELTUUID = UUIDObj(NewUUID())
ELTSession.ELTUserUUID = UUIDObj(User.UserUUID)
ELTSession.ELTCreatime = Timer.GetTime()
ELTSession.ELTEndTime = Timer.GetTime() + datetime.timedelta(seconds=MaxTime)
ELTSession.ELTType = Type
ELTSession.ELTAllowIP = AllowIP if AllowIP else [IP.GetIP()]
if Commit:
try:
db.session.add(ELTSession)
db.session.commit()
except:
traceback.print_exc()
return False
return ELTSession
@staticmethod
def VerifyELT(ELT: UUIDObj = None) -> GERPUserELT | bool:
if not ELT or type(ELT) != UUIDObj:
ELT = Cookie.get("ELToken")
if not ELT: return False
_: GERPUserELT = GERPUserELT.query.filter(
GERPUserELT.ELTUUID == UUIDObj(ELT)
).first()
if not _: return False
if _.ELTEndTime.timestamp() < time.time(): return False
current_ip = IP.GetIP()
if current_ip and current_ip != "*" and not "*" in (_.ELTAllowIP or []) and current_ip not in (_.ELTAllowIP or []): return False
return _
@staticmethod
def GetELTUser(ELT: UUIDObj = None) -> GERPUser | None:
if not (E := UGM.VerifyELT(ELT)): return False
return E.User
_UGM = UGM