Commit graph

72 commits

Author SHA1 Message Date
sam
7791c91960
feat(backend): initial /api/v1/users endpoint 2024-12-25 11:19:50 -05:00
sam
661c3eab0f
fix(backend): save data exports as data-export.zip
change the random base 64 to a directory rather than part of the
filename, so that users downloading their exports aren't greeted with a
completely incomprehensible file in their downloads folder
2024-12-19 16:19:27 +01:00
sam
80385893c7
feat: split migration into batches 2024-12-17 21:23:02 +01:00
sam
f766a2054b
feat: allow suspended *and* self-deleted users to access a handful of pages 2024-12-17 18:08:43 +01:00
sam
36cb1d2043
feat: moderation API 2024-12-17 17:52:32 +01:00
sam
11257ae069
chore: clean up backend code, fix most inspections 2024-12-14 16:51:58 +01:00
sam
49b2902d6d
fix: use url-unsafe base 64 for auth tokens
.net throws an error when decoding url-safe base 64
luckily we never decode it *except* for tokens, so those can keep using
url-unsafe base 64. they're never used in URLs after all
2024-12-14 16:39:02 +01:00
sam
9d33093339
feat: forgot password/reset password 2024-12-14 16:32:08 +01:00
sam
77c3047b1e
feat: misskey auth 2024-12-12 16:44:01 +01:00
sam
51e335f090
feat: use a FixedWindowRateLimiter keyed by IP to rate limit emails
we don't talk about the sent_emails table :)
2024-12-11 21:17:46 +01:00
sam
ff8d53814d
feat: rate limit emails to two per address per hour 2024-12-11 20:42:48 +01:00
sam
80b7f192f1
clean up RemoteAuthService 2024-12-10 14:09:32 +01:00
sam
3338243cea
feat: log in with tumblr 2024-12-09 21:48:07 +01:00
sam
d30ebacc72
chore: add license headers to all c# files 2024-12-09 21:11:46 +01:00
sam
8a8b4caa18
feat: log in with google 2024-12-09 21:07:53 +01:00
sam
d9d48c3cbf
feat: flag management 2024-12-09 14:52:31 +01:00
sam
8bd4449804
refactor(backend): move all request/response types to a new Dto namespace 2024-12-09 13:58:18 +01:00
sam
f8e6032449
chore(backend): add roslynator and fix diagnostics 2024-12-08 15:17:18 +01:00
sam
649988db25
refactor(backend): use explicit types instead of var by default 2024-12-08 15:07:25 +01:00
sam
bc7fd6d804
feat(frontend): register/log in with email 2024-12-04 17:43:02 +01:00
sam
57e1ec09c0
feat: link fediverse account to existing user 2024-12-04 01:49:03 +01:00
sam
03209e4028
chore(backend): clean imports 2024-12-03 20:05:24 +01:00
sam
18bdbc0745
feat(backend): clean deleted users 2024-12-03 14:55:19 +01:00
sam
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
sam
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
sam
c0bb76580d
even more frontend stuff 2024-11-25 17:35:24 +01:00
sam
261435c252
feat: so much more frontend stuff 2024-11-24 22:19:53 +01:00
sam
7cb17409cd
fix: explicitly set sids to null so the find free sid functions actually trigger 2024-11-24 15:39:44 +01:00
sam
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
sam
6abf505c40
refactor: make Member.display_name non-nullable and fall back to Member.name 2024-11-23 20:41:11 +01:00
sam
d0bf638a21
fix: check for obviously invalid instance URLs, use correct JSON key for mastodon scopes 2024-11-23 20:40:09 +01:00
sam
9160281ea2
feat: remove auth method 2024-11-04 22:04:04 +01:00
sam
201c56c3dd
feat: link discord account to existing account 2024-11-03 13:53:16 +01:00
sam
c4cb08cdc1
feat: initial fediverse registration/login 2024-11-03 02:07:07 +01:00
sam
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
sam
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
sam
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
sam
e030342358
feat(frontend): add, list email 2024-10-02 02:46:39 +02:00
sam
5b17c716cb
feat(backend): add add email address endpoint 2024-10-02 00:52:49 +02:00
sam
7f971e8549
chore: add csharpier to husky, format backend with csharpier 2024-10-02 00:28:07 +02:00
sam
2a66e3e25e
feat(frontend): add username editing 2024-10-01 16:06:02 +02:00
sam
f539902711
feat(backend): render flags in member response 2024-09-29 19:52:22 +02:00
sam
8fe8755183
feat(backend): validate links, allow setting links in POST /users/@me/members 2024-09-27 15:29:33 +02:00
sam
a3cbdc1a08
feat(backend): ability to set profile flags, return profile flags in get user endpoint 2024-09-27 14:48:09 +02:00
sam
a70078995b
feat(backend): add pride flag models 2024-09-26 20:15:04 +02:00
sam
e83895255e
fix(backend): return last_sid_reroll in API, update last sid reroll + last active correctly 2024-09-26 17:09:40 +02:00
sam
e76c634738
feat(backend): return short IDs 2024-09-26 15:26:52 +02:00
sam
a4a62fa6b6
fix(backend): invert unlisted member filter in RenderUserAsync 2024-09-26 02:14:58 +02:00
sam
f81ae97821
feat(backend): return unlisted status in partial member for authenticated users 2024-09-25 19:48:09 +02:00
sam
2cef7523d2
chore(backend): silence some more resharper errors 2024-09-14 16:37:52 +02:00