From 316ce46735e4bdbc951354cb37cbd4ea1ba7dd01 Mon Sep 17 00:00:00 2001 From: ALIMOT AKINBODE Date: Wed, 5 Jul 2023 16:32:18 +0300 Subject: [PATCH 1/2] add developer_token to session for /login-beta --- webapp/login/views.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/webapp/login/views.py b/webapp/login/views.py index f36850e09b..c71c1c3981 100644 --- a/webapp/login/views.py +++ b/webapp/login/views.py @@ -7,6 +7,7 @@ SnapPublisher, SnapStoreAdmin, ) +from canonicalwebteam.store_api.stores.charmstore import CharmPublisher from django_openid_auth.teams import TeamsRequest, TeamsResponse from flask_openid import OpenID @@ -36,6 +37,7 @@ publisher_api = SnapPublisher(api_publisher_session) admin_api = SnapStoreAdmin(api_publisher_session) candid = CandidClient(api_publisher_session) +charm_publisher_api = CharmPublisher(api_publisher_session) @login.route("/login", methods=["GET", "POST"]) @@ -175,6 +177,20 @@ def login_callback(): flask.session["publisher-macaroon"], candid_macaroon ) + # Get macaroon from charm publisher and exchange for developer token + # for authenticating against the publishergw API + publishergw_macaroon = charm_publisher_api.issue_macaroon([]) + publishergw_candid_macaroon = candid.discharge_macaroon( + publishergw_macaroon, discharged_token + ) + publishergw_serialized_macaroons = candid.get_serialized_bakery_macaroon( + publishergw_macaroon, publishergw_candid_macaroon + ) + + flask.session["developer_token"] = charm_publisher_api.exchange_macaroons( + publishergw_serialized_macaroons + ) + publisher = publisher_api.whoami(flask.session) account = publisher_api.get_account(flask.session) From 78ae9ee556666e6eb512866f4dc48af20b5e04b6 Mon Sep 17 00:00:00 2001 From: ALIMOT AKINBODE Date: Tue, 12 Dec 2023 19:09:13 +0300 Subject: [PATCH 2/2] update versions of store-api and store-base --- requirements.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/requirements.txt b/requirements.txt index 84df53dafe..96f4478e49 100644 --- a/requirements.txt +++ b/requirements.txt @@ -5,9 +5,9 @@ canonicalwebteam.discourse==5.4.7 canonicalwebteam.blog==6.4.1 canonicalwebteam.search==1.3.0 canonicalwebteam.image-template==1.3.1 -canonicalwebteam.store-api==4.7.1 +canonicalwebteam.store-api==4.8.0 canonicalwebteam.launchpad==0.8.4 -canonicalwebteam.store-base==0.3.4 +canonicalwebteam.store-base==0.4.1 django-openid-auth==0.16 Flask-OpenID==1.3.0 Flask-WTF==1.1.1