63 lines
2.3 KiB
Python
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 |