def add_user(sa_session, security_agent, email, password, key=None, username="******"): """ Add Galaxy User. From John https://gist.github.com/jmchilton/4475646 """ query = sa_session.query(User).filter_by(email=email) if query.count() > 0: return query.first() else: User.use_pbkdf2 = True user = User(email) user.username = username user.set_password_cleartext(password) sa_session.add(user) sa_session.flush() security_agent.create_private_user_role(user) # bootstrap user don't need history and datasets permissions # to install tools. We comment this out #if not user.default_permissions: # security_agent.user_set_default_permissions( user, history=True, dataset=True ) if key is not None: api_key = APIKeys() api_key.user_id = user.id api_key.key = key sa_session.add(api_key) sa_session.flush() return user
def test_localdb(): user = User(email='testmail', username='******') user.set_password_cleartext('test') t = LocalDB() reject = t.authenticate_user(user, 'wrong', {'redact_username_in_logs': False}) accept = t.authenticate_user(user, 'test', {'redact_username_in_logs': False}) assert reject is False assert accept is True
def test_localdb(): user = User(email='testmail', username='******') user.set_password_cleartext('test123') t = LocalDB() reject = t.authenticate_user(user, 'wrong', {'redact_username_in_logs': False}) accept = t.authenticate_user(user, 'test123', {'redact_username_in_logs': False}) assert reject is False assert accept is True # Password must conform to policy (length etc) try: user.set_password_cleartext('test') except Exception: pass else: raise Exception("Password policy validation failed")