You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ponymail.apache.org by hu...@apache.org on 2020/09/07 20:04:32 UTC
[incubator-ponymail-foal] 04/10: Conform to new session plugin
standards, lint.
This is an automated email from the ASF dual-hosted git repository.
humbedooh pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-ponymail-foal.git
commit 7b6665e20c64e089b8f19290a48da043eaee92be
Author: Daniel Gruno <hu...@apache.org>
AuthorDate: Mon Sep 7 22:00:29 2020 +0200
Conform to new session plugin standards, lint.
---
server/endpoints/oauth.py | 18 +++++++++++++-----
1 file changed, 13 insertions(+), 5 deletions(-)
diff --git a/server/endpoints/oauth.py b/server/endpoints/oauth.py
index b6d06c0..cf67773 100644
--- a/server/endpoints/oauth.py
+++ b/server/endpoints/oauth.py
@@ -22,6 +22,7 @@ import plugins.session
import plugins.oauthGeneric
import typing
import aiohttp.web
+import hashlib
async def process(
@@ -43,22 +44,29 @@ async def process(
if not uid:
uid = rv.get("email")
if uid:
+ cid = hashlib.shake_128(
+ ("%s-%s" % (rv.get("oauth_domain", "generic"), uid)).encode(
+ "ascii", "ignore"
+ )
+ ).hexdigest(16)
cookie = await plugins.session.set_session(
server,
+ cid,
uid=uid,
name=rv.get("name"),
email=rv.get("email"),
# Authoritative if OAuth domain is in the authoritative oauth section in ponymail.yaml
# Required for access to private emails
- authoritative=rv.get('oauth_domain', 'generic') in server.config.oauth.authoritative_domains,
+ authoritative=rv.get("oauth_domain", "generic")
+ in server.config.oauth.authoritative_domains,
+ oauth_provider=rv.get("oauth_domain", "generic"),
oauth_data=rv,
)
# This could be improved upon, instead of a raw response return value
return aiohttp.web.Response(
- headers={
- 'set-cookie': cookie,
- 'content-type': 'application/json'
- }, status=200, text='{"okay": true}'
+ headers={"set-cookie": cookie, "content-type": "application/json"},
+ status=200,
+ text='{"okay": true}',
)