[core] UA parsing: Add backwards compatibility for platform names
Signed-off-by: Ferdinand Thiessen <rpm@fthiessen.de>
This commit is contained in:
parent
4248825af0
commit
973b4527df
|
@ -13,15 +13,15 @@ lifetime = 1800
|
||||||
|
|
||||||
def __get_user_agent_platform(ua: str):
|
def __get_user_agent_platform(ua: str):
|
||||||
if "Win" in ua:
|
if "Win" in ua:
|
||||||
return "Windows"
|
return "windows"
|
||||||
if "Mac" in ua:
|
if "Mac" in ua:
|
||||||
return "Macintosh"
|
return "macintosh"
|
||||||
if "Linux" in ua:
|
if "Linux" in ua:
|
||||||
return "Linux"
|
return "linux"
|
||||||
if "Android" in ua:
|
if "Android" in ua:
|
||||||
return "Android"
|
return "android"
|
||||||
if "like Mac" in ua:
|
if "like Mac" in ua:
|
||||||
return "iOS"
|
return "ios"
|
||||||
return "unknown"
|
return "unknown"
|
||||||
|
|
||||||
|
|
||||||
|
@ -84,12 +84,12 @@ def validate_token(token, request_headers, permission):
|
||||||
raise Unauthorized
|
raise Unauthorized
|
||||||
|
|
||||||
|
|
||||||
def create(user, user_agent=None) -> Session:
|
def create(user, request_headers=None) -> Session:
|
||||||
"""Create a Session
|
"""Create a Session
|
||||||
|
|
||||||
Args:
|
Args:
|
||||||
user: For which User is to create a Session
|
user: For which User is to create a Session
|
||||||
user_agent: User agent to identify session
|
request_headers: Headers to validate user agent of browser
|
||||||
|
|
||||||
Returns:
|
Returns:
|
||||||
Session: A created Token for User
|
Session: A created Token for User
|
||||||
|
@ -100,8 +100,10 @@ def create(user, user_agent=None) -> Session:
|
||||||
token=token_str,
|
token=token_str,
|
||||||
user_=user,
|
user_=user,
|
||||||
lifetime=lifetime,
|
lifetime=lifetime,
|
||||||
browser=user_agent.browser,
|
platform=request_headers.get("Sec-CH-UA-Platform", None)
|
||||||
platform=user_agent.platform,
|
or __get_user_agent_platform(request_headers.get("User-Agent", "")),
|
||||||
|
browser=request_headers.get("Sec-CH-UA", None)
|
||||||
|
or __get_user_agent_browser(request_headers.get("User-Agent", "")),
|
||||||
)
|
)
|
||||||
session.refresh()
|
session.refresh()
|
||||||
db.session.add(session)
|
db.session.add(session)
|
||||||
|
|
|
@ -40,7 +40,7 @@ def login():
|
||||||
user = userController.login_user(userid, password)
|
user = userController.login_user(userid, password)
|
||||||
if not user:
|
if not user:
|
||||||
raise Unauthorized
|
raise Unauthorized
|
||||||
session = sessionController.create(user, user_agent=request.user_agent)
|
session = sessionController.create(user, request_headers=request.headers)
|
||||||
logger.debug(f"token is {session.token}")
|
logger.debug(f"token is {session.token}")
|
||||||
logger.info(f"User {userid} logged in.")
|
logger.info(f"User {userid} logged in.")
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue