added profile picture to password creation form, changed DB schema to accomodate
This commit is contained in:
parent
456c46811d
commit
5202b48bd8
3 changed files with 24 additions and 8 deletions
|
@ -57,3 +57,13 @@ button:hover, .button:hover{
|
||||||
background-color:#2b90d9;
|
background-color:#2b90d9;
|
||||||
color:white;
|
color:white;
|
||||||
}
|
}
|
||||||
|
#form-avi {
|
||||||
|
height: 128px;
|
||||||
|
width:128px;
|
||||||
|
margin:0 auto 15px;
|
||||||
|
background-size:cover;
|
||||||
|
border-radius:16px;
|
||||||
|
}
|
||||||
|
#form-avi-label {
|
||||||
|
font-size:0.6em;
|
||||||
|
}
|
||||||
|
|
|
@ -12,10 +12,14 @@
|
||||||
</noscript>
|
</noscript>
|
||||||
<!-- <div id='logo-main'></div> -->
|
<!-- <div id='logo-main'></div> -->
|
||||||
<form action='/internal/do_login' method='POST'>
|
<form action='/internal/do_login' method='POST'>
|
||||||
|
<div id='form-avi' style='background-image:url("https://fedi.lynnesbian.space/system/accounts/avatars/000/000/002/original/7ebcb4b973eee926.gif?1541354017")'></div>
|
||||||
|
<span id='form-avi-label'>@lynnesbian@fedi.lynnesbian.space</span><br /><br />
|
||||||
<label for='pw'>Password</label><br />
|
<label for='pw'>Password</label><br />
|
||||||
<input type='password' name='pw' placeholder='••••••••' required /><br />
|
<input type='password' name='pw' placeholder='••••••••' required /><br />
|
||||||
<button>Create Account</button>
|
<button>Create Account</button>
|
||||||
</form>
|
</form>
|
||||||
|
<br /><br />
|
||||||
|
Your password will be hashed using bcrypt, ensuring that nobody can read it.
|
||||||
{% include 'footer.html' %}
|
{% include 'footer.html' %}
|
||||||
</body>
|
</body>
|
||||||
</html>
|
</html>
|
16
web.py
16
web.py
|
@ -14,7 +14,7 @@ cfg = json.load(open("meta.json"))
|
||||||
|
|
||||||
db = sqlite3.connect("database.db") #TODO: switch to mysql so concurrency is possible
|
db = sqlite3.connect("database.db") #TODO: switch to mysql so concurrency is possible
|
||||||
c = db.cursor()
|
c = db.cursor()
|
||||||
c.execute("CREATE TABLE IF NOT EXISTS `data` (username TEXT NOT NULL, instance TEXT NOT NULL, secret TEXT NOT NULL, appid TEXT NOT NULL, appsecret TEXT NOT NULL, cc TEXT, latest_post TEXT, latest_timestamp TEXT, time_between_checks INT)")
|
c.execute("CREATE TABLE IF NOT EXISTS `data` (username TEXT NOT NULL, instance TEXT NOT NULL, password TEXT NOT NULL, avi TEXT NOT NULL, secret TEXT NOT NULL, appid TEXT NOT NULL, appsecret TEXT NOT NULL, cc TEXT, latest_post TEXT, latest_timestamp TEXT, time_between_checks INT)")
|
||||||
|
|
||||||
app = Flask(cfg['name'])
|
app = Flask(cfg['name'])
|
||||||
app.secret_key = cfg['flask_key']
|
app.secret_key = cfg['flask_key']
|
||||||
|
@ -51,7 +51,7 @@ def log_in():
|
||||||
#internal stuff
|
#internal stuff
|
||||||
|
|
||||||
@app.route('/internal/auth_a')
|
@app.route('/internal/auth_a')
|
||||||
def internal_auth_a():
|
def internal_auth_a(): #TODO: prevent these endpoints from being spammed somehow
|
||||||
|
|
||||||
session['instance_url'] = request.args.get('url', default='mastodon.social', type=str)
|
session['instance_url'] = request.args.get('url', default='mastodon.social', type=str)
|
||||||
if not session['instance_url'].startswith("https://"):
|
if not session['instance_url'].startswith("https://"):
|
||||||
|
@ -73,7 +73,6 @@ def internal_auth_a():
|
||||||
}
|
}
|
||||||
|
|
||||||
url = "{}/oauth/authorize?{}".format(session['instance_url'], urllib.parse.urlencode(params))
|
url = "{}/oauth/authorize?{}".format(session['instance_url'], urllib.parse.urlencode(params))
|
||||||
|
|
||||||
return url
|
return url
|
||||||
|
|
||||||
@app.route('/internal/auth_b')
|
@app.route('/internal/auth_b')
|
||||||
|
@ -86,10 +85,8 @@ def internal_auth_b():
|
||||||
if c.execute("SELECT COUNT(*) FROM data WHERE username LIKE ? AND instance LIKE ?", (session['username'], session['instance_url'])).fetchone()[0] > 0:
|
if c.execute("SELECT COUNT(*) FROM data WHERE username LIKE ? AND instance LIKE ?", (session['username'], session['instance_url'])).fetchone()[0] > 0:
|
||||||
#user already has an account with CG
|
#user already has an account with CG
|
||||||
return redirect(url_for('log_in'))
|
return redirect(url_for('log_in'))
|
||||||
|
else:
|
||||||
c.execute("INSERT INTO data (username, instance, secret, appid, appsecret) VALUES (?, ?, ?, ?, ?)", (session['username'], session['instance_url'], session['secret'], session['client_id'], session['client_secret']))
|
return redirect(url_for('home'))
|
||||||
db.commit()
|
|
||||||
return redirect(url_for('home'))
|
|
||||||
|
|
||||||
@app.route('/internal/do_login')
|
@app.route('/internal/do_login')
|
||||||
def do_login():
|
def do_login():
|
||||||
|
@ -98,3 +95,8 @@ def do_login():
|
||||||
@app.route('/create_password')
|
@app.route('/create_password')
|
||||||
def create_password():
|
def create_password():
|
||||||
return render_template("create_password.html")
|
return render_template("create_password.html")
|
||||||
|
|
||||||
|
@app.route('/internal/create_account')
|
||||||
|
def create_account():
|
||||||
|
c.execute("INSERT INTO data (username, instance, secret, appid, appsecret) VALUES (?, ?, ?, ?, ?)", (session['username'], session['instance_url'], session['secret'], session['client_id'], session['client_secret']))
|
||||||
|
db.commit()
|
||||||
|
|
Loading…
Reference in a new issue