diff --git a/app/auth/views.py b/app/auth/views.py index a14c826..0804685 100644 --- a/app/auth/views.py +++ b/app/auth/views.py @@ -10,11 +10,12 @@ from .forms import LoginForm, RegistrationForm, ChangePasswordForm, \ @auth.before_app_request def before_request(): - if current_user.is_authenticated \ - and not current_user.confirmed \ - and request.blueprint != 'auth' \ - and request.endpoint != 'static': - return redirect(url_for('auth.unconfirmed')) + if current_user.is_authenticated: + current_user.ping() + if not current_user.confirmed \ + and request.blueprint != 'auth' \ + and request.endpoint != 'static': + return redirect(url_for('auth.unconfirmed')) @auth.route('/unconfirmed') diff --git a/app/main/views.py b/app/main/views.py index 171289c..edd98c4 100644 --- a/app/main/views.py +++ b/app/main/views.py @@ -1,7 +1,14 @@ from flask import render_template from . import main +from ..models import User @main.route('/', methods=['GET', 'POST']) def index(): return render_template('index.html') + + +@main.route('/user/') +def user(username): + user = User.query.filter_by(username=username).first_or_404() + return render_template('user.html', user=user) diff --git a/app/models.py b/app/models.py index d4bfbdd..12c24f1 100644 --- a/app/models.py +++ b/app/models.py @@ -1,3 +1,4 @@ +from datetime import datetime from werkzeug.security import generate_password_hash, check_password_hash from itsdangerous import TimedJSONWebSignatureSerializer as Serializer from itsdangerous import BadSignature @@ -75,6 +76,11 @@ class User(UserMixin, db.Model): role_id = db.Column(db.Integer, db.ForeignKey('roles.id')) password_hash = db.Column(db.String(128)) confirmed = db.Column(db.Boolean, default=False) + name = db.Column(db.String(64)) + location = db.Column(db.String(64)) + about_me = db.Column(db.Text()) + member_since = db.Column(db.DateTime(), default=datetime.utcnow) + last_seen = db.Column(db.DateTime(), default=datetime.utcnow) def __init__(self, **kwargs): super(User, self).__init__(**kwargs) @@ -157,6 +163,11 @@ class User(UserMixin, db.Model): def is_administrator(self): return self.can(Permission.ADMIN) + def ping(self): + self.last_seen = datetime.utcnow() + db.session.add(self) + db.session.commit() + def __repr__(self): return '' % self.username diff --git a/app/templates/base.html b/app/templates/base.html index c552aec..a1f6020 100644 --- a/app/templates/base.html +++ b/app/templates/base.html @@ -24,6 +24,9 @@