649988db25
refactor(backend): use explicit types instead of var by default
2024-12-08 15:07:25 +01:00
bc7fd6d804
feat(frontend): register/log in with email
2024-12-04 17:43:02 +01:00
57e1ec09c0
feat: link fediverse account to existing user
2024-12-04 01:49:03 +01:00
03209e4028
chore(backend): clean imports
2024-12-03 20:05:24 +01:00
9966656c0c
fix(backend): don't need [NotMapped] for these actually
2024-12-03 20:04:28 +01:00
c20831f20d
feat(frontend): export ui
2024-12-03 20:02:09 +01:00
74222ead45
feat(frontend): replace placeholder avatar with identicons
...
i don't actually know what the license on the kitten image is, and while
it's very unlikely, i don't want to get into legal trouble. it was only
ever supposed to be a temporary image, too.
identicons aren't the prettiest but at least they have a clear license
:3
2024-12-03 15:19:52 +01:00
71d3b42330
fix(frontend): don't throw a 500 error if a user or member doesn't exist
2024-12-03 14:55:41 +01:00
18bdbc0745
feat(backend): clean deleted users
2024-12-03 14:55:19 +01:00
903be2709c
feat(backend): initial data export support
...
obviously it's missing things that haven't been added yet
2024-12-02 18:06:19 +01:00
f0ae648492
feat(frontend): force log out page
2024-12-02 16:32:13 +01:00
54be457a47
chore(frontend): add docs to RequestArgs
2024-12-02 16:31:48 +01:00
b47ed7b699
rate limit tweaks
...
the /users/{id} prefix contains most API routes so it's not a good idea
to put a single rate limit on *all* of them combined. the rate limiter
will now ignore the /users/{id} prefix *if* there's a second {id}
parameter in the URL.
also, X-RateLimit-Bucket is no longer hashed, so it can be directly
decoded by clients to get the actual bucket name. i'm not sure if this
will actually be useful, but it's nice to have the option.
2024-12-02 16:13:56 +01:00
02e2b230bf
feat(frontend): actual error page
2024-12-02 15:24:09 +01:00
f3bb2d5d01
fix(frontend): add autocomplete=off tags to most inputs
2024-12-02 15:06:17 +01:00
de733a0682
feat(frontend): discord registration/login/linking
...
also moves the registration form found on the mastodon callback page
into a component so we're not repeating the same code for every auth method
2024-11-28 21:37:30 +01:00
4780be3019
fix(backend): add unique index to auth methods
2024-11-28 21:29:25 +01:00
8b1d5b2c1b
feat(backend): validate custom preferences on save
2024-11-28 17:28:52 +01:00
71b59dbb00
feat: add icon list generation script
...
this is used to validate icons for custom preferences. it generates both
typescript and c# code
2024-11-27 20:00:28 +01:00
f435ad4cf5
feat(frontend): fields editor
2024-11-27 19:50:45 +01:00
7c52ab759c
tiny readme update
2024-11-25 23:12:19 +01:00
59496a8cd8
feat(frontend): edit names/pronouns
2024-11-25 23:07:17 +01:00
b6d42fb15d
feat(frontend): replace non-working bootstrap tooltips with tippy.js
2024-11-25 21:43:11 +01:00
004111feb6
feat(frontend): unlisted toggle on member editor
2024-11-25 21:25:18 +01:00
c237aa8827
fix(backend): add unlisted param to patch member
2024-11-25 21:24:28 +01:00
c0bb76580d
even more frontend stuff
2024-11-25 17:35:24 +01:00
8bba5f6137
fix: tweak rate limits as just browsing is triggering them
2024-11-25 16:15:07 +01:00
261435c252
feat: so much more frontend stuff
2024-11-24 22:19:53 +01:00
c179669799
feat(frontend): start settings
2024-11-24 17:36:12 +01:00
0c78cd25b0
fix(backend): use serilog theme that actually works with a light terminal
2024-11-24 16:01:40 +01:00
0d47f1fb01
you know what let's just change frontend framework again
2024-11-24 15:55:47 +01:00
c8cd483d20
feat: sid redirect controller
2024-11-24 15:40:12 +01:00
7cb17409cd
fix: explicitly set sids to null so the find free sid functions actually trigger
2024-11-24 15:39:44 +01:00
4e9c4af4a5
feat(auth): misc fediverse auth improvements
...
- remove automatic app validation
- add force refresh option to GetFediverseUrlAsync
- pass state to mastodon authorization URI
2024-11-24 15:37:36 +01:00
142ff36d3a
fix: stop crash on start with empty sentry dsn, make max avatar length a constant
2024-11-23 20:43:43 +01:00
d87856bf2c
refactor: change ConvertBase64UriToImage from extension method to static method
2024-11-23 20:42:14 +01:00
6abf505c40
refactor: make Member.display_name non-nullable and fall back to Member.name
2024-11-23 20:41:11 +01:00
d0bf638a21
fix: check for obviously invalid instance URLs, use correct JSON key for mastodon scopes
2024-11-23 20:40:09 +01:00
9160281ea2
feat: remove auth method
2024-11-04 22:04:04 +01:00
201c56c3dd
feat: link discord account to existing account
2024-11-03 13:53:16 +01:00
c4cb08cdc1
feat: initial fediverse registration/login
2024-11-03 02:07:07 +01:00
5a22807410
fix: don't pass CancellationToken to method that shouldn't abort
...
also add license header to project
2024-11-02 21:23:49 +01:00
d982342ab8
refactor: pass DbContextOptions into context directly
...
turns out efcore doesn't like it when we create a new options instance
(which includes a new data source *and* a new logger factory)
every single time we create a context. this commit extracts
OnConfiguring into static methods which are called when the context is
added to the service collection and when it's manually created for
migrations and the importer.
2024-10-30 15:35:23 +01:00
0077a165b5
feat: add some fediverse authentication code
...
* create applications on instances
* generate authorize URLs
* exchange oauth code for token and user info (untested)
* recreate mastodon app on authentication failure
2024-10-06 15:34:31 +02:00
a4ca0902a3
fix(frontend): proxy authenticated non-GET requests through rate limiter
2024-10-03 16:53:26 +02:00
567e794154
feat(frontend): hide everything email related if it's disabled on the backend
2024-10-02 21:05:52 +02:00
40da4865bc
feat(frontend): add confirmation before force log out
2024-10-02 16:49:33 +02:00
e030342358
feat(frontend): add, list email
2024-10-02 02:46:39 +02:00
5b17c716cb
feat(backend): add add email address endpoint
2024-10-02 00:52:49 +02:00
7f971e8549
chore: add csharpier to husky, format backend with csharpier
2024-10-02 00:28:07 +02:00