Commit Graph

55 Commits

Author SHA1 Message Date
Jonas Schäfer
2f7b99c3cc Implement token revocation
Fixes #18.
2021-01-21 19:30:19 +01:00
Jonas Schäfer
47bf47c7b3 Fix unused import 2021-01-21 18:43:20 +01:00
Jonas Schäfer
2eed571fbb Fix type annotation 2021-01-21 18:42:59 +01:00
Jonas Schäfer
b55e7eb966 Add dark mode
Fixes #28.
2021-01-21 18:39:07 +01:00
Jonas Schäfer
e18b733017 Add more features to circle editor
- Manage members
- Update name

(Normally, I’d fix this up into the initial implementation
commit, but things happened in between and the rebase would be
painful.)
2021-01-21 18:09:57 +01:00
Jonas Schäfer
ff870ae71e Update about page
- Show more software versions in debug mode (only)
- Add license links and information
2021-01-21 18:09:57 +01:00
Jonas Schäfer
b6188ed29f Add button to export debug info of a user 2021-01-21 18:09:57 +01:00
Jonas Schäfer
f5d0bfdec7 Remove stray print statement 2021-01-21 18:09:57 +01:00
Jonas Schäfer
f363ff0b38 Fix error handling
Previously, some kinds of errors would throw nice and fun cascades
of exceptions.

We now have a nice, clean error page for 500 and 503 (backend
connectivity) errors which includes minimal debugging information
for productive setups and a traceback for development setups.

In any case, the full exception is logged to the log with an error
ID which is printed on the error page.
2021-01-21 18:09:55 +01:00
Jonas Schäfer
065c065b3b Determine the profile visiblity more conservatively
This will ensure that the user is not incorrectly shown a lower
visibility level than parts of their profile have.
2021-01-21 16:55:11 +01:00
Jonas Schäfer
17efe53106 Implement group support (we call ’em circles) 2021-01-21 16:55:10 +01:00
Jonas Schäfer
006fea97a6 Completely strip the english "translation" 2021-01-21 16:54:39 +01:00
Jonas Schäfer
c1dbec51ab Use icons instead of Unicode symbols for buttons
Fixes #26.
2021-01-18 17:35:03 +01:00
Jonas Schäfer
16f990f475 Fix line height of link buttons to be the same as input buttons
Fixes #27.
2021-01-17 20:27:44 +01:00
Jonas Schäfer
be7be0e16a Add link buttons to demo for comparing styles 2021-01-17 20:22:52 +01:00
Jonas Schäfer
c3cee9b3a2 Add some missing translations 2021-01-17 20:13:35 +01:00
Jonas Schäfer
1b6d340d49 Modify invitation layout
- Make URLs easily copyable
- Do not show XMPP URI
2021-01-17 20:13:05 +01:00
Jonas Schäfer
427f73811c Add support for modifying profile access model
Fixes #17.
2021-01-17 20:12:01 +01:00
Jonas Schäfer
e0cfcc6aaa 12-factorize application a little
snikket_web can now be fully configured via the environment alone,
no extra files needed. It is still supported to inject a python
file to generate environment variables though, which may be
useful for generating and reloading a secret key.
2021-01-17 20:11:26 +01:00
Jonas Schäfer
fadbdaf204 Restore compatibility with Python 3.7 2021-01-17 20:11:26 +01:00
Jonas Schäfer
fce7b9a637 Move footer to the bottom if content is not larger than viewport 2021-01-17 20:11:26 +01:00
Jonas Schäfer
fa700bba07 Massive code cleanup
- Avoid fighting import cycles using a factory function
- Collapse useless subpackages into simple modules
- Move flask plugins / infrastructure in own module
- Refactor how blueprints are used to localize information about
  URL routing to app factory
2021-01-17 20:11:25 +01:00
Jonas Schäfer
e476d9b7c2 Implement admin dashboard
Fixes #23.
2021-01-17 20:10:04 +01:00
Jonas Schäfer
9e3fcbaf67 Prepare for fully typechecked codebase 2021-01-16 16:05:54 +01:00
Jonas Schäfer
d3777d3b07 Make flake8 happy 2021-01-16 15:22:46 +01:00
Jonas Schäfer
6660fe76ea Extend and improve stylesheet
- Support for blockquotes
- Support for lists (ol, ul)
- Make tertiary buttons more obvious by using an underline
- Extend demo to showcase new features
2021-01-16 15:16:04 +01:00
Jonas Schäfer
d8fe169ba4 Add warning box to inform user of password change implications 2021-01-16 15:16:04 +01:00
Jonas Schäfer
00f678a86f Redefine box styles to be independent of primary/accent for semantics 2021-01-16 15:16:04 +01:00
Jonas Schäfer
a88c5b92dd Introduce layer of abstraction in colour definition
The raw values now map to names describing their hue. Only when
mapping them to variable names, we assign semantic meaning. This
allows easy re-use of colour values between different semantic
meanings and changing e.g. accent vs. primary without affecting
the use as warning.
2021-01-16 15:16:04 +01:00
Jonas Schäfer
909a8ef2a7 Update logout comment with relevant feature request 2020-04-30 16:14:14 +02:00
Jonas Schäfer
22a371444d Remove compatibility hacks after bugs got fixed
See-Also: https://issues.prosody.im/1500
See-Also: https://issues.prosody.im/1501
2020-04-30 16:14:14 +02:00
Jonas Schäfer
12276337c1 Partially log requests sent to the API
Payloads containing sensitive content (such as passwords and
tokens) should be hidden.
2020-04-30 16:14:14 +02:00
Jonas Schäfer
d6b1ce8773 Make logging configurable 2020-04-30 16:14:14 +02:00
Jonas Schäfer
ba6ed22de0 Tweak the font sizes on the login page a little
It’s nicer if the domain name is larger than the main text.
2020-04-30 16:14:14 +02:00
Jonas Schäfer
880b4c22d0 Get rid of debug prints 2020-04-30 16:14:14 +02:00
Jonas Schäfer
04d9f9fd9b Properly handle the various login error conditions
Note that this includes setting content types on the sessions,
which is why this spills over into the XML IQ function.
2020-04-30 16:14:14 +02:00
Jonas Schäfer
095970adb4 Convert login page to proper form
- free CSRF protection
- free "empty field" early out
- easier passing on of errors to the view
2020-04-30 16:14:14 +02:00
Jonas Schäfer
af08f31cf3 Include language tag in html/@lang 2020-03-07 16:56:15 +01:00
Jonas Schäfer
e07fbb0c97 Start translating the web portal 2020-03-07 16:55:12 +01:00
Jonas Schäfer
6819a4eec6 Clean up about page 2020-03-07 13:31:40 +01:00
Jonas Schäfer
18279e3478 Add version info to package 2020-03-07 13:31:30 +01:00
Jonas Schäfer
76c38030a8 Improve avatar route handler
- Fix etag attaching (add_etag is actually a coroutine which hashes
  the data payload)
- Add expires header (with now + 1800s default) so that we don’t
  get hit with an avatar request on each load -- also helps with
  page responsiveness.
- Proper handling for HEAD requests.
- CSP to prevent funny SVG attacks.
2020-03-07 13:12:30 +01:00
Jonas Schäfer
56b0b7b669 Correctly handle unset nickname (e.g. on fresh accounts) 2020-03-07 13:12:19 +01:00
Jonas Schäfer
9584503b57 Reverse order of avatar/name display
I think this creates a nice symmetry with the Snikket logo on the
left.
2020-03-07 13:11:50 +01:00
Jonas Schäfer
71733adc90 Fix various edge cases around stale sessions
If a session cookie is set, but prosody doesn’t know about the
session anymore, we could get into fun states. This patch fixes
them by requiring the session to be tested with a ping request
on each HTTP request.
2020-03-07 13:11:45 +01:00
Jonas Schäfer
5ee2d97eb6 Implement support for shim avatar display 2020-03-07 13:11:43 +01:00
Jonas Schäfer
c902c59f8b Implement support for avatars 2020-03-07 12:38:17 +01:00
Jonas Schäfer
8785a99621 Fix incorrect space between buttons 2020-03-07 11:16:51 +01:00
Jonas Schäfer
6e47c8141c Revamp home screen 2020-03-07 11:16:39 +01:00
Jonas Schäfer
944cd333b3 Add support for a profile change page 2020-03-07 11:16:29 +01:00