updates database design for mariadb

This commit is contained in:
2020-05-27 20:06:43 +02:00
parent 0cfc801f59
commit 355ba99ca3
18 changed files with 435 additions and 139 deletions

View File

@ -21,7 +21,7 @@ import server.googleHandler as google
from backend.Routine import Routine
from server import login_manager, app, db
from server.forms import LoginForm, RegistrationForm, DeviceForm
from database.models import User, Calendar, Device
from database.models import User, Calendar, Device, GoogleToken
os.environ['OAUTHLIB_INSECURE_TRANSPORT'] = '1'
@ -105,19 +105,18 @@ def register():
def deleteAccount():
if not current_user.is_authenticated:
return redirect(url_for('account'))
print(current_user.getGoogleCredentials(), flush=True)
google.deleteAccount(current_user.getGoogleCredentials())
# TODO fix google delete account
google.deleteAccount(current_user)
user = db.session.query(User).filter(User.id==current_user.id).first()
logout_user()
db.session.delete(user)
db.session.delete(current_user)
db.session.commit()
logout_user()
return redirect(url_for('account'))
@app.route("/login/google")
def googlelogin():
if current_user.is_authenticated and current_user.getGoogleCredentials() != None:
if current_user.is_authenticated and current_user.google_credentials.refresh_token != None:
return redirect(url_for('account'))
authorization_url = google.login()
@ -127,35 +126,33 @@ def googlelogin():
@app.route("/login/google/callback")
def callback():
session, credentials = google.verifyResponse()
if current_user.is_authenticated and current_user.getGoogleCredentials == None:
current_user.setGoogleCredentials(credentials)
userinfo = session.get('https://www.googleapis.com/userinfo/v2/me').json()
# Create a user in your db with the information provided
# by Google
# Doesn't exist? Add it to the database.
if not User.query.get(userinfo['id']):
if not db.session.query(User).filter(User.userid==userinfo['id']).first():
gc = GoogleToken(token=credentials.get("token"),
refresh_token=credentials.get("refresh_token"))
db.session.add(gc)
newser = User(
id=userinfo['id'],
userid=userinfo['id'],
username=userinfo['name'],
email=userinfo['email'],
profile_pic=userinfo['picture'],
password_hash=""
password_hash="",
google_token = gc
)
db.session.add(newser)
db.session.commit()
user = User.query.get(userinfo['id'])
user = db.session.query(User).filter(User.userid==userinfo['id']).first()
# Begin user session by logging the user in
print("login:" + user.id)
login_user(user)
# TODO currently not using the credentials anymore
if user.getGoogleCredentials() is None:
user.setGoogleCredentials(credentials)
return flask.redirect(flask.url_for('index'))
@app.route("/logout")