Commit graph

44 commits

Author SHA1 Message Date
Dessalines
464ea862b1
Preferred usernames, banners and icons. (#1055)
* Re-organizing federation tests. #746 #1040

* Adding federation support for user bios. Fixes #992

* Adding icons, banners, and preferred usernames.

- Added optional community icons, and community banners.
- Added user banners.
- Added Site icon and banner, with custom favicon.
- Set up preferred usernames. Fixes #1017
- Added an additional post sort: Active
  - Hot rank now uses the published time.
  - Active uses the most recent comment time, and is default.
- DB Migration was required to add all these fields to the views.
- Added transfercommunity helper function.
- Removed title column from communities page.
- Abstracted an image-upload-form.tsx, and a banner-icon-header.tsx
- Fixes #899

* Some navbar fixes.

* Fixing css

* Some fixes.

- Showing correct user icon and banner after save without page reload.
- Abstracting diesel update overwrite.
- Adding some docs.

* Adding @ when a user doesn't have a preferred username.
2020-08-05 12:03:46 -04:00
nutomic
76cd6ac6bc Add more checks in inbox, plus some refactoring (#76)
Merge branch 'main' into more-inbox-permissions

Move check_community_ban() into helper function

Move slur check into helper functions

Move Claims::decode and site ban check into helper function

Note: this changes behaviour in that site ban is checked in more
places now. we could easily add a boolean parameter
check_for_site_ban to get the previous behaviour back

Rewrite user_inbox and community_inbox in the same way as shared_inbox

Add check against instance allowlist etc in shared_inbox

Co-authored-by: dessalines <dessalines@noreply.yerbamate.dev>
Co-authored-by: Felix Ableitner <me@nutomic.com>
Reviewed-on: https://yerbamate.dev/LemmyNet/lemmy/pulls/76
2020-08-04 14:39:55 +00:00
Dessalines
49bd28e2d4
Adding visual captchas for register and login. (#1027)
* Adding visual captchas for register and login.

* Adding audio wav file for Captcha using espeak.

* Lots of captcha fixes.

- Removed login captchas.
- Added settings to disable captchas, and change difficulty.
- Captchas can only be checked / used once, front end gives a new one on
  failure.
- Added front end button for regenerating captcha.
- Added a disabled / pause button audio playing.

* Some more fixes.
2020-07-29 09:02:46 -04:00
Dessalines
d1342afe93
Remove extra jwt claims (for user settings) (#1025)
* Remove extra jwt claims (for user settings)

- The JWT token only contains the issuer, and your user id now.
- Now only a page refresh is necessary to pick up your settings on all
  clients, including theme, language, etc.
- GetSiteResponse now gives you your user and settings if logged in.
- Fixes #773

* Remove extra comment line, I tested nsfw

* Adding a todo to add a User_::readSafe()
2020-07-27 09:23:08 -04:00
59da2976ab Some more API cleanup.
- Extracted methods for is_mod_or_admin, and is_admin.
- Removed admins from GetPostResponse and GetCommunityResponse.
- Some cleanup.
2020-07-22 14:20:08 -04:00
Dessalines
55ce7b1339
Adding version to GetSite. Fixes #1001 (#1002)
* Adding version to GetSite. Fixes #1001

* Removing version.ts file
2020-07-21 13:20:23 +00:00
nutomic
80aef61aed Split code into cargo workspaces (#67)
More fixes

- fixed docker builds
- fixed mentions regex test
- fixed DATABASE_URL stuff
- change schema path in diesel.toml

Address review comments

- add jsonb column back into activity table
- remove authors field from cargo.toml
- adjust LEMMY_DATABASE_URL env var usage
- rename all occurences of LEMMY_DATABASE_URL to DATABASE_URL

Decouple utils and db

Split code into cargo workspaces

Co-authored-by: Felix Ableitner <me@nutomic.com>
Reviewed-on: https://yerbamate.dev/LemmyNet/lemmy/pulls/67
2020-07-10 18:15:41 +00:00
a074564458
Federation async (#848)
* Asyncify more

* I guess these changed

* Clean PR a bit

* Convert more away from failure error

* config changes for testing federation

* It was DNS

So actix-web's client relies on TRust DNS Resolver to figure out
where to send data, but TRust DNS Resolver seems to not play nice
with docker, which expressed itself as not resolving the name to
an IP address _the first time_ when making a request. The fix was
literally to make the request again (which I limited to 3 times
total, and not exceeding the request timeout in total)

* Only retry for connecterror

Since TRust DNS Resolver was causing ConnectError::Timeout,
this change limits the retry to only this error, returning
immediately for any other error

* Use http sig norm 0.4.0-alpha for actix-web 3.0 support

* Blocking function, retry http requests

* cargo +nightly fmt

* Only create one pictrs dir

* Don't yarn build

* cargo +nightly fmt
2020-07-01 08:54:29 -04:00
9e61c3be94 Rework imports 2020-05-16 20:04:17 +02:00
7485f1a5b4 Federate nsfw/locked info for posts 2020-05-05 02:09:27 +02:00
f0026065f5 Merge branch 'master' into federation_merge_from_master_1 2020-04-21 10:25:29 -04:00
ac43b86b60 Change RateLimit to act as a middleware 2020-04-19 22:59:07 -05:00
f300c67a4d Adding websocket notification system.
- HTTP and APUB clients can now send live updating messages to websocket
  clients
- Rate limiting now affects both HTTP and websockets
- Rate limiting / Websocket logic is now moved into the API Perform
  functions.
- TODO This broke getting current online users, but that will have to
  wait for the perform trait to be made async.
- Fixes #446
2020-04-19 18:08:25 -04:00
86f172076b Implement search for activitypub IDs 2020-04-17 15:46:08 +02:00
1336b4ed60 Merge branch 'dev' into federation 2020-04-14 16:07:20 -04:00
9878a58452 Fixing unwrap crash with site_view.rs 2020-04-14 12:24:05 -04:00
bb287cbd07 Adding an admin settings page.
- Fixes #620
- Adding a UserListing component. Fixes #627
2020-04-10 16:55:57 -04:00
76bf71162e Automatic instance setup based on config variables (fixes #404) 2020-03-29 00:13:13 +01:00
ee2038a75a Returning specific slurs from slur filter on failure. Fixes #463 2020-02-02 22:51:54 -05:00
7b4bf68486 Add script to test http api, fix two api calls 2020-01-31 14:17:37 +01:00
ac1d5f2b86 Done merging http-api and private_message 2020-01-23 19:17:42 -05:00
a964b4ce21 Allow comment/post upvoting from other pages.
- Fixes #355
- Votes now coming back for posts and comments on search page.
2020-01-20 18:39:45 -05:00
f1035dacc2 working! 2020-01-18 14:26:04 +01:00
dff8b947bb Trying to add r2d2 connection pooling to websockets. 2020-01-12 10:31:51 -05:00
d08e09fbdc Apply changes suggested by cargo clippy (fixes #395) 2020-01-02 12:30:00 +01:00
fca8e6a0a9 Adding some site oriented settings.
- Adding option to close registration. Fixes #350
- Adding option to disable showing NSFW buttons. Fixes #364
- Adding option to disable downvotes. Fixes #239
2019-12-11 12:21:47 -08:00
Lyra
c19ace7e6a Introduce the "MaybeOptional" trait.
This trait is a generic type that allows us to get an Option from any type and from another option. It can be used to remove the ugly "do_something", "do_something_optional" that we previously had.
2019-12-11 00:10:39 +01:00
faef62e073 Switching to shorthands for rust params. 2019-12-09 11:08:19 -08:00
d18f2c9eb1 Use builder pattern for views
- Fixes #360
2019-12-08 12:39:54 -08:00
Lyra
9fc8aacc2d Add default options for all parameters and move them out of the constructor. Rename structure to PostQueryBuilder 2019-12-07 23:54:42 +01:00
Lyra
bff3183a27 Use a dedicated structure in order to search posts 2019-12-07 13:03:03 +01:00
90ce1f1a3f Adding default sort / filter into user settings.
- Fixes #295
2019-10-20 21:21:54 -07:00
35dfe31a39 Externalizing rate limits. Upgrading to Rust 1.38
- Fixes #290
2019-10-13 12:06:18 -07:00
e24f4a2d33 Adding an online user count to main page.
- Fixes #274
2019-09-13 09:09:01 -07:00
3f6b2be2cc Adding stickied posts.
- Fixes #245
2019-09-08 23:14:13 -07:00
44442565aa Running cargo fmt on server code.
- Adding a .rustfmt.toml for the 2 space indent.
2019-09-07 08:35:05 -07:00
3561ef93a0 Adding Community and Site transfer
- Fixes #139
2019-08-23 19:40:41 -07:00
b7e73a5559 View where a URL has been cross-posted to in the past
- This shows when creating a post, or when viewing a post.
- Fixes #131
2019-08-21 22:17:15 -07:00
d7ab85ab70 Squashed commit of the following:
commit ecd6c5a2f4
Author: Dessalines <happydooby@gmail.com>
Date:   Tue Aug 13 19:49:38 2019 -0700

    Adding some docs

commit 3babd09aff
Author: Dessalines <happydooby@gmail.com>
Date:   Tue Aug 13 19:28:46 2019 -0700

    Adding save user settings

commit 6e8da9cc9e
Merge: 3246d5d c148eef
Author: Dessalines <happydooby@gmail.com>
Date:   Tue Aug 13 17:26:25 2019 -0700

    Merge branch 'dev' into nsfw

commit b3d4a5c4ce
Author: Dessalines <happydooby@gmail.com>
Date:   Sun Aug 11 20:55:09 2019 -0700

    nsfw mostly done, except for settings page.
2019-08-13 19:52:43 -07:00
d0d429a627 Adding support for community and user searching.
- Fixes #130
2019-08-10 10:32:06 -07:00
Dessalines
536c3f4915 Adding support for internationalization / i18n (#189)
* Still not working

* Starting to work on internationalization

* Main done.

* i18n translations first pass.

* Localization testing mostly done.

* Second front end pass.

* Added a few more translations.

* Adding back end translations.
2019-08-09 17:14:43 -07:00
f4fd06aa5b Fixing GetSite
- Fixes #171
2019-06-11 18:41:01 -07:00
f8615b6178 Done with reorg 2019-05-05 09:20:30 -07:00
7fb6a0b138 Mostly done with reorg. 2019-05-04 22:20:38 -07:00