diff --git a/eden/mononoke/common/connection_security_checker/src/lib.rs b/eden/mononoke/common/connection_security_checker/src/lib.rs index 05b9cca79e..71c387b097 100644 --- a/eden/mononoke/common/connection_security_checker/src/lib.rs +++ b/eden/mononoke/common/connection_security_checker/src/lib.rs @@ -19,7 +19,7 @@ pub struct ConnectionSecurityChecker { } impl ConnectionSecurityChecker { - pub async fn new(acl_provider: impl AclProvider, common_config: &CommonConfig) -> Result { + pub async fn new(acl_provider: &dyn AclProvider, common_config: &CommonConfig) -> Result { let mut builder = PermissionCheckerBuilder::new(); if let Some(tier) = &common_config.trusted_parties_hipster_tier { diff --git a/eden/mononoke/hooks/hooks-tests/src/lib.rs b/eden/mononoke/hooks/hooks-tests/src/lib.rs index 196bafd113..2cb720e552 100644 --- a/eden/mononoke/hooks/hooks-tests/src/lib.rs +++ b/eden/mononoke/hooks/hooks-tests/src/lib.rs @@ -1425,7 +1425,7 @@ async fn hook_manager_repo(fb: FacebookInit, repo: &BasicTestRepo) -> HookManage let content_manager = RepoFileContentManager::new(&repo); HookManager::new( ctx.fb, - DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), Box::new(content_manager), HookManagerParams { disable_acl_checker: true, @@ -1456,7 +1456,7 @@ async fn hook_manager_inmem(fb: FacebookInit) -> HookManager { HookManager::new( ctx.fb, - DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), Box::new(content_manager), HookManagerParams { disable_acl_checker: true, @@ -1494,7 +1494,7 @@ async fn test_verify_integrity_fast_failure(fb: FacebookInit) { let mut hm = hook_manager_many_files_dirs_repo(fb).await; load_hooks( fb, - &DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), &mut hm, &config, &hashset![], @@ -1527,7 +1527,7 @@ async fn test_load_hooks_bad_rust_hook(fb: FacebookInit) { match load_hooks( fb, - &DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), &mut hm, &config, &hashset![], @@ -1556,7 +1556,7 @@ async fn test_load_disabled_hooks(fb: FacebookInit) { load_hooks( fb, - &DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), &mut hm, &config, &hashset!["hook1".to_string()], @@ -1590,7 +1590,7 @@ async fn test_load_disabled_hooks_referenced_by_bookmark(fb: FacebookInit) { load_hooks( fb, - &DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), &mut hm, &config, &hashset!["hook1".to_string()], @@ -1606,7 +1606,7 @@ async fn test_load_disabled_hooks_hook_does_not_exist(fb: FacebookInit) { match load_hooks( fb, - &DefaultAclProvider::new(fb), + DefaultAclProvider::new(fb).as_ref(), &mut hm, &config, &hashset!["hook1".to_string()], diff --git a/eden/mononoke/hooks/src/lib.rs b/eden/mononoke/hooks/src/lib.rs index 10c2be1dd6..90de7081e7 100644 --- a/eden/mononoke/hooks/src/lib.rs +++ b/eden/mononoke/hooks/src/lib.rs @@ -78,7 +78,7 @@ pub struct HookManager { impl HookManager { pub async fn new( fb: FacebookInit, - acl_provider: impl AclProvider, + acl_provider: &dyn AclProvider, content_manager: Box, hook_manager_params: HookManagerParams, mut scuba: MononokeScubaSampleBuilder, diff --git a/eden/mononoke/lfs_server/src/main.rs b/eden/mononoke/lfs_server/src/main.rs index 6ef6fc575f..c2057ea98a 100644 --- a/eden/mononoke/lfs_server/src/main.rs +++ b/eden/mononoke/lfs_server/src/main.rs @@ -355,7 +355,7 @@ fn main(fb: FacebookInit) -> Result<(), Error> { if let Some(tls_acceptor) = tls_acceptor { let connection_security_checker = - ConnectionSecurityChecker::new(acl_provider, &common).await?; + ConnectionSecurityChecker::new(acl_provider.as_ref(), &common).await?; serve::https( logger, diff --git a/eden/mononoke/permission_checker/Cargo.toml b/eden/mononoke/permission_checker/Cargo.toml index 031111f9d9..eff66af96f 100644 --- a/eden/mononoke/permission_checker/Cargo.toml +++ b/eden/mononoke/permission_checker/Cargo.toml @@ -10,7 +10,6 @@ license = "GPLv2+" [dependencies] anyhow = "1.0.65" async-trait = "0.1.56" -auto_impl = "0.4" fbinit = { version = "0.1.0", git = "https://github.com/facebookexperimental/rust-shed.git", branch = "main" } futures = { version = "0.3.22", features = ["async-await", "compat"] } itertools = "0.10.3" diff --git a/eden/mononoke/permission_checker/src/provider.rs b/eden/mononoke/permission_checker/src/provider.rs index 2194a1e4a0..db40d0002e 100644 --- a/eden/mononoke/permission_checker/src/provider.rs +++ b/eden/mononoke/permission_checker/src/provider.rs @@ -7,7 +7,6 @@ use anyhow::Result; use async_trait::async_trait; -use auto_impl::auto_impl; use crate::BoxMembershipChecker; use crate::BoxPermissionChecker; @@ -17,7 +16,6 @@ use crate::BoxPermissionChecker; /// These lists and groups control permissions to access various aspects of /// Mononoke. #[async_trait] -#[auto_impl(&, Arc, Box)] pub trait AclProvider: Send + Sync { /// Returns a permission checker for the access control list that /// controls the named repository. diff --git a/eden/mononoke/repo_attributes/repo_permission_checker/src/lib.rs b/eden/mononoke/repo_attributes/repo_permission_checker/src/lib.rs index 510efc4ae3..9ef4ec1d4e 100644 --- a/eden/mononoke/repo_attributes/repo_permission_checker/src/lib.rs +++ b/eden/mononoke/repo_attributes/repo_permission_checker/src/lib.rs @@ -117,7 +117,7 @@ pub struct ProdRepoPermissionChecker { impl ProdRepoPermissionChecker { pub async fn new( logger: &Logger, - acl_provider: impl AclProvider, + acl_provider: &dyn AclProvider, repo_hipster_acl: Option<&str>, service_hipster_acl: Option<&str>, repo_region_hipster_acls: Vec<&str>, diff --git a/eden/mononoke/scs_server/src/main.rs b/eden/mononoke/scs_server/src/main.rs index 5af748cd1a..f7a6b5d3ea 100644 --- a/eden/mononoke/scs_server/src/main.rs +++ b/eden/mononoke/scs_server/src/main.rs @@ -219,7 +219,7 @@ fn main(fb: FacebookInit) -> Result<(), Error> { }; let acl_provider = DefaultAclProvider::new(fb); let security_checker = runtime.block_on(ConnectionSecurityChecker::new( - acl_provider, + acl_provider.as_ref(), &app.repo_configs().common, ))?; let source_control_server = source_control_impl::SourceControlServiceImpl::new(