summaryrefslogtreecommitdiff
path: root/src
Commit message (Collapse)AuthorAge
* Remove the now-unused `timestamp()` method from RequestedAt.Owen Jacobson2024-09-11
| | | | Access its contents using pattern matching, or reinstate the method as needed.
* Expire tokens based on when they were last used, not based on when they were ↵Owen Jacobson2024-09-11
| | | | | | | | issued. This lets us shorten the expiry interval - by quite a bit. Tokens in regular use will now live indefinitely, while tokens that go unused for _one week_ will be invalidated and deleted. This will reduce the number of "dead" tokens (still valid, but _de facto_ no longer in use) stored in the table, and limit the exposure period if a token is leaked and then not used immediately. It's also much less likely to produce surprise logouts three months after installation. You'll either stay logged in, or have to log in again much, much sooner, making it feel a lot more regular and less surprising.
* Remove the notion of "channel members."Owen Jacobson2024-09-11
| | | | | | This came out of a conversation with Kit. Their position, loosely, was that seeing scrollback when you look at a channel is useful, and since message delivery isn't meaningfully tied to membership (or at least doesn't have to be), what the hell is membership even doing? (I may have added that last part.) My take, on top of that, is that membership increases the amount of concepts we're committed to. We don't need that commitment yet.
* Align /login form type name with other form type names.Owen Jacobson2024-09-04
|
* Support joining channels.Owen Jacobson2024-09-04
|
* Support leaving a channelOwen Jacobson2024-09-04
|
* Allow any login to create channels.Owen Jacobson2024-09-04
|
* Fix mis-placed commentOwen Jacobson2024-09-04
|
* Login fixes:Owen Jacobson2024-09-04
| | | | | | | | 1. Stop rejecting login attempts when there's an identity cookie already set. This looked like a good idea, but in practice it's not a sufficient check, as it doesnt' ensure the identity cookie is actually valid. Validating it is an option, but the do-nothing alternative (which I went with) is that a login request while already logged in overwrites your identity cookie, instead. It's less code, semantically not bonkers, and doesn't _appear_ to introduce any interesting user security issues. 2. Redirect to / after successful login/logout, instead of dropping the user on a useless text page.
* Expire sessions after 90 days.Owen Jacobson2024-09-04
|
* Display a different / page depending on whether the current identity is ↵Owen Jacobson2024-09-04
| | | | | | | | valid or not. This is mostly a proof of concept for the implementation of form login implemented in previous commits, but it _is_ useful as it controls whether the / page shows login, or shows logout. From here, chat is next!
* Add logout support.Owen Jacobson2024-09-03
|
* Allow login creation and authentication.Owen Jacobson2024-09-03
| | | | | | | | | | This is a beefy change, as it adds a TON of smaller pieces needed to make this all function: * A database migration. * A ton of new crates for things like password validation, timekeeping, and HTML generation. * A first cut at a module structure for routes, templates, repositories. * A family of ID types, for identifying various kinds of domain thing. * AppError, which _doesn't_ implement Error but can be sent to clients.
* Store state in sqlite. Default to .hi in the cwd.Owen Jacobson2024-08-30
|
* Make it an HTTP serverOwen Jacobson2024-08-30
|
* Empty bin crateOwen Jacobson2024-08-30