wiki trial
This commit is contained in:
65
wiki/etherpadlib.py
Normal file
65
wiki/etherpadlib.py
Normal file
@@ -0,0 +1,65 @@
|
||||
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
|
||||
Reference in New Issue
Block a user