diff --git a/lemonauth/static/lemonauth/css/indie.styl b/lemonauth/static/lemonauth/css/indie.styl
index ad7a699..ee7a853 100644
--- a/lemonauth/static/lemonauth/css/indie.styl
+++ b/lemonauth/static/lemonauth/css/indie.styl
@@ -2,3 +2,14 @@
img
height 2em
margin-right .5em
+.tippy-tooltip
+ &.success-theme
+ color $base0B
+ background-color $base03
+ &.warning-theme
+ color $base0A
+ background-color $base03
+.verified-success
+ color $base0B
+.verified-warning
+ color $base0A
diff --git a/lemonauth/templates/lemonauth/indie.html b/lemonauth/templates/lemonauth/indie.html
index 1f03a0a..d6a769d 100644
--- a/lemonauth/templates/lemonauth/indie.html
+++ b/lemonauth/templates/lemonauth/indie.html
@@ -1,5 +1,5 @@
{% extends 'lemoncurry/layout.html' %}
-{% load static %}
+{% load markdown static %}
{% block styles %}
@@ -13,6 +13,11 @@
sign in to
{% if app %}{{ app.name | first }}{% endif %}
{% if app %}({% endif %}{{ params.client_id }}{% if app %}){% endif %}?
+ {% if verified %}
+
+ {% else %}
+
+ {% endif %}
@@ -35,4 +40,16 @@
+
+
+ this client has been verified using {{ '' | force_escape }}
- they are who they claim to be!
+
+
+ this client could not be verified using {{ '' | force_escape }}
- check the redirect uri carefully yourself!
+
+{% endblock %}
+{% block foot %}
+
{% endblock %}
diff --git a/lemonauth/views/indie.py b/lemonauth/views/indie.py
index 2dff96d..acb5a3e 100644
--- a/lemonauth/views/indie.py
+++ b/lemonauth/views/indie.py
@@ -58,18 +58,20 @@ class IndieView(TemplateView):
rels = (client.to_dict()['rel-urls']
.get(params['redirect_uri'], {})
.get('rels', ()))
- if 'redirect_uri' not in rels:
- return HttpResponseBadRequest(
- 'your redirect_uri is not published on your client_id page',
- content_type='text/plain'
- )
+ verified = 'redirect_uri' in rels
try:
app = client.to_dict(filter_by_type='h-x-app')[0]['properties']
except IndexError:
app = None
- return {'app': app, 'me': me, 'params': params, 'title': 'indieauth'}
+ return {
+ 'app': app,
+ 'me': me,
+ 'verified': verified,
+ 'params': params,
+ 'title': 'indieauth',
+ }
def post(self, request):
post = request.POST.dict()
diff --git a/lemoncurry/static/lemoncurry/css/theme.js b/lemoncurry/static/lemoncurry/css/theme.js
index 47d0b61..06e806f 100644
--- a/lemoncurry/static/lemoncurry/css/theme.js
+++ b/lemoncurry/static/lemoncurry/css/theme.js
@@ -11,8 +11,15 @@ module.exports = function() {
return function(style) {
for (let i = 0; i < 16; i++) {
const key = 'base0' + i.toString(16).toUpperCase();
+ const hex = theme[key];
+ const colour = new stylus.nodes.RGBA(
+ parseInt(hex.substr(0, 2), 16),
+ parseInt(hex.substr(2, 2), 16),
+ parseInt(hex.substr(4, 2), 16),
+ 1
+ );
- style.define('$' + key, new stylus.nodes.Literal('#' + theme[key]));
+ style.define('$' + key, colour);
}
};
};
diff --git a/lemoncurry/static/tippy.js b/lemoncurry/static/tippy.js
new file mode 120000
index 0000000..3bb7734
--- /dev/null
+++ b/lemoncurry/static/tippy.js
@@ -0,0 +1 @@
+../../node_modules/tippy.js/dist
\ No newline at end of file
diff --git a/lemoncurry/templates/lemoncurry/layout.html b/lemoncurry/templates/lemoncurry/layout.html
index 9b8d350..021dea9 100644
--- a/lemoncurry/templates/lemoncurry/layout.html
+++ b/lemoncurry/templates/lemoncurry/layout.html
@@ -24,6 +24,7 @@
integrity="sha384-PsH8R72JQ3SOdhVi3uxftmaW6Vc51MKb0q5P2rRUpPvrszuE4W1povHYgTpBfshb" crossorigin="anonymous" />
{% compress css %}
+
{% block styles %}{% endblock %}
{% endcompress %}
@@ -64,5 +65,9 @@
integrity="sha384-vFJXuSJphROIrBnz7yo7oB41mKfc8JzQZiCq4NCceLEaO4IHwicKwpJf9c9IpFgh">
+ {% compress js %}
+
+ {% block foot %}{% endblock %}
+ {% endcompress %}