-
Notifications
You must be signed in to change notification settings - Fork 16.6k
Closed
Labels
#bugBug reportBug report
Description
Hi,
I am trying to make a custom security manager.
When I commit a new user using the add_user function I get the error
sqlalchemy.exc.ResourceClosedError: This transaction is closed
To reproduce the error either make the TokenSecurityManager class or add
gamma_role = self.find_role("Gamma")
user = self.add_user(username="vadsvad",
email=u"test@test.com",
first_name="fdasdf",
last_name="asdfdsafd",
role=gamma_role)
at line
superset/superset/security/manager.py
Line 252 in 4f1996d
The SecurityMangerClass:
class TokenSecurityManager(SupersetSecurityManager):
def __init__(self, appbuilder):
super(TokenSecurityManager, self).__init__(appbuilder)
def request_loader(self, request: Request) -> Optional[User]:
# pylint: disable=import-outside-toplevel
from superset.extensions import feature_flag_manager
gamma_role = self.find_role("Gamma")
user = self.add_user(username="vadsvad",
email=u"test@test.com",
first_name="fdasdf",
last_name="asdfdsafd",
role=gamma_role)
return None
def add_user(
self,
username,
first_name,
last_name,
email,
role,
hashed_password=""
):
"""
Generic function to create user
"""
# try:
user = self.user_model()
user.first_name = first_name
user.last_name = last_name
user.username = username
user.email = email
user.active = True
user.roles = [role]
user.password = hashed_password
self.get_session.add(user)
self.get_session.commit() <---------- error thrown on this line.
return user
# except Exception as e:
# self.get_session.rollback()
# return False
I know this is more of a Flask AppBuilder issue but any assistance into where this transaction is being closed will be great.
I could just create a new session engine + session as a workaround. I just don't understand how this doesn't work
Metadata
Metadata
Assignees
Labels
#bugBug reportBug report