From 912674c3f46ee294ce8351fa4678b3308459b82d Mon Sep 17 00:00:00 2001 From: codl Date: Tue, 25 Jul 2017 23:05:46 +0200 Subject: [PATCH] stuff. if you see this then i forgot to squash before publishing --- app.py | 2 + lib.py | 10 ----- migrations/versions/8e80a277cdb5_init.py | 55 ------------------------ model.py | 22 +++------- routes.py | 21 ++++++--- templates/index.html | 6 +++ 6 files changed, 31 insertions(+), 85 deletions(-) delete mode 100644 lib.py delete mode 100644 migrations/versions/8e80a277cdb5_init.py create mode 100644 templates/index.html diff --git a/app.py b/app.py index 427ce51..43dfdb3 100644 --- a/app.py +++ b/app.py @@ -8,6 +8,8 @@ app.config['SQLALCHEMY_DATABASE_URI'] = 'postgresql:///forget' app.config['SQLALCHEMY_ECHO'] = True app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False +app.secret_key = 'hunter2' + metadata = MetaData(naming_convention = { "ix": 'ix_%(column_0_label)s', "uq": "uq_%(table_name)s_%(column_0_name)s", diff --git a/lib.py b/lib.py deleted file mode 100644 index 5adf6ea..0000000 --- a/lib.py +++ /dev/null @@ -1,10 +0,0 @@ -from model import User -from flask import request -from functools import update_wrapper - -def require_auth(fun): - # TODO actual auth and session checking and such - def newfun(*args, **kwargs): - fun(User.query.get('8080418'), *args, **kwargs) - update_wrapper(newfun, fun) - return newfun diff --git a/migrations/versions/8e80a277cdb5_init.py b/migrations/versions/8e80a277cdb5_init.py deleted file mode 100644 index 138c9c7..0000000 --- a/migrations/versions/8e80a277cdb5_init.py +++ /dev/null @@ -1,55 +0,0 @@ -"""init - -Revision ID: 8e80a277cdb5 -Revises: -Create Date: 2017-07-25 20:02:00.543026 - -""" -from alembic import op -import sqlalchemy as sa - - -# revision identifiers, used by Alembic. -revision = '8e80a277cdb5' -down_revision = None -branch_labels = None -depends_on = None - - -def upgrade(): - op.create_table('users', - sa.Column('created_at', sa.DateTime(), nullable=False), - sa.Column('updated_at', sa.DateTime(), nullable=False), - sa.Column('display_name', sa.String(), nullable=True), - sa.Column('id', sa.Integer(), nullable=False), - sa.PrimaryKeyConstraint('id', name=op.f('pk_users')) - ) - op.create_table('account', - sa.Column('created_at', sa.DateTime(), nullable=False), - sa.Column('updated_at', sa.DateTime(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.Column('remote_id', sa.String(), nullable=False), - sa.Column('service', sa.Enum('twitter', name='enum_services'), nullable=False), - sa.Column('credentials', sa.JSON(), nullable=True), - sa.Column('policy_enabled', sa.Boolean(), nullable=True), - sa.Column('policy_keep_younger', sa.Interval(), nullable=True), - sa.Column('policy_keep_latest', sa.Integer(), nullable=True), - sa.Column('policy_delete_every', sa.Interval(), nullable=True), - sa.Column('policy_ignore_favourites', sa.Boolean(), nullable=True), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_account_user_id_users')), - sa.PrimaryKeyConstraint('remote_id', 'service', name=op.f('pk_account')) - ) - op.create_table('sessions', - sa.Column('created_at', sa.DateTime(), nullable=False), - sa.Column('updated_at', sa.DateTime(), nullable=False), - sa.Column('user_id', sa.Integer(), nullable=True), - sa.Column('token', sa.String(), nullable=False), - sa.ForeignKeyConstraint(['user_id'], ['users.id'], name=op.f('fk_sessions_user_id_users')), - sa.PrimaryKeyConstraint('token', name=op.f('pk_sessions')) - ) - - -def downgrade(): - op.drop_table('sessions') - op.drop_table('account') - op.drop_table('users') diff --git a/model.py b/model.py index bcf8724..fdc9fc0 100644 --- a/model.py +++ b/model.py @@ -3,8 +3,8 @@ from datetime import datetime from app import db class TimestampMixin(object): - created_at = db.Column(db.DateTime, default=datetime.utcnow, nullable=False) - updated_at = db.Column(db.DateTime, default=datetime.utcnow, onupdate=datetime.utcnow, nullable=False) + created_at = db.Column(db.DateTime, server_default=db.func.now()) + updated_at = db.Column(db.DateTime, server_default=db.func.now(), onupdate=db.func.now()) class User(db.Model, TimestampMixin): __tablename__ = 'users' @@ -15,25 +15,17 @@ class User(db.Model, TimestampMixin): class Account(db.Model, TimestampMixin): user = db.relationship(User) - user_id = db.Column(db.Integer, db.ForeignKey('users.id')) + user_id = db.Column(db.Integer, db.ForeignKey('users.id'), nullable=False) - remote_id = db.Column(db.String, primary_key=True) service = db.Column( db.Enum("twitter", name="enum_services") , primary_key=True) + remote_id = db.Column(db.String, primary_key=True) + credentials = db.Column(db.JSON) - policy_enabled = db.Column(db.Boolean, default=False) + policy_enabled = db.Column(db.Boolean, server_default='FALSE', nullable=False) policy_keep_younger = db.Column(db.Interval) policy_keep_latest = db.Column(db.Integer) policy_delete_every = db.Column(db.Interval) - policy_ignore_favourites = db.Column(db.Boolean, default=True) - -class Session(db.Model, TimestampMixin): - __tablename__ = 'sessions' - - user = db.relationship(User) - user_id = db.Column(db.Integer, db.ForeignKey('users.id')) - - token = db.Column(db.String, primary_key=True) - + policy_ignore_favourites = db.Column(db.Boolean, server_default='TRUE') diff --git a/routes.py b/routes.py index 4d928d6..b4596dc 100644 --- a/routes.py +++ b/routes.py @@ -1,9 +1,20 @@ from app import app -from flask import request, Response -from lib import require_auth +from flask import render_template, session, url_for, redirect +from datetime import datetime @app.route('/') -@require_auth -def index(viewer): - return "Hello, %s (%s)" % (viewer.name, viewer.twitter_id) +def index(): + return render_template('index.html') +@app.route('/login/twitter') +def debug_login(): + session['display_name'] = 'codl' + session['created_at'] = datetime.now() + return redirect(url_for('index')) + +@app.route('/logout') +def logout(): + keys = list(session.keys()) + for key in keys: + del session[key] + return redirect(url_for('index')) diff --git a/templates/index.html b/templates/index.html new file mode 100644 index 0000000..70e148a --- /dev/null +++ b/templates/index.html @@ -0,0 +1,6 @@ +{% if session %} + Hello, {{session['display_name']}}! Log out + {{session['created_at']}} +{% else %} + Hello, stranger! Log in with Twitter +{% endif %}