updates database design for mariadb
This commit is contained in:
@ -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")
|
||||
|
Reference in New Issue
Block a user