Skip to content

Commit a89a685

Browse files
Merge branch 'dev' into unicron-make-active-signature-ttl-in-store-shorter
2 parents 157beb4 + 55eb073 commit a89a685

File tree

4 files changed

+19
-7
lines changed

4 files changed

+19
-7
lines changed

cla-backend/cla/controllers/repository_service.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,16 +34,18 @@ def sign_request(provider, installation_id, github_repository_id, change_request
3434
service = cla.utils.get_repository_service(provider)
3535
return service.sign_request(installation_id, github_repository_id, change_request_id, request)
3636

37-
def user_from_session(request, response=None):
37+
def user_from_session(redirect, request, response=None):
3838
"""
3939
Return user from OAuth2 session
4040
"""
4141
# LG: to test using MockGitHub class
4242
# import os
4343
# from cla.models.github_models import MockGitHub
4444
# user = MockGitHub(os.environ["GITHUB_OAUTH_TOKEN"]).user_from_session(request)
45-
user = cla.utils.get_repository_service('github').user_from_session(request)
45+
user = cla.utils.get_repository_service('github').user_from_session(request, redirect)
4646
if user is None:
4747
response.status = HTTP_404
4848
return {"errors": "Cannot find user from session"}
49+
if isinstance(user, dict):
50+
return user
4951
return user.to_dict()

cla-backend/cla/models/github_models.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ def received_activity(self, data):
9696
else:
9797
cla.log.debug("github_models.received_activity - Ignoring unsupported action: {}".format(data["action"]))
9898

99-
def user_from_session(self, request):
99+
def user_from_session(self, request, redirect):
100100
fn = "github_models.user_from_session" # function name
101101
cla.log.debug(f"{fn} - Loading session from request: {request}...")
102102
session = self._get_request_session(request)
@@ -111,7 +111,10 @@ def user_from_session(self, request):
111111
cla.log.debug(f"{fn} - Obtained GitHub OAuth2 state from authorization - storing state in the session...")
112112
session["github_oauth2_state"] = state
113113
cla.log.debug(f"{fn} - GitHub OAuth2 request with state {state} - sending user to {authorization_url}")
114-
raise falcon.HTTPFound(authorization_url)
114+
if redirect:
115+
raise falcon.HTTPFound(authorization_url)
116+
else:
117+
return { "redirect_url": authorization_url }
115118

116119
def sign_request(self, installation_id, github_repository_id, change_request_id, request):
117120
"""

cla-backend/cla/routes.py

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1833,7 +1833,9 @@ def user_from_session(request, response):
18331833
"version": "v1"
18341834
}
18351835
"""
1836-
return cla.controllers.repository_service.user_from_session(request, response)
1836+
raw_redirect = request.params.get('redirect', 'false').lower()
1837+
redirect = raw_redirect in ('1', 'true', 'yes')
1838+
return cla.controllers.repository_service.user_from_session(redirect, request, response)
18371839

18381840

18391841
@hug.post("/events", versions=1)

utils/get_user_from_session_py.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,19 @@
11
#!/bin/bash
22
# API_URL=https://[xyz].ngrok-free.app (defaults to localhost:5000)
33
# API_URL=https://api.lfcla.dev.platform.linuxfoundation.org
4-
# DEBUG='' ./utils/get_user_from_session_py.sh
4+
# REDIRECT=0|1 DEBUG='' ./utils/get_user_from_session_py.sh
55

66
if [ -z "$API_URL" ]
77
then
88
export API_URL="http://localhost:5000"
99
fi
1010

11-
API="${API_URL}/v2/user-from-session"
11+
if [ -z "${REDIRECT}" ]
12+
then
13+
export REDIRECT="0"
14+
fi
15+
16+
API="${API_URL}/v2/user-from-session?redirect=${REDIRECT}"
1217

1318
if [ ! -z "$DEBUG" ]
1419
then

0 commit comments

Comments
 (0)