Procházet zdrojové kódy

fix: connected app auto_refresh credentials and mandatory fields

version-14
casesolved-co-uk před 4 roky
rodič
revize
095994a86c
2 změnil soubory, kde provedl 14 přidání a 4 odebrání
  1. +7
    -4
      frappe/integrations/doctype/connected_app/connected_app.json
  2. +7
    -0
      frappe/integrations/doctype/connected_app/connected_app.py

+ 7
- 4
frappe/integrations/doctype/connected_app/connected_app.json Zobrazit soubor

@@ -54,7 +54,8 @@
"fieldname": "client_id", "fieldname": "client_id",
"fieldtype": "Data", "fieldtype": "Data",
"in_list_view": 1, "in_list_view": 1,
"label": "Client Id"
"label": "Client Id",
"mandatory_depends_on": "eval:doc.redirect_uri"
}, },
{ {
"fieldname": "redirect_uri", "fieldname": "redirect_uri",
@@ -96,12 +97,14 @@
{ {
"fieldname": "authorization_uri", "fieldname": "authorization_uri",
"fieldtype": "Data", "fieldtype": "Data",
"label": "Authorization URI"
"label": "Authorization URI",
"mandatory_depends_on": "eval:doc.redirect_uri"
}, },
{ {
"fieldname": "token_uri", "fieldname": "token_uri",
"fieldtype": "Data", "fieldtype": "Data",
"label": "Token URI"
"label": "Token URI",
"mandatory_depends_on": "eval:doc.redirect_uri"
}, },
{ {
"fieldname": "revocation_uri", "fieldname": "revocation_uri",
@@ -136,7 +139,7 @@
"link_fieldname": "connected_app" "link_fieldname": "connected_app"
} }
], ],
"modified": "2020-11-16 16:29:50.277405",
"modified": "2021-05-10 05:03:06.296863",
"modified_by": "Administrator", "modified_by": "Administrator",
"module": "Integrations", "module": "Integrations",
"name": "Connected App", "name": "Connected App",


+ 7
- 0
frappe/integrations/doctype/connected_app/connected_app.py Zobrazit soubor

@@ -26,20 +26,27 @@ class ConnectedApp(Document):
self.redirect_uri = urljoin(base_url, callback_path) self.redirect_uri = urljoin(base_url, callback_path)


def get_oauth2_session(self, user=None, init=False): def get_oauth2_session(self, user=None, init=False):
"""Return an auto-refreshing OAuth2 session which is an extension of a requests.Session()"""
token = None token = None
token_updater = None token_updater = None
auto_refresh_kwargs = None


if not init: if not init:
user = user or frappe.session.user user = user or frappe.session.user
token_cache = self.get_user_token(user) token_cache = self.get_user_token(user)
token = token_cache.get_json() token = token_cache.get_json()
token_updater = token_cache.update_data token_updater = token_cache.update_data
auto_refresh_kwargs = {'client_id': self.client_id}
client_secret = self.get_password('client_secret')
if client_secret:
auto_refresh_kwargs['client_secret'] = client_secret


return OAuth2Session( return OAuth2Session(
client_id=self.client_id, client_id=self.client_id,
token=token, token=token,
token_updater=token_updater, token_updater=token_updater,
auto_refresh_url=self.token_uri, auto_refresh_url=self.token_uri,
auto_refresh_kwargs=auto_refresh_kwargs,
redirect_uri=self.redirect_uri, redirect_uri=self.redirect_uri,
scope=self.get_scopes() scope=self.get_scopes()
) )


Načítá se…
Zrušit
Uložit