add: hide_from_social_lists user setting

This commit is contained in:
trisua 2025-07-10 13:32:43 -04:00
parent 4e152b07be
commit bdd8f9a869
5 changed files with 64 additions and 21 deletions

View file

@ -195,18 +195,29 @@ impl DataManager {
pub async fn fill_userfollows_with_receiver(
&self,
userfollows: Vec<UserFollow>,
as_user: &Option<User>,
do_check: bool,
) -> Result<Vec<(UserFollow, User)>> {
let mut out: Vec<(UserFollow, User)> = Vec::new();
for userfollow in userfollows {
let receiver = userfollow.receiver;
out.push((
userfollow,
match self.get_user_by_id(receiver).await {
Ok(u) => u,
Err(_) => continue,
},
));
let user = match self.get_user_by_id(receiver).await {
Ok(u) => u,
Err(_) => continue,
};
if user.settings.hide_from_social_lists && do_check {
if let Some(ua) = as_user {
if !ua.permissions.check(FinePermission::MANAGE_USERS) {
continue;
}
} else {
continue;
}
}
out.push((userfollow, user));
}
Ok(out)
@ -216,18 +227,29 @@ impl DataManager {
pub async fn fill_userfollows_with_initiator(
&self,
userfollows: Vec<UserFollow>,
as_user: &Option<User>,
do_check: bool,
) -> Result<Vec<(UserFollow, User)>> {
let mut out: Vec<(UserFollow, User)> = Vec::new();
for userfollow in userfollows {
let initiator = userfollow.initiator;
out.push((
userfollow,
match self.get_user_by_id(initiator).await {
Ok(u) => u,
Err(_) => continue,
},
));
let user = match self.get_user_by_id(initiator).await {
Ok(u) => u,
Err(_) => continue,
};
if user.settings.hide_from_social_lists && do_check {
if let Some(ua) = as_user {
if !ua.permissions.check(FinePermission::MANAGE_USERS) {
continue;
}
} else {
continue;
}
}
out.push((userfollow, user));
}
Ok(out)