use full URL as user identifier instead of bare domain

This commit is contained in:
Kyle Mahan 2015-04-25 09:28:14 -07:00
parent 9a28107a3e
commit b3cf4e7d00
3 changed files with 11 additions and 13 deletions

View file

@ -30,7 +30,7 @@ entry_to_reply_context = db.Table(
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
url = db.Column(db.String(256))
domain = db.Column(db.String(256))
#domain = db.Column(db.String(256))
micropub_endpoint = db.Column(db.String(512))
access_token = db.Column(db.String(512))
settings = db.Column(JsonType)
@ -46,7 +46,7 @@ class User(db.Model):
return False
def get_id(self):
return self.domain
return self.url
def get_setting(self, key, default=None):
if self.settings is None:

View file

@ -34,7 +34,7 @@
<a href="{{ url_for('.settings') }}">Settings</a>
</li>
<li>
{{ current_user.domain }}
{{ current_user.url }}
(<a href="{{ url_for('.logout') }}">Logout</a>)
</li>
</ul>

View file

@ -205,14 +205,11 @@ def login_callback(resp):
if resp.error:
flask.flash(cgi.escape('Warning: ' + resp.error))
domain = urllib.parse.urlparse(resp.me).netloc
user = load_user(domain)
user = load_user(resp.me)
if not user:
user = User()
user.domain = domain
user = User(url=resp.me)
db.session.add(user)
user.url = resp.me
db.session.commit()
flask_login.login_user(user, remember=True)
update_micropub_syndicate_to()
@ -235,16 +232,17 @@ def micropub_callback(resp):
flask.flash(cgi.escape('Authorize error: ' + resp.error))
return flask.redirect(flask.url_for('.index'))
domain = urllib.parse.urlparse(resp.me).netloc
user = load_user(domain)
user = load_user(resp.me)
if not user:
flask.flash(cgi.escape('Unknown user for domain: ' + domain))
flask.flash(cgi.escape('Unknown user for url: ' + resp.me))
return flask.redirect(flask.url_for('.index'))
user.micropub_endpoint = resp.micropub_endpoint
user.access_token = resp.access_token
db.session.commit()
update_micropub_syndicate_to()
flask.flash('Logged in as ' + user.url)
return flask.redirect(resp.next_url or flask.url_for('.index'))
@ -280,8 +278,8 @@ def deauthorize():
@login_mgr.user_loader
def load_user(domain):
return User.query.filter_by(domain=domain).first()
def load_user(url):
return User.query.filter_by(url=url).first()
@views.route('/subscribe', methods=['GET', 'POST'])