-#[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<LocalUserSettingsView>, 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 = LocalUserSettingsView::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),
- }
-}