mirror of
https://github.com/chanzuckerberg/cellxgene.git
synced 2026-10-01 10:58:12 +08:00
add oauth authentication (#1681)
* add oauth authentication Add support for OAuth2. Change the interface to AuthTypeBase - better handling of config parameters - add a complete_setup function for additional setup steps Added a function wrapper to enforce authentication for the routes that require authenticaiton. * change fsspec requirement fsspec 0.8.0 breaks our tests it imports a module that is does not require.
This commit is contained in:
+16
-13
@@ -9,13 +9,15 @@ class AuthTypeTest(AuthTypeClientBase):
|
||||
# key in session token with userid and username
|
||||
CXGUID = "cxguid_test"
|
||||
CXGUNAME = "cxguname_test"
|
||||
CXGUEMAIL = "cxguemail_test"
|
||||
|
||||
def __init__(self):
|
||||
def __init__(self, app_config):
|
||||
super().__init__()
|
||||
self.username = "test_account"
|
||||
self.userid = "id0001"
|
||||
self.user_name = "test_account"
|
||||
self.user_id = "id0001"
|
||||
self.user_email = "test_account@test.com"
|
||||
|
||||
def is_valid(self):
|
||||
def is_valid_authentication_type(self):
|
||||
return True
|
||||
|
||||
def requires_client_login(self):
|
||||
@@ -25,25 +27,26 @@ class AuthTypeTest(AuthTypeClientBase):
|
||||
app.add_url_rule("/login", "login", self.login, methods=["GET"])
|
||||
app.add_url_rule("/logout", "logout", self.logout, methods=["GET"])
|
||||
|
||||
def set_params(self, params):
|
||||
if params:
|
||||
self.username = params.get("username", self.username)
|
||||
self.userid = params.get("userid", self.userid)
|
||||
def complete_setup(self, app):
|
||||
pass
|
||||
|
||||
def is_authenticated(self):
|
||||
def is_user_authenticated(self):
|
||||
return self.CXGUID in session
|
||||
|
||||
def get_userid(self):
|
||||
def get_user_id(self):
|
||||
return session.get(self.CXGUID)
|
||||
|
||||
def get_username(self):
|
||||
def get_user_name(self):
|
||||
return session.get(self.CXGUNAME)
|
||||
|
||||
def get_user_email(self):
|
||||
return session.get(self.CXGUEMAIL)
|
||||
|
||||
def login(self):
|
||||
args = request.args
|
||||
return_to = args.get("dataset", "/")
|
||||
session[self.CXGUID] = args.get("userid", self.userid)
|
||||
session[self.CXGUNAME] = args.get("username", self.username)
|
||||
session[self.CXGUID] = args.get("userid", self.user_id)
|
||||
session[self.CXGUNAME] = args.get("username", self.user_name)
|
||||
return redirect(return_to)
|
||||
|
||||
def logout(self):
|
||||
|
||||
Reference in New Issue
Block a user