Files
fet2020/fet2020/documents/etherpadlib.py
2021-01-15 15:42:30 +00:00

52 lines
1.4 KiB
Python

from datetime import datetime, timedelta
from .api import get_ep_client
from authentications.decorators import ep_authenticated_user
@ep_authenticated_user
def __get_ep_sessionid(request):
epc, group = get_ep_client()
if not epc or not group:
return None, None
author = epc.createAuthorIfNotExistsFor(
name=str(request.user), authorMapper=str(request.user)
)["authorID"]
expires = datetime.utcnow() + timedelta(hours=3)
try:
result = epc.createSession(
groupID=str(group["groupID"]),
authorID=str(author),
validUntil=str(int(expires.timestamp())),
)
except Exception as e:
raise e
return None, None
return result["sessionID"], expires
def add_ep_cookie(request, response):
ep_sessid, expires = __get_ep_sessionid(request)
if ep_sessid:
response.set_cookie(
"sessionID", ep_sessid, expires=expires, domain=".2020.fet.at", path="/"
)
response.set_cookie("sessionID", ep_sessid, expires=expires, path="/etherpad")
return response
def del_ep_cookie(request, response):
if "sessionID" in request.COOKIES:
ep_sessionID = request.COOKIES["sessionID"]
epc, group = get_ep_client()
epc.deleteSession(sessionID=ep_sessionID)
response.delete_cookie("sessionID", domain=".2020.fet.at", path="/")
return response