1
0

Fix unlisted showing (#873)

* Fix projects showing draft

* fix build

* run fmt
This commit is contained in:
Geometrically
2024-01-27 19:11:00 -05:00
committed by GitHub
parent 5b63b0b398
commit d5107f2ef6
9 changed files with 30 additions and 21 deletions

View File

@@ -33,8 +33,9 @@ pub async fn is_visible_project(
project_data: &Project,
user_option: &Option<User>,
pool: &web::Data<PgPool>,
hide_unlisted: bool,
) -> Result<bool, ApiError> {
filter_visible_project_ids(vec![project_data], user_option, pool)
filter_visible_project_ids(vec![project_data], user_option, pool, hide_unlisted)
.await
.map(|x| !x.is_empty())
}
@@ -53,11 +54,13 @@ pub async fn filter_visible_projects(
mut projects: Vec<QueryProject>,
user_option: &Option<User>,
pool: &web::Data<PgPool>,
hide_unlisted: bool,
) -> Result<Vec<crate::models::projects::Project>, ApiError> {
let filtered_project_ids = filter_visible_project_ids(
projects.iter().map(|x| &x.inner).collect_vec(),
user_option,
pool,
hide_unlisted,
)
.await
.unwrap();
@@ -74,17 +77,21 @@ pub async fn filter_visible_project_ids(
projects: Vec<&Project>,
user_option: &Option<User>,
pool: &web::Data<PgPool>,
hide_unlisted: bool,
) -> Result<Vec<crate::database::models::ProjectId>, ApiError> {
let mut return_projects = Vec::new();
let mut check_projects = Vec::new();
// Return projects that are not hidden or we are a mod of
for project in projects {
if !project.status.is_hidden()
|| user_option
.as_ref()
.map(|x| x.role.is_mod())
.unwrap_or(false)
if (if hide_unlisted {
project.status.is_searchable()
} else {
!project.status.is_hidden()
}) || user_option
.as_ref()
.map(|x| x.role.is_mod())
.unwrap_or(false)
{
return_projects.push(project.id);
} else if user_option.is_some() {
@@ -233,6 +240,7 @@ pub async fn filter_visible_version_ids(
.collect(),
user_option,
pool,
false,
)
.await?;