From 9e14e3d24e596005aec08b2a5b36ff8a939ebc4d Mon Sep 17 00:00:00 2001 From: Beto Dealmeida Date: Sat, 22 May 2021 13:46:36 -0700 Subject: [PATCH] feat: enable user impersonation in GSheets (#14767) --- setup.py | 2 +- .../data/database/DatabaseModal/ExtraOptions.tsx | 4 +++- superset/db_engine_specs/gsheets.py | 14 ++++++++++++++ 3 files changed, 18 insertions(+), 2 deletions(-) diff --git a/setup.py b/setup.py index aea9a2c8d2e83..bffd2eb44a4f1 100644 --- a/setup.py +++ b/setup.py @@ -134,7 +134,7 @@ def get_git_sha(): "exasol": ["sqlalchemy-exasol>=2.1.0, <2.2"], "excel": ["xlrd>=1.2.0, <1.3"], "firebird": ["sqlalchemy-firebird>=0.7.0, <0.8"], - "gsheets": ["shillelagh[gsheetsapi]>=0.2, <0.3"], + "gsheets": ["shillelagh[gsheetsapi]>=0.5, <0.6"], "hana": ["hdbcli==2.4.162", "sqlalchemy_hana==0.4.0"], "hive": ["pyhive[hive]>=0.6.1", "tableschema", "thrift>=0.11.0, <1.0.0"], "impala": ["impyla>0.16.2, <0.17"], diff --git a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx index e3987ad7ea7f1..174ef60930471 100644 --- a/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx +++ b/superset-frontend/src/views/CRUD/data/database/DatabaseModal/ExtraOptions.tsx @@ -291,7 +291,9 @@ const ExtraOptions = ({ indeterminate={false} checked={!!db?.impersonate_user} onChange={onInputChange} - labelText={t('Impersonate Logged In User (Presto & Hive)')} + labelText={t( + 'Impersonate Logged In User (Presto, Hive, and GSheets)', + )} /> None: + if impersonate_user and username is not None: + user = security_manager.find_user(username=username) + if user and user.email: + url.query["subject"] = user.email