]> Untitled Git - lemmy.git/commitdiff
Dont return error in case optional auth is invalid (#2879)
authorNutomic <me@nutomic.com>
Thu, 25 May 2023 14:50:07 +0000 (16:50 +0200)
committerGitHub <noreply@github.com>
Thu, 25 May 2023 14:50:07 +0000 (10:50 -0400)
* Dont return error in case optional auth is invalid

* fixes

92 files changed:
api_tests/src/user.spec.ts
crates/api/src/comment/distinguish.rs
crates/api/src/comment/like.rs
crates/api/src/comment/save.rs
crates/api/src/comment_report/create.rs
crates/api/src/comment_report/list.rs
crates/api/src/comment_report/resolve.rs
crates/api/src/community/add_mod.rs
crates/api/src/community/ban.rs
crates/api/src/community/block.rs
crates/api/src/community/follow.rs
crates/api/src/community/hide.rs
crates/api/src/community/transfer.rs
crates/api/src/local_user/add_admin.rs
crates/api/src/local_user/ban_person.rs
crates/api/src/local_user/block.rs
crates/api/src/local_user/change_password.rs
crates/api/src/local_user/list_banned.rs
crates/api/src/local_user/notifications/list_mentions.rs
crates/api/src/local_user/notifications/list_replies.rs
crates/api/src/local_user/notifications/mark_all_read.rs
crates/api/src/local_user/notifications/mark_mention_read.rs
crates/api/src/local_user/notifications/mark_reply_read.rs
crates/api/src/local_user/notifications/unread_count.rs
crates/api/src/local_user/report_count.rs
crates/api/src/local_user/save_settings.rs
crates/api/src/post/feature.rs
crates/api/src/post/like.rs
crates/api/src/post/lock.rs
crates/api/src/post/mark_read.rs
crates/api/src/post/save.rs
crates/api/src/post_report/create.rs
crates/api/src/post_report/list.rs
crates/api/src/post_report/resolve.rs
crates/api/src/private_message/mark_read.rs
crates/api/src/private_message_report/create.rs
crates/api/src/private_message_report/list.rs
crates/api/src/private_message_report/resolve.rs
crates/api/src/site/leave_admin.rs
crates/api/src/site/mod_log.rs
crates/api/src/site/purge/comment.rs
crates/api/src/site/purge/community.rs
crates/api/src/site/purge/person.rs
crates/api/src/site/purge/post.rs
crates/api/src/site/registration_applications/approve.rs
crates/api/src/site/registration_applications/list.rs
crates/api/src/site/registration_applications/unread_count.rs
crates/api/src/websocket.rs
crates/api_common/src/utils.rs
crates/api_crud/src/comment/create.rs
crates/api_crud/src/comment/delete.rs
crates/api_crud/src/comment/read.rs
crates/api_crud/src/comment/remove.rs
crates/api_crud/src/comment/update.rs
crates/api_crud/src/community/create.rs
crates/api_crud/src/community/delete.rs
crates/api_crud/src/community/list.rs
crates/api_crud/src/community/remove.rs
crates/api_crud/src/community/update.rs
crates/api_crud/src/custom_emoji/create.rs
crates/api_crud/src/custom_emoji/delete.rs
crates/api_crud/src/custom_emoji/update.rs
crates/api_crud/src/post/create.rs
crates/api_crud/src/post/delete.rs
crates/api_crud/src/post/read.rs
crates/api_crud/src/post/remove.rs
crates/api_crud/src/post/update.rs
crates/api_crud/src/private_message/create.rs
crates/api_crud/src/private_message/delete.rs
crates/api_crud/src/private_message/read.rs
crates/api_crud/src/private_message/update.rs
crates/api_crud/src/site/create.rs
crates/api_crud/src/site/read.rs
crates/api_crud/src/site/update.rs
crates/api_crud/src/user/delete.rs
crates/apub/src/activities/block/mod.rs
crates/apub/src/activities/community/collection_add.rs
crates/apub/src/activities/community/lock_page.rs
crates/apub/src/activities/community/report.rs
crates/apub/src/activities/community/update.rs
crates/apub/src/activities/deletion/delete_user.rs
crates/apub/src/activities/deletion/mod.rs
crates/apub/src/activities/following/follow.rs
crates/apub/src/activities/following/mod.rs
crates/apub/src/activities/voting/mod.rs
crates/apub/src/api/list_comments.rs
crates/apub/src/api/list_posts.rs
crates/apub/src/api/read_community.rs
crates/apub/src/api/read_person.rs
crates/apub/src/api/resolve_object.rs
crates/apub/src/api/search.rs
crates/routes/src/images.rs

index 204dc727f14fb05dc0edc831725c5e92b2827eba..afe21d1a06b13ed732d3ecd185f9a308d285d12a 100644 (file)
@@ -18,6 +18,8 @@ import {
   saveUserSettingsFederated,
   setupLogins,
 } from "./shared";
+import { LemmyHttp } from "lemmy-js-client";
+import { GetPosts } from "lemmy-js-client/dist/types/GetPosts";
 
 beforeAll(async () => {
   await setupLogins();
@@ -95,3 +97,19 @@ test("Delete user", async () => {
   expect((await resolvePost(alpha, remotePost)).post).toBeUndefined();
   expect((await resolveComment(alpha, remoteComment)).comment).toBeUndefined();
 });
+
+test("Requests with invalid auth should be treated as unauthenticated", async () => {
+  let invalid_auth: API = {
+    client: new LemmyHttp("http://127.0.0.1:8541"),
+    auth: "invalid",
+  };
+  let site = await getSite(invalid_auth);
+  expect(site.my_user).toBeUndefined();
+  expect(site.site_view).toBeDefined();
+
+  let form: GetPosts = {
+    auth: "invalid",
+  };
+  let posts = invalid_auth.client.getPosts(form);
+  expect((await posts).posts).toBeDefined();
+});
index cf51107f4b6ddebdc3dedc5daf2843700bd8e208..73e1469e3f6de23c1c57e2b637bb892fc4c80f60 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, DistinguishComment},
   context::LemmyContext,
-  utils::{check_community_ban, get_local_user_view_from_jwt, is_mod_or_admin},
+  utils::{check_community_ban, is_mod_or_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   source::comment::{Comment, CommentUpdateForm},
@@ -23,8 +23,7 @@ impl Perform for DistinguishComment {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CommentResponse, LemmyError> {
     let data: &DistinguishComment = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let comment_id = data.comment_id;
     let orig_comment = CommentView::read(context.pool(), comment_id, None).await?;
index 6946b60c87aa68a1b5a6d39488dc9d52668eee8a..b6e7e504327da40c0273b143c2a863824a58d216 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, CreateCommentLike},
   context::LemmyContext,
-  utils::{check_community_ban, check_downvotes_enabled, get_local_user_view_from_jwt},
+  utils::{check_community_ban, check_downvotes_enabled, local_user_view_from_jwt},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -30,8 +30,7 @@ impl Perform for CreateCommentLike {
   ) -> Result<CommentResponse, LemmyError> {
     let data: &CreateCommentLike = self;
     let local_site = LocalSite::read(context.pool()).await?;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let mut recipient_ids = Vec::<LocalUserId>::new();
 
index 03051f6cc8afcc068f4e4a7cde13f0df589fdcd2..d52b3322d668e18815c7fd9374d4d1dea0c3d280 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, SaveComment},
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::comment::{CommentSaved, CommentSavedForm},
@@ -23,8 +23,7 @@ impl Perform for SaveComment {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CommentResponse, LemmyError> {
     let data: &SaveComment = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let comment_saved_form = CommentSavedForm {
       comment_id: data.comment_id,
index fe2471ede2d677b2347d8909e16cebcea1728cce..8d016bf53260f33ac4a7cee4a035e8e976dd8988 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentReportResponse, CreateCommentReport},
   context::LemmyContext,
-  utils::{check_community_ban, get_local_user_view_from_jwt, send_new_report_email_to_admins},
+  utils::{check_community_ban, local_user_view_from_jwt, send_new_report_email_to_admins},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -28,8 +28,7 @@ impl Perform for CreateCommentReport {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommentReportResponse, LemmyError> {
     let data: &CreateCommentReport = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let reason = self.reason.trim();
index 8aa3fcbcd87a02c9013c518b24301d2736be70a1..2cd9ca1bdff3bb434db3cfde004e318992aa3280 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{ListCommentReports, ListCommentReportsResponse},
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views::comment_report_view::CommentReportQuery;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -21,8 +21,7 @@ impl Perform for ListCommentReports {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<ListCommentReportsResponse, LemmyError> {
     let data: &ListCommentReports = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let person_id = local_user_view.person.id;
     let admin = local_user_view.person.admin;
index f5fd6b124242fd3f4aef0fc08d645a3c31cd2ebf..4ba45481f2d2b5f58d2c0997a45a196b7fff3ba7 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentReportResponse, ResolveCommentReport},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_mod_or_admin},
+  utils::{is_mod_or_admin, local_user_view_from_jwt},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{source::comment_report::CommentReport, traits::Reportable};
@@ -22,8 +22,7 @@ impl Perform for ResolveCommentReport {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommentReportResponse, LemmyError> {
     let data: &ResolveCommentReport = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let report_id = data.report_id;
     let person_id = local_user_view.person.id;
index 7052f7cdf50a6ec792137c59e3aa97aadff29215..80c470de967365bc53fdfd315d561b539c242a86 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{AddModToCommunity, AddModToCommunityResponse},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_mod_or_admin},
+  utils::{is_mod_or_admin, local_user_view_from_jwt},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -27,8 +27,7 @@ impl Perform for AddModToCommunity {
     websocket_id: Option<ConnectionId>,
   ) -> Result<AddModToCommunityResponse, LemmyError> {
     let data: &AddModToCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let community_id = data.community_id;
 
index c19df91ff9fc19c514d25a4d3e96c76898906596..47cb6798fa7f01d0be04c2f787181eb8688a980b 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{BanFromCommunity, BanFromCommunityResponse},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_mod_or_admin, remove_user_data_in_community},
+  utils::{is_mod_or_admin, local_user_view_from_jwt, remove_user_data_in_community},
   websocket::{
     handlers::messages::SendCommunityRoomMessage,
     serialize_websocket_message,
@@ -40,8 +40,7 @@ impl Perform for BanFromCommunity {
     websocket_id: Option<ConnectionId>,
   ) -> Result<BanFromCommunityResponse, LemmyError> {
     let data: &BanFromCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let community_id = data.community_id;
     let banned_person_id = data.person_id;
index 58dabf1c07a79593351c75b41cf6f235aa09ac75..21112971f127a36a8115a8353926ae46816f458e 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{BlockCommunity, BlockCommunityResponse},
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::{
@@ -26,8 +26,7 @@ impl Perform for BlockCommunity {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<BlockCommunityResponse, LemmyError> {
     let data: &BlockCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let community_id = data.community_id;
     let person_id = local_user_view.person.id;
index b519d214b29e2b21d516a73d071bad926dc8d7b7..9e4efb33f6bc5c908ba7c2cd6bd9e3327fbf7217 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{CommunityResponse, FollowCommunity},
   context::LemmyContext,
-  utils::{check_community_ban, check_community_deleted_or_removed, get_local_user_view_from_jwt},
+  utils::{check_community_ban, check_community_deleted_or_removed, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   source::{
@@ -26,8 +26,7 @@ impl Perform for FollowCommunity {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CommunityResponse, LemmyError> {
     let data: &FollowCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let community_id = data.community_id;
     let community = Community::read(context.pool(), community_id).await?;
index 8e18115782559dafc037a6821fc7f2b0f8d5b432..e33bf32caecda8d81fd80c9c392c19177447c806 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{CommunityResponse, HideCommunity},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -28,8 +28,7 @@ impl Perform for HideCommunity {
     let data: &HideCommunity = self;
 
     // Verify its a admin (only admin can hide or unhide it)
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     is_admin(&local_user_view)?;
 
     let community_form = CommunityUpdateForm::builder()
index d96ba8488dda0c17789deedf5498eb1ed3e30f19..def3df0fa9d7f7298c1c0e8535c2d28f9b4b5e9c 100644 (file)
@@ -4,7 +4,7 @@ use anyhow::Context;
 use lemmy_api_common::{
   community::{GetCommunityResponse, TransferCommunity},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_admin, is_top_mod},
+  utils::{is_admin, is_top_mod, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   source::{
@@ -29,8 +29,7 @@ impl Perform for TransferCommunity {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetCommunityResponse, LemmyError> {
     let data: &TransferCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Fetch the community mods
     let community_id = data.community_id;
index ad8b67e12358e5c46d733d24eec52127bd96f259..5de584650f0dabc3836b5aa346ec00c1523c731d 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{AddAdmin, AddAdminResponse},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -27,8 +27,7 @@ impl Perform for AddAdmin {
     websocket_id: Option<ConnectionId>,
   ) -> Result<AddAdminResponse, LemmyError> {
     let data: &AddAdmin = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Make sure user is an admin
     is_admin(&local_user_view)?;
index d2b780433af116fae07907f77970d0af0250f165..014f98b8d58c87c6f55c0e7334eafc15b39b1539 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{BanPerson, BanPersonResponse},
-  utils::{get_local_user_view_from_jwt, is_admin, remove_user_data},
+  utils::{is_admin, local_user_view_from_jwt, remove_user_data},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -31,8 +31,7 @@ impl Perform for BanPerson {
     websocket_id: Option<ConnectionId>,
   ) -> Result<BanPersonResponse, LemmyError> {
     let data: &BanPerson = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Make sure user is an admin
     is_admin(&local_user_view)?;
index 6dbf7cffa4c9995e87275c03e0a8f0024c2920bd..5a4c9dca06cc24d979904a8e53e88ead8f824143 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{BlockPerson, BlockPersonResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::person_block::{PersonBlock, PersonBlockForm},
@@ -23,8 +23,7 @@ impl Perform for BlockPerson {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<BlockPersonResponse, LemmyError> {
     let data: &BlockPerson = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let target_id = data.person_id;
     let person_id = local_user_view.person.id;
index 2d0fd30e53763ae18f9303bfa263e0620f0b8ee7..2b486a5ed590111b6e036b3877870902aef42ea7 100644 (file)
@@ -4,7 +4,7 @@ use bcrypt::verify;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{ChangePassword, LoginResponse},
-  utils::{get_local_user_view_from_jwt, password_length_check},
+  utils::{local_user_view_from_jwt, password_length_check},
 };
 use lemmy_db_schema::source::local_user::LocalUser;
 use lemmy_utils::{claims::Claims, error::LemmyError, ConnectionId};
@@ -20,8 +20,7 @@ impl Perform for ChangePassword {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<LoginResponse, LemmyError> {
     let data: &ChangePassword = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(data.auth.as_ref(), context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(data.auth.as_ref(), context).await?;
 
     password_length_check(&data.new_password)?;
 
index 3fd19f558bf391c7784e6505a0f652cccd3fa112..e1d0f6e757d0d2befb896c6ad5a817aeb21afc80 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{BannedPersonsResponse, GetBannedPersons},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_views_actor::structs::PersonView;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -18,8 +18,7 @@ impl Perform for GetBannedPersons {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data: &GetBannedPersons = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Make sure user is an admin
     is_admin(&local_user_view)?;
index c03e9d1679d6fa6b19633fb0969aa5d54e64c455..fbafdb52aa58e2caa338199af8c4762f31301355 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{GetPersonMentions, GetPersonMentionsResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views_actor::person_mention_view::PersonMentionQuery;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -19,8 +19,7 @@ impl Perform for GetPersonMentions {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetPersonMentionsResponse, LemmyError> {
     let data: &GetPersonMentions = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let sort = data.sort;
     let page = data.page;
index 585db5e95d0a304e6bdce8bbe92855d0f3e4f611..797b6f8d464329710d0bfed46eb27134123f6309 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{GetReplies, GetRepliesResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views_actor::comment_reply_view::CommentReplyQuery;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -19,8 +19,7 @@ impl Perform for GetReplies {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetRepliesResponse, LemmyError> {
     let data: &GetReplies = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let sort = data.sort;
     let page = data.page;
index 2515715bdcc356e7db93a87cf9f75f7bd2e3996c..dfda897a9a578bcdff38a76dddf95ed8c3d0df37 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{GetRepliesResponse, MarkAllAsRead},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::source::{
   comment_reply::CommentReply,
@@ -23,8 +23,7 @@ impl Perform for MarkAllAsRead {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetRepliesResponse, LemmyError> {
     let data: &MarkAllAsRead = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let person_id = local_user_view.person.id;
 
     // Mark all comment_replies as read
index a3a75d929d84d5f3616ccf0edd3095ab4f645a02..80781e72a2beefa6cb6b4e901555dd89b2f3402b 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{MarkPersonMentionAsRead, PersonMentionResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::person_mention::{PersonMention, PersonMentionUpdateForm},
@@ -23,8 +23,7 @@ impl Perform for MarkPersonMentionAsRead {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<PersonMentionResponse, LemmyError> {
     let data: &MarkPersonMentionAsRead = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let person_mention_id = data.person_mention_id;
     let read_person_mention = PersonMention::read(context.pool(), person_mention_id).await?;
index 3921e769df50f995352e5abbb9a717dd1a491316..1e3fad19dcf637de9894a010f27908be67fdc736 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{CommentReplyResponse, MarkCommentReplyAsRead},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::comment_reply::{CommentReply, CommentReplyUpdateForm},
@@ -23,8 +23,7 @@ impl Perform for MarkCommentReplyAsRead {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CommentReplyResponse, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let comment_reply_id = data.comment_reply_id;
     let read_comment_reply = CommentReply::read(context.pool(), comment_reply_id).await?;
index 715ccd286ec3c18c62fe34b60880c73f25e4cf4b..523e9a73febf505f507f4a743869676987f48c3b 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{GetUnreadCount, GetUnreadCountResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views::structs::PrivateMessageView;
 use lemmy_db_views_actor::structs::{CommentReplyView, PersonMentionView};
@@ -20,8 +20,7 @@ impl Perform for GetUnreadCount {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let person_id = local_user_view.person.id;
 
index b59a06490d12de616671f156d33cdd4bfec7d25e..b2f4912cc102819e4ae2fe709b09f2c16eea3695 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{GetReportCount, GetReportCountResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views::structs::{CommentReportView, PostReportView, PrivateMessageReportView};
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -19,8 +19,7 @@ impl Perform for GetReportCount {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetReportCountResponse, LemmyError> {
     let data: &GetReportCount = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let person_id = local_user_view.person.id;
     let admin = local_user_view.person.admin;
index 0221d0ce207658c8154e09244de0e8f5efd1906c..a04086125c72462e8f263b82f7fbf0b95aca2d63 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{LoginResponse, SaveUserSettings},
-  utils::{get_local_user_view_from_jwt, send_verification_email},
+  utils::{local_user_view_from_jwt, send_verification_email},
 };
 use lemmy_db_schema::{
   source::{
@@ -39,8 +39,7 @@ impl Perform for SaveUserSettings {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<LoginResponse, LemmyError> {
     let data: &SaveUserSettings = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let site_view = SiteView::read_local(context.pool()).await?;
 
     let avatar = diesel_option_overwrite_to_url(&data.avatar)?;
index e1dd1e3d8bc5e7f76cabea8269c86091c9dac8e9..6d9f05f071386ade154919c2f144e696326839a0 100644 (file)
@@ -6,9 +6,9 @@ use lemmy_api_common::{
   utils::{
     check_community_ban,
     check_community_deleted_or_removed,
-    get_local_user_view_from_jwt,
     is_admin,
     is_mod_or_admin,
+    local_user_view_from_jwt,
   },
   websocket::UserOperation,
 };
@@ -33,8 +33,7 @@ impl Perform for FeaturePost {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &FeaturePost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let post_id = data.post_id;
     let orig_post = Post::read(context.pool(), post_id).await?;
index 9fa480a5b5f509544667ad6a086cace08e1bf9eb..2413a983cafbfc905a37a9148dfb71975d293935 100644 (file)
@@ -7,7 +7,7 @@ use lemmy_api_common::{
     check_community_ban,
     check_community_deleted_or_removed,
     check_downvotes_enabled,
-    get_local_user_view_from_jwt,
+    local_user_view_from_jwt,
     mark_post_as_read,
   },
   websocket::UserOperation,
@@ -32,8 +32,7 @@ impl Perform for CreatePostLike {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &CreatePostLike = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     // Don't do a downvote if site has downvotes disabled
index cd7db90841daec7e780c27b5ad9fa922b1c73c5e..4264364002d6eeacaa6c10cb9cfe23d331824ff8 100644 (file)
@@ -6,8 +6,8 @@ use lemmy_api_common::{
   utils::{
     check_community_ban,
     check_community_deleted_or_removed,
-    get_local_user_view_from_jwt,
     is_mod_or_admin,
+    local_user_view_from_jwt,
   },
   websocket::UserOperation,
 };
@@ -31,8 +31,7 @@ impl Perform for LockPost {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &LockPost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let post_id = data.post_id;
     let orig_post = Post::read(context.pool(), post_id).await?;
index 858d71d2211efcb5c0d0ee9ef0864649d9287434..e53d7a78ffbfb33f896100b997dbc36a55ad29b0 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{MarkPostAsRead, PostResponse},
-  utils::{get_local_user_view_from_jwt, mark_post_as_read, mark_post_as_unread},
+  utils::{local_user_view_from_jwt, mark_post_as_read, mark_post_as_unread},
 };
 use lemmy_db_views::structs::PostView;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -19,8 +19,7 @@ impl Perform for MarkPostAsRead {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let post_id = data.post_id;
     let person_id = local_user_view.person.id;
index e0c7c8168381a2c240388d0c1b966f73050318c0..f3ef6319cd9dde4720b52b498dee38fcc10797e7 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{PostResponse, SavePost},
-  utils::{get_local_user_view_from_jwt, mark_post_as_read},
+  utils::{local_user_view_from_jwt, mark_post_as_read},
 };
 use lemmy_db_schema::{
   source::post::{PostSaved, PostSavedForm},
@@ -23,8 +23,7 @@ impl Perform for SavePost {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &SavePost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let post_saved_form = PostSavedForm {
       post_id: data.post_id,
index 423f8b8142171a4ed96ee043119b48c5d08cb4f0..092f1cd8d8d10c05001d625b86a931727a97c11f 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{CreatePostReport, PostReportResponse},
-  utils::{check_community_ban, get_local_user_view_from_jwt, send_new_report_email_to_admins},
+  utils::{check_community_ban, local_user_view_from_jwt, send_new_report_email_to_admins},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -28,8 +28,7 @@ impl Perform for CreatePostReport {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostReportResponse, LemmyError> {
     let data: &CreatePostReport = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let reason = self.reason.trim();
index 2feed7ed2ea90c62f04f974e120c3459fea980fa..f592704242807de1f83b045a4a65956a420a540f 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{ListPostReports, ListPostReportsResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views::post_report_view::PostReportQuery;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -21,8 +21,7 @@ impl Perform for ListPostReports {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<ListPostReportsResponse, LemmyError> {
     let data: &ListPostReports = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let person_id = local_user_view.person.id;
     let admin = local_user_view.person.admin;
index 0426262df0f1e6e477d16cd8fa14a145cc0e5a2b..80290b2a35fae0bda649ad8cefccdd9f5000d4b7 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{PostReportResponse, ResolvePostReport},
-  utils::{get_local_user_view_from_jwt, is_mod_or_admin},
+  utils::{is_mod_or_admin, local_user_view_from_jwt},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{source::post_report::PostReport, traits::Reportable};
@@ -22,8 +22,7 @@ impl Perform for ResolvePostReport {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostReportResponse, LemmyError> {
     let data: &ResolvePostReport = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let report_id = data.report_id;
     let person_id = local_user_view.person.id;
index ba5cf8eaa74cda6b329caea0f57a9dfa1bea0136..bf373e99c0dc4d5b4457ba7d26cdecfce74207b6 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{MarkPrivateMessageAsRead, PrivateMessageResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -23,8 +23,7 @@ impl Perform for MarkPrivateMessageAsRead {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PrivateMessageResponse, LemmyError> {
     let data: &MarkPrivateMessageAsRead = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Checking permissions
     let private_message_id = data.private_message_id;
index 2a132b6f4d8879ad67dd800a672971d175fd20d3..a9ca0291d8e4d14f8c760f57d7f03e9facbc8cd7 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{CreatePrivateMessageReport, PrivateMessageReportResponse},
-  utils::{get_local_user_view_from_jwt, send_new_report_email_to_admins},
+  utils::{local_user_view_from_jwt, send_new_report_email_to_admins},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -28,8 +28,7 @@ impl Perform for CreatePrivateMessageReport {
     context: &Data<LemmyContext>,
     websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&self.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&self.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let reason = self.reason.trim();
index 98c2d92698c1790533a45c6048e5b4fef8657bdb..69b3dbf94b787cc876a887aa1f7498903b35b608 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{ListPrivateMessageReports, ListPrivateMessageReportsResponse},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_views::private_message_report_view::PrivateMessageReportQuery;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -18,8 +18,7 @@ impl Perform for ListPrivateMessageReports {
     context: &Data<LemmyContext>,
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&self.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&self.auth, context).await?;
 
     is_admin(&local_user_view)?;
 
index 9fe014c0f836463cc2f01f8e2005a15498bb7a17..09e3b251a07fc84a8049fac5e853b929f0107150 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{PrivateMessageReportResponse, ResolvePrivateMessageReport},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -24,8 +24,7 @@ impl Perform for ResolvePrivateMessageReport {
     context: &Data<LemmyContext>,
     websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&self.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&self.auth, context).await?;
 
     is_admin(&local_user_view)?;
 
index 4cec5fc4ad1958665ec14fc0f4b1572c375f53dd..a7c0941d132e574f31e506a53d3a7a9c99b3776c 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{GetSiteResponse, LeaveAdmin},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   source::{
@@ -30,8 +30,7 @@ impl Perform for LeaveAdmin {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetSiteResponse, LemmyError> {
     let data: &LeaveAdmin = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     is_admin(&local_user_view)?;
 
index ec3ee0f70b5d19d6decc13e50112787785963fe9..dcb5f5edf5aa2386d5bed5923257f050f04a6204 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{GetModlog, GetModlogResponse},
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt, is_admin, is_mod_or_admin},
+  utils::{check_private_instance, is_admin, is_mod_or_admin, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::{
   newtypes::{CommunityId, PersonId},
@@ -43,9 +43,7 @@ impl Perform for GetModlog {
   ) -> Result<GetModlogResponse, LemmyError> {
     let data: &GetModlog = self;
 
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
 
     check_private_instance(&local_user_view, &local_site)?;
index 9664a6288482086a8e1c37a34bd079b8c3778534..f4ba4509740cbdaa5ee88729370bdb4a4b333efb 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{PurgeComment, PurgeItemResponse},
-  utils::{get_local_user_view_from_jwt, is_top_admin},
+  utils::{is_top_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   source::{
@@ -25,8 +25,7 @@ impl Perform for PurgeComment {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data: &Self = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Only let the top admin purge an item
     is_top_admin(context.pool(), local_user_view.person.id).await?;
index abc4ff3284aa5e4bc73b29a92daf31ddb170a476..5bdf62e75bb154187da9d9d646281bec1296aeeb 100644 (file)
@@ -4,7 +4,7 @@ use lemmy_api_common::{
   context::LemmyContext,
   request::purge_image_from_pictrs,
   site::{PurgeCommunity, PurgeItemResponse},
-  utils::{get_local_user_view_from_jwt, is_top_admin, purge_image_posts_for_community},
+  utils::{is_top_admin, local_user_view_from_jwt, purge_image_posts_for_community},
 };
 use lemmy_db_schema::{
   source::{
@@ -26,8 +26,7 @@ impl Perform for PurgeCommunity {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data: &Self = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Only let the top admin purge an item
     is_top_admin(context.pool(), local_user_view.person.id).await?;
index 94c80a9286935cd6fc66f65dcaec01c639461c17..896dc783cf8032b61cfa48938d9d1592af91946e 100644 (file)
@@ -4,7 +4,7 @@ use lemmy_api_common::{
   context::LemmyContext,
   request::purge_image_from_pictrs,
   site::{PurgeItemResponse, PurgePerson},
-  utils::{get_local_user_view_from_jwt, is_top_admin, purge_image_posts_for_person},
+  utils::{is_top_admin, local_user_view_from_jwt, purge_image_posts_for_person},
 };
 use lemmy_db_schema::{
   source::{
@@ -26,8 +26,7 @@ impl Perform for PurgePerson {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data: &Self = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Only let the top admin purge an item
     is_top_admin(context.pool(), local_user_view.person.id).await?;
index 27f908188beca73aeb79a461849f178150459d1d..c04fc5601849850a22f5de8f354adcc12780412b 100644 (file)
@@ -4,7 +4,7 @@ use lemmy_api_common::{
   context::LemmyContext,
   request::purge_image_from_pictrs,
   site::{PurgeItemResponse, PurgePost},
-  utils::{get_local_user_view_from_jwt, is_top_admin},
+  utils::{is_top_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   source::{
@@ -26,8 +26,7 @@ impl Perform for PurgePost {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data: &Self = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Only let the top admin purge an item
     is_top_admin(context.pool(), local_user_view.person.id).await?;
index 61a6868995079374a72742cfa11cce2143b455a7..edba7f2b85cc4bd42ab72390c6f0faa2ec3db680 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{ApproveRegistrationApplication, RegistrationApplicationResponse},
-  utils::{get_local_user_view_from_jwt, is_admin, send_application_approved_email},
+  utils::{is_admin, local_user_view_from_jwt, send_application_approved_email},
 };
 use lemmy_db_schema::{
   source::{
@@ -26,8 +26,7 @@ impl Perform for ApproveRegistrationApplication {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let app_id = data.id;
 
index 7be2e2e8e5580fb71a5ece2297e24622e940356f..b5a366e1666953e15d2f123ac263a9fa5ebe5178 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{ListRegistrationApplications, ListRegistrationApplicationsResponse},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::source::local_site::LocalSite;
 use lemmy_db_views::registration_application_view::RegistrationApplicationQuery;
@@ -20,8 +20,7 @@ impl Perform for ListRegistrationApplications {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     // Make sure user is an admin
index fe33d17c8f19677e80ee4cbdbff3bfb877c00156..72490e480399537414d2aa4627c1a5a9f81906cf 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{GetUnreadRegistrationApplicationCount, GetUnreadRegistrationApplicationCountResponse},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::source::local_site::LocalSite;
 use lemmy_db_views::structs::RegistrationApplicationView;
@@ -19,8 +19,7 @@ impl Perform for GetUnreadRegistrationApplicationCount {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     // Only let admins do this
index 522991ae9621273c306198d97e864764bab80053..0552c1906c3501fea8e014c3e5996aa922bce5f1 100644 (file)
@@ -2,7 +2,7 @@ use crate::Perform;
 use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::{
     handlers::join_rooms::{JoinCommunityRoom, JoinModRoom, JoinPostRoom, JoinUserRoom},
     structs::{
@@ -30,8 +30,7 @@ impl Perform for UserJoin {
     websocket_id: Option<ConnectionId>,
   ) -> Result<UserJoinResponse, LemmyError> {
     let data: &UserJoin = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     if let Some(id) = websocket_id {
       context.chat_server().do_send(JoinUserRoom {
index 75f878fc426d3b68f102d3ce9450ae447ed21a50..522a3564793cba6b76c373788d0b71d7023f3973 100644 (file)
@@ -1,6 +1,12 @@
-use crate::{request::purge_image_from_pictrs, sensitive::Sensitive, site::FederatedInstances};
+use crate::{
+  context::LemmyContext,
+  request::purge_image_from_pictrs,
+  sensitive::Sensitive,
+  site::FederatedInstances,
+};
 use anyhow::Context;
 use chrono::NaiveDateTime;
+use futures::try_join;
 use lemmy_db_schema::{
   impls::person::is_banned,
   newtypes::{CommunityId, DbUrl, LocalUserId, PersonId, PostId},
@@ -16,7 +22,6 @@ use lemmy_db_schema::{
     person_block::PersonBlock,
     post::{Post, PostRead, PostReadForm},
     registration_application::RegistrationApplication,
-    secret::Secret,
   },
   traits::{Crud, Readable},
   utils::DbPool,
@@ -141,18 +146,16 @@ pub async fn mark_post_as_unread(
     .map_err(|e| LemmyError::from_error_message(e, "couldnt_mark_post_as_read"))
 }
 
-// TODO: this should simply take LemmyContext as param
 #[tracing::instrument(skip_all)]
-pub async fn get_local_user_view_from_jwt(
+pub async fn local_user_view_from_jwt(
   jwt: &str,
-  pool: &DbPool,
-  secret: &Secret,
+  context: &LemmyContext,
 ) -> Result<LocalUserView, LemmyError> {
-  let claims = Claims::decode(jwt, &secret.jwt_secret)
+  let claims = Claims::decode(jwt, &context.secret().jwt_secret)
     .map_err(|e| e.with_message("not_logged_in"))?
     .claims;
   let local_user_id = LocalUserId(claims.sub);
-  let local_user_view = LocalUserView::read(pool, local_user_id).await?;
+  let local_user_view = LocalUserView::read(context.pool(), local_user_id).await?;
   check_user_valid(
     local_user_view.person.banned,
     local_user_view.person.ban_expires,
@@ -164,6 +167,14 @@ pub async fn get_local_user_view_from_jwt(
   Ok(local_user_view)
 }
 
+#[tracing::instrument(skip_all)]
+pub async fn local_user_view_from_jwt_opt(
+  jwt: Option<&Sensitive<String>>,
+  context: &LemmyContext,
+) -> Option<LocalUserView> {
+  local_user_view_from_jwt(jwt?, context).await.ok()
+}
+
 /// Checks if user's token was issued before user's password reset.
 pub fn check_validator_time(
   validator_time: &NaiveDateTime,
@@ -177,44 +188,6 @@ pub fn check_validator_time(
   }
 }
 
-#[tracing::instrument(skip_all)]
-pub async fn get_local_user_view_from_jwt_opt(
-  jwt: Option<&Sensitive<String>>,
-  pool: &DbPool,
-  secret: &Secret,
-) -> Result<Option<LocalUserView>, LemmyError> {
-  match jwt {
-    Some(jwt) => Ok(Some(get_local_user_view_from_jwt(jwt, pool, secret).await?)),
-    None => Ok(None),
-  }
-}
-
-#[tracing::instrument(skip_all)]
-pub async fn get_local_user_settings_view_from_jwt_opt(
-  jwt: Option<&Sensitive<String>>,
-  pool: &DbPool,
-  secret: &Secret,
-) -> Result<Option<LocalUserView>, LemmyError> {
-  match jwt {
-    Some(jwt) => {
-      let claims = Claims::decode(jwt.as_ref(), &secret.jwt_secret)
-        .map_err(|e| e.with_message("not_logged_in"))?
-        .claims;
-      let local_user_id = LocalUserId(claims.sub);
-      let local_user_view = LocalUserView::read(pool, local_user_id).await?;
-      check_user_valid(
-        local_user_view.person.banned,
-        local_user_view.person.ban_expires,
-        local_user_view.person.deleted,
-      )?;
-
-      check_validator_time(&local_user_view.local_user.validator_time, &claims)?;
-
-      Ok(Some(local_user_view))
-    }
-    None => Ok(None),
-  }
-}
 pub fn check_user_valid(
   banned: bool,
   ban_expires: Option<NaiveDateTime>,
@@ -314,9 +287,11 @@ pub async fn build_federated_instances(
 ) -> Result<Option<FederatedInstances>, LemmyError> {
   if local_site.federation_enabled {
     // TODO I hate that this requires 3 queries
-    let linked = Instance::linked(pool).await?;
-    let allowed = Instance::allowlist(pool).await?;
-    let blocked = Instance::blocklist(pool).await?;
+    let (linked, allowed, blocked) = try_join!(
+      Instance::linked(pool),
+      Instance::allowlist(pool),
+      Instance::blocklist(pool)
+    )?;
 
     Ok(Some(FederatedInstances {
       linked,
index 103c71ce64b3e3c8b08d8f3a366a199063788966..8909444d247280862569f547bb89c3a449690dc7 100644 (file)
@@ -8,9 +8,9 @@ use lemmy_api_common::{
     check_community_deleted_or_removed,
     check_post_deleted_or_removed,
     generate_local_apub_endpoint,
-    get_local_user_view_from_jwt,
     get_post,
     local_site_to_slur_regex,
+    local_user_view_from_jwt,
     EndpointType,
   },
   websocket::UserOperationCrud,
@@ -46,8 +46,7 @@ impl PerformCrud for CreateComment {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommentResponse, LemmyError> {
     let data: &CreateComment = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let content_slurs_removed = remove_slurs(
index a96b4cc7ab69134a3a2f20015de287a37fac4ca4..cde4ab6292510c35fc30bd4d52d4f1630d3f4047 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, DeleteComment},
   context::LemmyContext,
-  utils::{check_community_ban, get_local_user_view_from_jwt},
+  utils::{check_community_ban, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -27,8 +27,7 @@ impl PerformCrud for DeleteComment {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommentResponse, LemmyError> {
     let data: &DeleteComment = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let comment_id = data.comment_id;
     let orig_comment = CommentView::read(context.pool(), comment_id, None).await?;
index c0136f06cb28b8e24cbb9449bd9151eb96936bc3..bd37eb77cdffca62124c246b0d883508a6550586 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, GetComment},
   context::LemmyContext,
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt},
+  utils::{check_private_instance, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::source::local_site::LocalSite;
 use lemmy_db_views::structs::CommentView;
@@ -20,9 +20,7 @@ impl PerformCrud for GetComment {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
 
     check_private_instance(&local_user_view, &local_site)?;
index add01aa30a67e740b29cf7d371c50f4febbeaedc..b8834df8d69ac4dbde26deec96b351acf1bc5533 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, RemoveComment},
   context::LemmyContext,
-  utils::{check_community_ban, get_local_user_view_from_jwt, is_mod_or_admin},
+  utils::{check_community_ban, is_mod_or_admin, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -28,8 +28,7 @@ impl PerformCrud for RemoveComment {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommentResponse, LemmyError> {
     let data: &RemoveComment = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let comment_id = data.comment_id;
     let orig_comment = CommentView::read(context.pool(), comment_id, None).await?;
index 1d6d0869dde73d1ed1de30221ff18e21e2cc84bd..e74d5c4edd0acff3d3a4a83397c9a9616e027970 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   comment::{CommentResponse, EditComment},
   context::LemmyContext,
-  utils::{check_community_ban, get_local_user_view_from_jwt, local_site_to_slur_regex},
+  utils::{check_community_ban, local_site_to_slur_regex, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -37,8 +37,7 @@ impl PerformCrud for EditComment {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommentResponse, LemmyError> {
     let data: &EditComment = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let comment_id = data.comment_id;
index e2e80b8492bbd3448c91b4b7647a1cf2d4ba44f7..fbc557b723a9fffdef2286562f051f5d80918dea 100644 (file)
@@ -9,9 +9,9 @@ use lemmy_api_common::{
     generate_inbox_url,
     generate_local_apub_endpoint,
     generate_shared_inbox_url,
-    get_local_user_view_from_jwt,
     is_admin,
     local_site_to_slur_regex,
+    local_user_view_from_jwt,
     EndpointType,
   },
 };
@@ -52,8 +52,7 @@ impl PerformCrud for CreateCommunity {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CommunityResponse, LemmyError> {
     let data: &CreateCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let site_view = SiteView::read_local(context.pool()).await?;
     let local_site = site_view.local_site;
 
index 7ce685d8ba871e4d06b91b827ce319e127267f44..9909f5cdd099d1e4f6793f37553a2f36d8b6b330 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{CommunityResponse, DeleteCommunity},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_top_mod},
+  utils::{is_top_mod, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -24,8 +24,7 @@ impl PerformCrud for DeleteCommunity {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommunityResponse, LemmyError> {
     let data: &DeleteCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Fetch the community mods
     let community_id = data.community_id;
index ef4c46d81f75163668c3b2ba7db1a23b0fd11cbd..e620e16068042a5193acd3bad835af956aa160a1 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{ListCommunities, ListCommunitiesResponse},
   context::LemmyContext,
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt, is_admin},
+  utils::{check_private_instance, is_admin, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::source::local_site::LocalSite;
 use lemmy_db_views_actor::community_view::CommunityQuery;
@@ -20,9 +20,7 @@ impl PerformCrud for ListCommunities {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<ListCommunitiesResponse, LemmyError> {
     let data: &ListCommunities = self;
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
     let is_admin = local_user_view.as_ref().map(|luv| is_admin(luv).is_ok());
 
index f791476227b758beef5d57a68a3a7e381a34d43b..9a905b87438948d88017972c1132ea26a2a82e4b 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{CommunityResponse, RemoveCommunity},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -26,8 +26,7 @@ impl PerformCrud for RemoveCommunity {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommunityResponse, LemmyError> {
     let data: &RemoveCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Verify its an admin (only an admin can remove a community)
     is_admin(&local_user_view)?;
index 200c5f2c83898401ac8d08c2c66717a81edbabf5..9d56ce8a1c8584250d0893f82bc6645fd4e3d4ac 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   community::{CommunityResponse, EditCommunity},
   context::LemmyContext,
-  utils::{get_local_user_view_from_jwt, local_site_to_slur_regex},
+  utils::{local_site_to_slur_regex, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -34,8 +34,7 @@ impl PerformCrud for EditCommunity {
     websocket_id: Option<ConnectionId>,
   ) -> Result<CommunityResponse, LemmyError> {
     let data: &EditCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let icon = diesel_option_overwrite_to_url(&data.icon)?;
index 42b6c5d916dd67f35c595b818b4b67f4c76b8896..33337945158c4cfd6dff9104305c9aac7a1ed75c 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   custom_emoji::{CreateCustomEmoji, CustomEmojiResponse},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::source::{
   custom_emoji::{CustomEmoji, CustomEmojiInsertForm},
@@ -24,8 +24,7 @@ impl PerformCrud for CreateCustomEmoji {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CustomEmojiResponse, LemmyError> {
     let data: &CreateCustomEmoji = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let local_site = LocalSite::read(context.pool()).await?;
     // Make sure user is an admin
index db8c973ec741712d5be613c25ccf04cf548e4768..dcca883920ace29dac7609cdfcf6a14a39d8c678 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   custom_emoji::{DeleteCustomEmoji, DeleteCustomEmojiResponse},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::source::custom_emoji::CustomEmoji;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -19,8 +19,7 @@ impl PerformCrud for DeleteCustomEmoji {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<DeleteCustomEmojiResponse, LemmyError> {
     let data: &DeleteCustomEmoji = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Make sure user is an admin
     is_admin(&local_user_view)?;
index 6233cbe3c53126104519d083333ec5d868230f91..67a2bed9f45c70affd5c6258db10cb39c069270a 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   custom_emoji::{CustomEmojiResponse, EditCustomEmoji},
-  utils::{get_local_user_view_from_jwt, is_admin},
+  utils::{is_admin, local_user_view_from_jwt},
 };
 use lemmy_db_schema::source::{
   custom_emoji::{CustomEmoji, CustomEmojiUpdateForm},
@@ -24,8 +24,7 @@ impl PerformCrud for EditCustomEmoji {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<CustomEmojiResponse, LemmyError> {
     let data: &EditCustomEmoji = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let local_site = LocalSite::read(context.pool()).await?;
     // Make sure user is an admin
index 1a88518472fa9608acbe2f5eb2afea83b9326e29..e0c1a5d13aa743adcb0ca1cf89c90acdc3f77c1c 100644 (file)
@@ -8,9 +8,9 @@ use lemmy_api_common::{
     check_community_ban,
     check_community_deleted_or_removed,
     generate_local_apub_endpoint,
-    get_local_user_view_from_jwt,
     honeypot_check,
     local_site_to_slur_regex,
+    local_user_view_from_jwt,
     mark_post_as_read,
     EndpointType,
   },
@@ -50,8 +50,7 @@ impl PerformCrud for CreatePost {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &CreatePost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let slur_regex = local_site_to_slur_regex(&local_site);
index fae5b0096213654078919b35fd685561a1fbf6ae..82efeaa17634b47d2eab722a22fdc821fdafb592 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{DeletePost, PostResponse},
-  utils::{check_community_ban, check_community_deleted_or_removed, get_local_user_view_from_jwt},
+  utils::{check_community_ban, check_community_deleted_or_removed, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -23,8 +23,7 @@ impl PerformCrud for DeletePost {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &DeletePost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let post_id = data.post_id;
     let orig_post = Post::read(context.pool(), post_id).await?;
index eadb6d11ae8d0a9a058da2d518b606923c3bd429..cda2f65b667a1019739eacba26fcc2befd41a88a 100644 (file)
@@ -5,8 +5,8 @@ use lemmy_api_common::{
   post::{GetPost, GetPostResponse},
   utils::{
     check_private_instance,
-    get_local_user_view_from_jwt_opt,
     is_mod_or_admin_opt,
+    local_user_view_from_jwt_opt,
     mark_post_as_read,
   },
   websocket::handlers::online_users::GetPostUsersOnline,
@@ -31,9 +31,7 @@ impl PerformCrud for GetPost {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetPostResponse, LemmyError> {
     let data: &GetPost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
 
     check_private_instance(&local_user_view, &local_site)?;
index b53a468e95eb5306f8e5d198fa34d5bbcda4d807..9081d911ee401a04b949d2869ba345f4ef57898e 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{PostResponse, RemovePost},
-  utils::{check_community_ban, get_local_user_view_from_jwt, is_mod_or_admin},
+  utils::{check_community_ban, is_mod_or_admin, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -26,8 +26,7 @@ impl PerformCrud for RemovePost {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &RemovePost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let post_id = data.post_id;
     let orig_post = Post::read(context.pool(), post_id).await?;
index 8f5c442fcf853a80eb515e31a75003592c971f50..2bd101c0995e696df761b64b11545abe466f92d8 100644 (file)
@@ -4,7 +4,7 @@ use lemmy_api_common::{
   context::LemmyContext,
   post::{EditPost, PostResponse},
   request::fetch_site_data,
-  utils::{check_community_ban, get_local_user_view_from_jwt, local_site_to_slur_regex},
+  utils::{check_community_ban, local_site_to_slur_regex, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -36,8 +36,7 @@ impl PerformCrud for EditPost {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PostResponse, LemmyError> {
     let data: &EditPost = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let data_url = data.url.as_ref();
index 48fa840236c2306de54d071e85cd931c0810e0ab..6fd3690089b4d0f2d9327a73373d264b89e34ecf 100644 (file)
@@ -7,8 +7,8 @@ use lemmy_api_common::{
     check_person_block,
     generate_local_apub_endpoint,
     get_interface_language,
-    get_local_user_view_from_jwt,
     local_site_to_slur_regex,
+    local_user_view_from_jwt,
     send_email_to_user,
     EndpointType,
   },
@@ -39,8 +39,7 @@ impl PerformCrud for CreatePrivateMessage {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PrivateMessageResponse, LemmyError> {
     let data: &CreatePrivateMessage = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     let content_slurs_removed = remove_slurs(
index e6a643a7fae80ac84726afc1b64cbf5e416d4395..f494edffad95013b9517dbbf5c37e61b63f81052 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{DeletePrivateMessage, PrivateMessageResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -23,8 +23,7 @@ impl PerformCrud for DeletePrivateMessage {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PrivateMessageResponse, LemmyError> {
     let data: &DeletePrivateMessage = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     // Checking permissions
     let private_message_id = data.private_message_id;
index c9a3775337810fd3134cdb35ae6c6090bc0126d5..da2bc690bfbb88787dfdac08c65ea1a693a874ee 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{GetPrivateMessages, PrivateMessagesResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_views::private_message_view::PrivateMessageQuery;
 use lemmy_utils::{error::LemmyError, ConnectionId};
@@ -19,8 +19,7 @@ impl PerformCrud for GetPrivateMessages {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<PrivateMessagesResponse, LemmyError> {
     let data: &GetPrivateMessages = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(data.auth.as_ref(), context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(data.auth.as_ref(), context).await?;
     let person_id = local_user_view.person.id;
 
     let page = data.page;
index 6a6bfa21831539d3a7b5b3600d96d9edf3afd975..a485a509323bcfc3b541e97ee12cfe9639d682b6 100644 (file)
@@ -3,7 +3,7 @@ use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   private_message::{EditPrivateMessage, PrivateMessageResponse},
-  utils::{get_local_user_view_from_jwt, local_site_to_slur_regex},
+  utils::{local_site_to_slur_regex, local_user_view_from_jwt},
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -31,8 +31,7 @@ impl PerformCrud for EditPrivateMessage {
     websocket_id: Option<ConnectionId>,
   ) -> Result<PrivateMessageResponse, LemmyError> {
     let data: &EditPrivateMessage = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
 
     // Checking permissions
index d45caaa8a4e8751ef0569ffacea6c06813ab02db..0f3e8c56a7141feaf1b411a5f02e5381333c2e20 100644 (file)
@@ -6,10 +6,10 @@ use lemmy_api_common::{
   site::{CreateSite, SiteResponse},
   utils::{
     generate_site_inbox_url,
-    get_local_user_view_from_jwt,
     is_admin,
     local_site_rate_limit_to_rate_limit_config,
     local_site_to_slur_regex,
+    local_user_view_from_jwt,
     site_description_length_check,
   },
 };
@@ -52,8 +52,7 @@ impl PerformCrud for CreateSite {
       return Err(LemmyError::from_message("site_already_exists"));
     };
 
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
 
     let sidebar = diesel_option_overwrite(&data.sidebar);
     let description = diesel_option_overwrite(&data.description);
index fc74ecaebc597f1966499adce44880c99b440649..1e40cabdd548d7b3b0effc31632f24669023b932 100644 (file)
@@ -2,16 +2,20 @@ use crate::PerformCrud;
 use actix_web::web::Data;
 use lemmy_api_common::{
   context::LemmyContext,
+  sensitive::Sensitive,
   site::{GetSite, GetSiteResponse, MyUserInfo},
-  utils::get_local_user_settings_view_from_jwt_opt,
+  utils::{check_user_valid, check_validator_time},
   websocket::handlers::online_users::GetUsersOnline,
 };
-use lemmy_db_schema::source::{
-  actor_language::{LocalUserLanguage, SiteLanguage},
-  language::Language,
-  tagline::Tagline,
+use lemmy_db_schema::{
+  newtypes::LocalUserId,
+  source::{
+    actor_language::{LocalUserLanguage, SiteLanguage},
+    language::Language,
+    tagline::Tagline,
+  },
 };
-use lemmy_db_views::structs::{CustomEmojiView, SiteView};
+use lemmy_db_views::structs::{CustomEmojiView, LocalUserView, SiteView};
 use lemmy_db_views_actor::structs::{
   CommunityBlockView,
   CommunityFollowerView,
@@ -19,7 +23,7 @@ use lemmy_db_views_actor::structs::{
   PersonBlockView,
   PersonView,
 };
-use lemmy_utils::{error::LemmyError, version, ConnectionId};
+use lemmy_utils::{claims::Claims, error::LemmyError, version, ConnectionId};
 
 #[async_trait::async_trait(?Send)]
 impl PerformCrud for GetSite {
@@ -40,12 +44,8 @@ impl PerformCrud for GetSite {
     let online = context.chat_server().send(GetUsersOnline).await?;
 
     // Build the local user
-    let my_user = if let Some(local_user_view) = get_local_user_settings_view_from_jwt_opt(
-      data.auth.as_ref(),
-      context.pool(),
-      context.secret(),
-    )
-    .await?
+    let my_user = if let Some(local_user_view) =
+      local_user_settings_view_from_jwt_opt(data.auth.as_ref(), context).await
     {
       let person_id = local_user_view.person.id;
       let local_user_id = local_user_view.local_user.id;
@@ -102,3 +102,32 @@ impl PerformCrud for GetSite {
     })
   }
 }
+
+#[tracing::instrument(skip_all)]
+async fn local_user_settings_view_from_jwt_opt(
+  jwt: Option<&Sensitive<String>>,
+  context: &LemmyContext,
+) -> Option<LocalUserView> {
+  match jwt {
+    Some(jwt) => {
+      let claims = Claims::decode(jwt.as_ref(), &context.secret().jwt_secret)
+        .ok()?
+        .claims;
+      let local_user_id = LocalUserId(claims.sub);
+      let local_user_view = LocalUserView::read(context.pool(), local_user_id)
+        .await
+        .ok()?;
+      check_user_valid(
+        local_user_view.person.banned,
+        local_user_view.person.ban_expires,
+        local_user_view.person.deleted,
+      )
+      .ok()?;
+
+      check_validator_time(&local_user_view.local_user.validator_time, &claims).ok()?;
+
+      Some(local_user_view)
+    }
+    None => None,
+  }
+}
index 03ff590132212fcdab812b1f8ed6728b0b0fbee2..693be6904627ec5a796e9d84656b08714d727f88 100644 (file)
@@ -4,10 +4,10 @@ use lemmy_api_common::{
   context::LemmyContext,
   site::{EditSite, SiteResponse},
   utils::{
-    get_local_user_view_from_jwt,
     is_admin,
     local_site_rate_limit_to_rate_limit_config,
     local_site_to_slur_regex,
+    local_user_view_from_jwt,
     site_description_length_check,
   },
   websocket::UserOperationCrud,
@@ -46,8 +46,7 @@ impl PerformCrud for EditSite {
     websocket_id: Option<ConnectionId>,
   ) -> Result<SiteResponse, LemmyError> {
     let data: &EditSite = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(&data.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&data.auth, context).await?;
     let site_view = SiteView::read_local(context.pool()).await?;
     let local_site = site_view.local_site;
     let site = site_view.site;
index b49695eaca5c02265a818225417b9617a2d9df78..731f90721c1fa98b3c5b0735142ae825012b4753 100644 (file)
@@ -4,7 +4,7 @@ use bcrypt::verify;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{DeleteAccount, DeleteAccountResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_utils::{error::LemmyError, ConnectionId};
 
@@ -19,8 +19,7 @@ impl PerformCrud for DeleteAccount {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<Self::Response, LemmyError> {
     let data = self;
-    let local_user_view =
-      get_local_user_view_from_jwt(data.auth.as_ref(), context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(data.auth.as_ref(), context).await?;
 
     // Verify the password
     let valid: bool = verify(
index a1315bb78facfa3f6acece87752943854f759d49..a791ea40e74d53a1bb1967c444969a9b253ac380 100644 (file)
@@ -16,7 +16,7 @@ use lemmy_api_common::{
   community::{BanFromCommunity, BanFromCommunityResponse},
   context::LemmyContext,
   person::{BanPerson, BanPersonResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::{community::Community, person::Person, site::Site},
@@ -138,8 +138,7 @@ impl SendActivity for BanPerson {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let person = Person::read(context.pool(), request.person_id).await?;
     let site = SiteOrCommunity::Site(SiteView::read_local(context.pool()).await?.site.into());
     let expires = request.expires.map(naive_from_unix);
@@ -182,8 +181,7 @@ impl SendActivity for BanFromCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community: ApubCommunity = Community::read(context.pool(), request.community_id)
       .await?
       .into();
index dfab0baf6637c18f4325f29b4cb00d2969af2454..afe8387f2c6e68e5e9e4bb7eba572afed69df7b1 100644 (file)
@@ -29,7 +29,7 @@ use lemmy_api_common::{
   community::{AddModToCommunity, AddModToCommunityResponse},
   context::LemmyContext,
   post::{FeaturePost, PostResponse},
-  utils::{generate_featured_url, generate_moderators_url, get_local_user_view_from_jwt},
+  utils::{generate_featured_url, generate_moderators_url, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{
   impls::community::CollectionType,
@@ -177,8 +177,7 @@ impl SendActivity for AddModToCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community: ApubCommunity = Community::read(context.pool(), request.community_id)
       .await?
       .into();
@@ -214,8 +213,7 @@ impl SendActivity for FeaturePost {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     // Deprecated, for backwards compatibility with 0.17
     CreateOrUpdatePage::send(
       &response.post_view.post,
index 498c3a324983b0028396a89b65ecd5da82a123ea..26326efcbd9a810d8c3c4d7e091dee414b85fde6 100644 (file)
@@ -27,7 +27,7 @@ use activitypub_federation::{
 use lemmy_api_common::{
   context::LemmyContext,
   post::{LockPost, PostResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::{
@@ -115,8 +115,7 @@ impl SendActivity for LockPost {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     // For backwards compat with 0.17
     CreateOrUpdatePage::send(
       &response.post_view.post,
index 9830be13fb9f3be4751549512d8bffbb6d2c621b..aaa1e5108140bbe1a3df89d1a678bc9e14239241 100644 (file)
@@ -16,7 +16,7 @@ use lemmy_api_common::{
   comment::{CommentReportResponse, CreateCommentReport},
   context::LemmyContext,
   post::{CreatePostReport, PostReportResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -39,8 +39,7 @@ impl SendActivity for CreatePostReport {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     Report::send(
       ObjectId::from(response.post_report_view.post.ap_id.clone()),
       &local_user_view.person.into(),
@@ -61,8 +60,7 @@ impl SendActivity for CreateCommentReport {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     Report::send(
       ObjectId::from(response.comment_report_view.comment.ap_id.clone()),
       &local_user_view.person.into(),
index 85581e2a168ba092aa543d199892168a93467f24..5cf1881a3b7c1869a07b3f86e26714a1f5cc0e28 100644 (file)
@@ -20,7 +20,7 @@ use activitypub_federation::{
 use lemmy_api_common::{
   community::{CommunityResponse, EditCommunity, HideCommunity},
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{source::community::Community, traits::Crud};
@@ -36,8 +36,7 @@ impl SendActivity for EditCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), request.community_id).await?;
     UpdateCommunity::send(community.into(), &local_user_view.person.into(), context).await
   }
@@ -123,8 +122,7 @@ impl SendActivity for HideCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), request.community_id).await?;
     UpdateCommunity::send(community.into(), &local_user_view.person.into(), context).await
   }
index e5c1021ccd547a10fc2b0b3b26ab4d92d726ca99..11be132e85af95a3a1261c8767038207abec4da4 100644 (file)
@@ -14,7 +14,7 @@ use activitypub_federation::{
 use lemmy_api_common::{
   context::LemmyContext,
   person::{DeleteAccount, DeleteAccountResponse},
-  utils::{delete_user_account, get_local_user_view_from_jwt},
+  utils::{delete_user_account, local_user_view_from_jwt},
 };
 use lemmy_utils::error::LemmyError;
 use url::Url;
@@ -28,8 +28,7 @@ impl SendActivity for DeleteAccount {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let actor: ApubPerson = local_user_view.person.into();
     delete_user_account(
       actor.id,
index 690b1d3a36422c22aeb9468722de68f6a44cb66e..ea6f4a67d5457ff14d689549eda27130b70dcf97 100644 (file)
@@ -34,7 +34,7 @@ use lemmy_api_common::{
   context::LemmyContext,
   post::{DeletePost, PostResponse, RemovePost},
   private_message::{DeletePrivateMessage, PrivateMessageResponse},
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::UserOperationCrud,
 };
 use lemmy_db_schema::{
@@ -64,8 +64,7 @@ impl SendActivity for DeletePost {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), response.post_view.community.id).await?;
     let deletable = DeletableObjects::Post(response.post_view.post.clone().into());
     send_apub_delete_in_community(
@@ -89,8 +88,7 @@ impl SendActivity for RemovePost {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), response.post_view.community.id).await?;
     let deletable = DeletableObjects::Post(response.post_view.post.clone().into());
     send_apub_delete_in_community(
@@ -132,8 +130,7 @@ impl SendActivity for RemoveComment {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let comment = Comment::read(context.pool(), request.comment_id).await?;
     let community = Community::read(context.pool(), response.comment_view.community.id).await?;
     let deletable = DeletableObjects::Comment(comment.into());
@@ -158,8 +155,7 @@ impl SendActivity for DeletePrivateMessage {
     response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     send_apub_delete_private_message(
       &local_user_view.person.into(),
       response.private_message_view.private_message.clone(),
@@ -179,8 +175,7 @@ impl SendActivity for DeleteCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), request.community_id).await?;
     let deletable = DeletableObjects::Community(community.clone().into());
     send_apub_delete_in_community(
@@ -204,8 +199,7 @@ impl SendActivity for RemoveCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), request.community_id).await?;
     let deletable = DeletableObjects::Community(community.clone().into());
     send_apub_delete_in_community(
index 4e2acd518f530c02f9a5679d101674801b07e9a8..8a785da05ab8660601a1696d42da7297e7c7d1d9 100644 (file)
@@ -24,7 +24,7 @@ use activitypub_federation::{
 use lemmy_api_common::{
   community::{BlockCommunity, BlockCommunityResponse},
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{
   source::{
@@ -138,8 +138,7 @@ impl SendActivity for BlockCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let community = Community::read(context.pool(), request.community_id).await?;
     UndoFollow::send(&local_user_view.person.into(), &community.into(), context).await
   }
index 5b9d98b42437d07c37025940e4e5f951bc7755d5..a4c2fd673d5d1ef92a8e92163196ca63ce178c23 100644 (file)
@@ -7,7 +7,7 @@ use activitypub_federation::config::Data;
 use lemmy_api_common::{
   community::{CommunityResponse, FollowCommunity},
   context::LemmyContext,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
 };
 use lemmy_db_schema::{source::community::Community, traits::Crud};
 use lemmy_utils::error::LemmyError;
@@ -25,8 +25,7 @@ impl SendActivity for FollowCommunity {
     _response: &Self::Response,
     context: &Data<LemmyContext>,
   ) -> Result<(), LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&request.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&request.auth, context).await?;
     let person = local_user_view.person.clone().into();
     let community: ApubCommunity = Community::read(context.pool(), request.community_id)
       .await?
index 89832148ff3f0e45b961cb7161e50f88433199e9..60015b137c368ea0b49de82d8234286fa4333e2b 100644 (file)
@@ -15,7 +15,7 @@ use lemmy_api_common::{
   context::LemmyContext,
   post::{CreatePostLike, PostResponse},
   sensitive::Sensitive,
-  utils::get_local_user_view_from_jwt,
+  utils::local_user_view_from_jwt,
   websocket::UserOperation,
 };
 use lemmy_db_schema::{
@@ -85,7 +85,7 @@ async fn send_activity(
   context: &Data<LemmyContext>,
 ) -> Result<(), LemmyError> {
   let community = Community::read(context.pool(), community_id).await?.into();
-  let local_user_view = get_local_user_view_from_jwt(jwt, context.pool(), context.secret()).await?;
+  let local_user_view = local_user_view_from_jwt(jwt, context).await?;
   let actor = Person::read(context.pool(), local_user_view.person.id)
     .await?
     .into();
index bc0010ab5286aa2380f29395a2b852ad8ba26ba5..f697a735833e7d304fba0fde888bfb055c56ad42 100644 (file)
@@ -7,7 +7,7 @@ use activitypub_federation::config::Data;
 use lemmy_api_common::{
   comment::{GetComments, GetCommentsResponse},
   context::LemmyContext,
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt},
+  utils::{check_private_instance, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::{
   source::{comment::Comment, community::Community, local_site::LocalSite},
@@ -27,9 +27,7 @@ impl PerformApub for GetComments {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetCommentsResponse, LemmyError> {
     let data: &GetComments = self;
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
     check_private_instance(&local_user_view, &local_site)?;
 
index 7859f75472de943f6bf826449319261dfe39b4c1..58c31b2e652a8a50a8ffbce95646751e7cd7b3f1 100644 (file)
@@ -7,7 +7,7 @@ use activitypub_federation::config::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   post::{GetPosts, GetPostsResponse},
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt, is_mod_or_admin_opt},
+  utils::{check_private_instance, is_mod_or_admin_opt, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::source::{community::Community, local_site::LocalSite};
 use lemmy_db_views::post_view::PostQuery;
@@ -24,9 +24,7 @@ impl PerformApub for GetPosts {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetPostsResponse, LemmyError> {
     let data: &GetPosts = self;
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
 
     check_private_instance(&local_user_view, &local_site)?;
index e01c7bdaf06cf59bfde1baa7c915544c43767490..53469cf84b6daef322c1b18a1448d55589f68c28 100644 (file)
@@ -7,7 +7,7 @@ use activitypub_federation::config::Data;
 use lemmy_api_common::{
   community::{GetCommunity, GetCommunityResponse},
   context::LemmyContext,
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt, is_mod_or_admin_opt},
+  utils::{check_private_instance, is_mod_or_admin_opt, local_user_view_from_jwt_opt},
   websocket::handlers::online_users::GetCommunityUsersOnline,
 };
 use lemmy_db_schema::source::{
@@ -30,9 +30,7 @@ impl PerformApub for GetCommunity {
     _websocket_id: Option<ConnectionId>,
   ) -> Result<GetCommunityResponse, LemmyError> {
     let data: &GetCommunity = self;
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
 
     if data.name.is_none() && data.id.is_none() {
index 95d9ecc08b4b1fb9e4fb010db2bf35534adb90fb..9d453acee5d91aa79371e231717f880396462378 100644 (file)
@@ -3,7 +3,7 @@ use activitypub_federation::config::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   person::{GetPersonDetails, GetPersonDetailsResponse},
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt, is_admin},
+  utils::{check_private_instance, is_admin, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::{
   source::{local_site::LocalSite, person::Person},
@@ -30,9 +30,7 @@ impl PerformApub for GetPersonDetails {
       return Err(LemmyError::from_message("no_id_given"));
     }
 
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
     let is_admin = local_user_view.as_ref().map(|luv| is_admin(luv).is_ok());
 
index f0cb15e36e6929a21c7c87161e4bd8317f53733f..193494ddbae2422fa0377eb487a4b2a7ddf0087c 100644 (file)
@@ -7,7 +7,7 @@ use diesel::NotFound;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{ResolveObject, ResolveObjectResponse},
-  utils::{check_private_instance, get_local_user_view_from_jwt},
+  utils::{check_private_instance, local_user_view_from_jwt},
 };
 use lemmy_db_schema::{newtypes::PersonId, source::local_site::LocalSite, utils::DbPool};
 use lemmy_db_views::structs::{CommentView, PostView};
@@ -24,8 +24,7 @@ impl PerformApub for ResolveObject {
     context: &Data<LemmyContext>,
     _websocket_id: Option<ConnectionId>,
   ) -> Result<ResolveObjectResponse, LemmyError> {
-    let local_user_view =
-      get_local_user_view_from_jwt(&self.auth, context.pool(), context.secret()).await?;
+    let local_user_view = local_user_view_from_jwt(&self.auth, context).await?;
     let local_site = LocalSite::read(context.pool()).await?;
     let person_id = local_user_view.person.id;
     check_private_instance(&Some(local_user_view), &local_site)?;
index 212e037fd7555c30bca8e382514f431525f9bec3..6cbd6b1e5f5b8b489ee34466fa85cf8526820706 100644 (file)
@@ -7,7 +7,7 @@ use activitypub_federation::config::Data;
 use lemmy_api_common::{
   context::LemmyContext,
   site::{Search, SearchResponse},
-  utils::{check_private_instance, get_local_user_view_from_jwt_opt, is_admin},
+  utils::{check_private_instance, is_admin, local_user_view_from_jwt_opt},
 };
 use lemmy_db_schema::{
   source::{community::Community, local_site::LocalSite},
@@ -30,9 +30,7 @@ impl PerformApub for Search {
   ) -> Result<SearchResponse, LemmyError> {
     let data: &Search = self;
 
-    let local_user_view =
-      get_local_user_view_from_jwt_opt(data.auth.as_ref(), context.pool(), context.secret())
-        .await?;
+    let local_user_view = local_user_view_from_jwt_opt(data.auth.as_ref(), context).await;
     let local_site = LocalSite::read(context.pool()).await?;
 
     check_private_instance(&local_user_view, &local_site)?;
index cd6555d7d1e40acd6d3500f0eda594e14c16d12f..9b7801f2a18894d1d29161f154d03659f3d0fcb7 100644 (file)
@@ -11,7 +11,7 @@ use actix_web::{
   HttpResponse,
 };
 use futures::stream::{Stream, StreamExt};
-use lemmy_api_common::{context::LemmyContext, utils::get_local_user_view_from_jwt};
+use lemmy_api_common::{context::LemmyContext, utils::local_user_view_from_jwt};
 use lemmy_db_schema::source::local_site::LocalSite;
 use lemmy_utils::{claims::Claims, rate_limit::RateLimitCell, REQWEST_TIMEOUT};
 use reqwest::Body;
@@ -136,7 +136,7 @@ async fn full_res(
     let jwt = req
       .cookie("jwt")
       .expect("No auth header for picture access");
-    if get_local_user_view_from_jwt(jwt.value(), context.pool(), context.secret())
+    if local_user_view_from_jwt(jwt.value(), &context)
       .await
       .is_err()
     {