diff options
Diffstat (limited to 'app/views/githublogin.py')
| -rw-r--r-- | app/views/githublogin.py | 57 |
1 files changed, 3 insertions, 54 deletions
diff --git a/app/views/githublogin.py b/app/views/githublogin.py index 30cb61f..875f1b2 100644 --- a/app/views/githublogin.py +++ b/app/views/githublogin.py @@ -5,63 +5,12 @@ import flask_menu as menu from flask_github import GitHub from app import app, github from app.models import * - +from .utils import loginUser @app.route("/user/github/start/") def github_signin_page(): return github.authorize("") - -def _do_login_user(user, remember_me=False): - def _call_or_get(v): - if callable(v): - return v() - else: - return v - - # User must have been authenticated - if not user: - return False - - user.active = True - if not user.rank.atLeast(UserRank.NEW_MEMBER): - user.rank = UserRank.NEW_MEMBER - - db.session.commit() - - # Check if user account has been disabled - if not _call_or_get(user.is_active): - flash("Your account has not been enabled.", "error") - return False - - # Check if user has a confirmed email address - user_manager = current_app.user_manager - if user_manager.enable_email and user_manager.enable_confirm_email \ - and not current_app.user_manager.enable_login_without_confirm_email \ - and not user.has_confirmed_email(): - url = url_for("user.resend_confirm_email") - flash("Your email address has not yet been confirmed", "error") - return False - - # Use Flask-Login to sign in user - login_user(user, remember=remember_me) - signals.user_logged_in.send(current_app._get_current_object(), user=user) - - flash("You have signed in successfully.", "success") - - return True - - - -def _login_user(user): - user_mixin = None - if user_manager.enable_username: - user_mixin = user_manager.find_user_by_username(user.username) - - return _do_login_user(user_mixin, False) - - - @app.route("/user/github/callback/") @github.authorized_handler def github_authorized(oauth_token): @@ -99,12 +48,12 @@ def github_authorized(oauth_token): db.session.add(newUser) db.session.commit() - if not _login_user(newUser): + if not loginUser(newUser): raise Exception("Unable to login as user we just created") flash("Created an account", "success") return redirect(url_for("user_profile_page", username=username)) - elif _login_user(userByGithub): + elif loginUser(userByGithub): return redirect(next_url or url_for("home_page")) else: flash("Authorization failed [err=gh-login-failed]", "danger") |
