Some changes

- Changing claim name to local_user_id to facilitate logout.
- Changing AddAdmin back to using person_id
This commit is contained in:
Dessalines 2021-03-15 14:02:27 -04:00
parent 5998c83b2a
commit 8ee624a542
6 changed files with 16 additions and 13 deletions

View file

@ -103,7 +103,7 @@ pub(crate) async fn get_local_user_view_from_jwt(
Ok(claims) => claims.claims,
Err(_e) => return Err(ApiError::err("not_logged_in").into()),
};
let local_user_id = claims.id;
let local_user_id = claims.local_user_id;
let local_user_view =
blocking(pool, move |conn| LocalUserView::read(conn, local_user_id)).await??;
// Check for a site ban
@ -131,7 +131,7 @@ pub(crate) async fn get_local_user_settings_view_from_jwt(
Ok(claims) => claims.claims,
Err(_e) => return Err(ApiError::err("not_logged_in").into()),
};
let local_user_id = claims.id;
let local_user_id = claims.local_user_id;
let local_user_view = blocking(pool, move |conn| {
LocalUserSettingsView::read(conn, local_user_id)
})

View file

@ -650,9 +650,9 @@ impl Perform for AddAdmin {
is_admin(&local_user_view)?;
let added = data.added;
let added_local_user_id = data.local_user_id;
let added_person_id = data.person_id;
let added_admin = match blocking(context.pool(), move |conn| {
LocalUser::add_admin(conn, added_local_user_id, added)
LocalUser::add_admin(conn, added_person_id, added)
})
.await?
{

View file

@ -107,7 +107,7 @@ pub struct MarkAllAsRead {
#[derive(Deserialize)]
pub struct AddAdmin {
pub local_user_id: i32,
pub person_id: i32,
pub added: bool,
pub auth: String,
}

View file

@ -69,7 +69,7 @@ pub trait LocalUser_ {
local_user_id: i32,
new_password: &str,
) -> Result<LocalUser, Error>;
fn add_admin(conn: &PgConnection, local_user_id: i32, added: bool) -> Result<LocalUser, Error>;
fn add_admin(conn: &PgConnection, person_id: i32, added: bool) -> Result<LocalUser, Error>;
}
impl LocalUser_ for LocalUser {
@ -94,8 +94,8 @@ impl LocalUser_ for LocalUser {
.get_result::<Self>(conn)
}
fn add_admin(conn: &PgConnection, local_user_id: i32, added: bool) -> Result<Self, Error> {
diesel::update(local_user.find(local_user_id))
fn add_admin(conn: &PgConnection, for_person_id: i32, added: bool) -> Result<Self, Error> {
diesel::update(local_user.filter(person_id.eq(for_person_id)))
.set(admin.eq(added))
.get_result::<Self>(conn)
}

View file

@ -5,10 +5,11 @@ use diesel::PgConnection;
use lemmy_api_structs::blocking;
use lemmy_db_queries::{
source::{community::Community_, person::Person_},
Crud,
ListingType,
SortType,
};
use lemmy_db_schema::source::{community::Community, person::Person};
use lemmy_db_schema::source::{community::Community, local_user::LocalUser, person::Person};
use lemmy_db_views::{
comment_view::{CommentQueryBuilder, CommentView},
post_view::{PostQueryBuilder, PostView},
@ -223,7 +224,8 @@ fn get_feed_front(
jwt: String,
) -> Result<ChannelBuilder, LemmyError> {
let site_view = SiteView::read(&conn)?;
let person_id = Claims::decode(&jwt)?.claims.id;
let local_user_id = Claims::decode(&jwt)?.claims.local_user_id;
let person_id = LocalUser::read(&conn, local_user_id)?.person_id;
let posts = PostQueryBuilder::create(&conn)
.listing_type(&ListingType::Subscribed)
@ -249,7 +251,8 @@ fn get_feed_front(
fn get_feed_inbox(conn: &PgConnection, jwt: String) -> Result<ChannelBuilder, LemmyError> {
let site_view = SiteView::read(&conn)?;
let person_id = Claims::decode(&jwt)?.claims.id;
let local_user_id = Claims::decode(&jwt)?.claims.local_user_id;
let person_id = LocalUser::read(&conn, local_user_id)?.person_id;
let sort = SortType::New;

View file

@ -6,7 +6,7 @@ type Jwt = String;
#[derive(Debug, Serialize, Deserialize)]
pub struct Claims {
pub id: i32,
pub local_user_id: i32,
pub iss: String,
}
@ -25,7 +25,7 @@ impl Claims {
pub fn jwt(local_user_id: i32, hostname: String) -> Result<Jwt, jsonwebtoken::errors::Error> {
let my_claims = Claims {
id: local_user_id,
local_user_id,
iss: hostname,
};
encode(