diff --git a/hiboo/profile/__init__.py b/hiboo/profile/__init__.py index fa7865f648238edbd99b685fd1c4adc4ba129dd2..c676c365dc5bf0311943986338540d2827594779 100644 --- a/hiboo/profile/__init__.py +++ b/hiboo/profile/__init__.py @@ -15,18 +15,14 @@ from hiboo.profile import login, admin, forms, cli def get_profile(service, **redirect_args): - query = models.Profile.query.filter_by( - service_uuid=service.uuid, - user_uuid=flask_login.current_user.uuid, - status=models.Profile.ACTIVE - ) + profiles = models.Profile.filter(service, flask_login.current_user) + active = profiles.filter_by(status=models.Profile.ACTIVE) form = forms.ProfilePickForm() if form.validate_on_submit(): - return query.filter_by(uuid=form.profile_uuid.data).first() - count = query.count() - if count > 1: + return active.filter_by(uuid=form.profile_uuid.data).first() + if active.count() == 1: + return active.one() + elif profile.count() > 1: utils.force_redirect(utils.url_for("profile.pick", **redirect_args)) - elif count == 1: - return query.one() else: utils.force_redirect(utils.url_for("profile.create_quick", **redirect_args))