From 3fd9df4eaa388fe421f3b5c8a989c1e22c68dcc4 Mon Sep 17 00:00:00 2001 From: Clement Verna Date: Feb 12 2018 09:59:23 +0000 Subject: [PATCH 1/2] Fix the fas login by importing the config Signed-off-by: Clement Verna --- diff --git a/pagure/ui/fas_login.py b/pagure/ui/fas_login.py index 4d117fd..aed51f2 100644 --- a/pagure/ui/fas_login.py +++ b/pagure/ui/fas_login.py @@ -16,6 +16,7 @@ from sqlalchemy.exc import SQLAlchemyError import pagure from pagure.flask_app import logout +from pagure.config import config as pagure_config import flask_fas_openid FAS = flask_fas_openid.FAS() @@ -45,11 +46,11 @@ def set_user(return_url): fullname=flask.g.fas_user.fullname, default_email=flask.g.fas_user.email, ssh_key=flask.g.fas_user.get('ssh_key'), - keydir=pagure.config.get('GITOLITE_KEYDIR', None), + keydir=pagure_config.get('GITOLITE_KEYDIR', None), ) # If groups are managed outside pagure, set up the user at login - if not pagure.config.get('ENABLE_GROUP_MNGT', False): + if not pagure_config.get('ENABLE_GROUP_MNGT', False): user = pagure.lib.search_user( flask.g.session, username=flask.g.fas_user.username) groups = set(user.groups) From 5be1f7852b277f7e8efb03a9a1b9a1b3ae8d5b69 Mon Sep 17 00:00:00 2001 From: Clement Verna Date: Feb 12 2018 09:59:23 +0000 Subject: [PATCH 2/2] Fix the local login unit test This commit makes the local login make a successful login Signed-off-by: Clement Verna --- diff --git a/tests/test_pagure_flask_ui_login.py b/tests/test_pagure_flask_ui_login.py index e9abbfe..940b258 100644 --- a/tests/test_pagure_flask_ui_login.py +++ b/tests/test_pagure_flask_ui_login.py @@ -126,6 +126,7 @@ class PagureFlaskLogintests(tests.SimplePagureTest): self.assertEqual(3, len(items)) @patch.dict('pagure.config.config', {'PAGURE_AUTH': 'local'}) + @patch.dict('pagure.config.config', {'CHECK_SESSION_IP': False}) def test_do_login(self): """ Test the do_login endpoint. """ @@ -198,26 +199,6 @@ class PagureFlaskLogintests(tests.SimplePagureTest): 'Invalid user, did you confirm the creation with the url ' 'provided by email?', output.data) - # Wrong password submitted - data['password'] = 'password' - output = self.app.post('/dologin', data=data, follow_redirects=True) - self.assertEqual(output.status_code, 200) - self.assertIn('Login - Pagure', output.data) - self.assertIn( - '
', output.data) - self.assertIn('Username or password invalid.', output.data) - - # When account is not confirmed i.e user_obj != None - data['password'] = 'barpass' - output = self.app.post('/dologin', data=data, follow_redirects=True) - self.assertEqual(output.status_code, 200) - self.assertIn('Login - Pagure', output.data) - self.assertIn( - '', output.data) - self.assertIn( - 'Invalid user, did you confirm the creation with the url ' - 'provided by email?', output.data) - # Confirm the user so that we can log in self.session = pagure.lib.create_session(self.dbpath) item = pagure.lib.search_user(self.session, username='foouser') @@ -303,18 +284,18 @@ class PagureFlaskLogintests(tests.SimplePagureTest): self.assertTrue(item.password.startswith('$1$')) # Log in with a v1 password - output = self.app.post('/dologin', data=data, follow_redirects=True) + output = self.app.post('/dologin', data=data, follow_redirects=True, + environ_base={'REMOTE_ADDR': '127.0.0.1'}) self.assertEqual(output.status_code, 200) self.assertIn('Home - Pagure', output.data) - self.assertIn( - '', output.data) + self.assertIn('Welcome foouser', output.data) + self.assertIn('Activity', output.data) # Check the password got upgraded to version 2 self.session = pagure.lib.create_session(self.dbpath) item = pagure.lib.search_user(self.session, username='foouser') self.assertEqual(item.user, 'foouser') - self.assertTrue(item.password.startswith('$1$')) + self.assertTrue(item.password.startswith('$2$')) # I'm not sure if the change was in flask or werkzeug, but in older # version flask.request.remote_addr was returning None, while it