def __add_group_to_user(self, user_discord_id): roles = DiscordRole.query\ .join(DiscordUserRole)\ .join(DiscordUser)\ .filter(DiscordUser.id == user_discord_id)\ .all() user = User.query.filter(User.discord == user_discord_id).first() for role in roles: if role.id in hub_current_server.discord_role_to_group: group_id = hub_current_server.discord_role_to_group[role.id] group = Group.query.filter(Group.id == group_id).first() if not user: discord_user = DiscordUser.query.filter(DiscordUser.id == user_discord_id).first() assert discord_user user = User(discord=user_discord_id, display_name=discord_user.pure_name, activated=True) user.primary_group = group else: last_group = user.primary_group user.primary_group = group user.add_to_group(last_group) user.save() LogAction(current_user, "added user {name} (discord: {discord_id}) to group {group}".format( name=user.display_name, discord_id=user_discord_id, group=group.name )) flash("User {} was added to group {}".format(user.display_name, group.name)) return True flash("Failed to find appropriate group for user {}".format(user.display_name), "danger") return False