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