From f4627372e13a01162f71551de83c664d8e89fb93 Mon Sep 17 00:00:00 2001 From: Florian Merz Date: Tue, 18 Feb 2020 22:54:19 +0100 Subject: [PATCH] default to authenticated user search for nda groups --- src/api/users.rs | 3 +-- src/db/operations/users.rs | 19 +++++++++++++++++-- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/api/users.rs b/src/api/users.rs index 86fe213..2df061c 100644 --- a/src/api/users.rs +++ b/src/api/users.rs @@ -14,8 +14,7 @@ use serde_derive::Deserialize; #[derive(Deserialize)] struct SearchUsersQuery { q: String, - #[serde(default = "TrustType::ndaed")] - t: TrustType, + t: Option, g: Option, } diff --git a/src/db/operations/users.rs b/src/db/operations/users.rs index c4906e7..737a891 100644 --- a/src/db/operations/users.rs +++ b/src/db/operations/users.rs @@ -4,6 +4,7 @@ use crate::db::users::DisplayUser; use crate::db::users::UserProfile; use crate::db::Pool; use crate::rules::engine::SEARCH_USERS; +use crate::rules::is_nda_group; use crate::rules::RuleContext; use crate::user::User; use cis_profile::schema::Profile; @@ -24,7 +25,7 @@ pub fn search_users( pool: &Pool, scope_and_user: ScopeAndUser, group_name: Option, - trust: TrustType, + trust: Option, q: &str, ) -> Result, Error> { let connection = pool.get()?; @@ -38,6 +39,14 @@ pub fn search_users( &host.user_uuid, ))?; + let trust = if let Some(trust) = trust { + trust + } else if is_nda_group(&group_name) { + TrustType::Authenticated + } else { + TrustType::Ndaed + }; + internal::user::search_users_for_group( &connection, &group_name, @@ -47,7 +56,13 @@ pub fn search_users( 5, ) } - None => internal::user::search_users(&connection, trust, scope_and_user.scope.into(), q, 5), + None => internal::user::search_users( + &connection, + trust.unwrap_or(TrustType::Ndaed), + scope_and_user.scope.into(), + q, + 5, + ), } }