From 73a38d1f7fb404bab0c7179e66763b34f22e6a0b Mon Sep 17 00:00:00 2001 From: Pierre-Yves Chibon Date: Jul 31 2017 10:22:06 +0000 Subject: Check if there is a group and bail otherwise If there is no group name specified search_groups will return all the groups, so a list not a single group making the assumption made by the code invalid and thus leading to a traceback. Fixes https://pagure.io/pagure/issue/2463 Signed-off-by: Pierre-Yves Chibon --- diff --git a/pagure/__init__.py b/pagure/__init__.py index 6383759..f8c2974 100644 --- a/pagure/__init__.py +++ b/pagure/__init__.py @@ -139,33 +139,34 @@ if APP.config.get('PAGURE_AUTH', None) in ['fas', 'openid']: fas_groups = set(flask.g.fas_user.groups) # Add the new groups for group in fas_groups - groups: - group = pagure.lib.search_groups( - SESSION, group_name=group) - if not group: - continue - try: - pagure.lib.add_user_to_group( - session=SESSION, - username=flask.g.fas_user.username, - group=group, - user=flask.g.fas_user.username, - is_admin=is_admin(), - ) - except pagure.exceptions.PagureException as err: - APP.logger.debug(err) + if group: + groupobj = pagure.lib.search_groups( + SESSION, group_name=group) + if groupobj: + try: + pagure.lib.add_user_to_group( + session=SESSION, + username=flask.g.fas_user.username, + group=groupobj, + user=flask.g.fas_user.username, + is_admin=is_admin(), + ) + except pagure.exceptions.PagureException as err: + APP.logger.debug(err) # Remove the old groups for group in groups - fas_groups: - try: - pagure.lib.delete_user_of_group( - session=SESSION, - username=flask.g.fas_user.username, - groupname=group, - user=flask.g.fas_user.username, - is_admin=is_admin(), - force=True, - ) - except pagure.exceptions.PagureException as err: - APP.logger.debug(err) + if group: + try: + pagure.lib.delete_user_of_group( + session=SESSION, + username=flask.g.fas_user.username, + groupname=group, + user=flask.g.fas_user.username, + is_admin=is_admin(), + force=True, + ) + except pagure.exceptions.PagureException as err: + APP.logger.debug(err) SESSION.commit() except SQLAlchemyError as err: