mirror of
https://github.com/facebook/sapling.git
synced 2024-10-05 14:28:17 +03:00
permission_checker: remove auto_impl for AclProvider
Summary: Everywhere an `AclProvider` implementation is used, it is as an `Arc<dyn AclProvider>`. This means making these methods generic in terms of `impl AclProvider` is pointless, as we can more simply accept `&dyn AclProvider` and avoid the compile-time overhead. Reviewed By: yancouto Differential Revision: D40357645 fbshipit-source-id: 004eaaf7b2f69c262074e706f38453a05e782fc6
This commit is contained in:
parent
1a3eb263f0
commit
ea08914663
@ -19,7 +19,7 @@ pub struct ConnectionSecurityChecker {
|
||||
}
|
||||
|
||||
impl ConnectionSecurityChecker {
|
||||
pub async fn new(acl_provider: impl AclProvider, common_config: &CommonConfig) -> Result<Self> {
|
||||
pub async fn new(acl_provider: &dyn AclProvider, common_config: &CommonConfig) -> Result<Self> {
|
||||
let mut builder = PermissionCheckerBuilder::new();
|
||||
|
||||
if let Some(tier) = &common_config.trusted_parties_hipster_tier {
|
||||
|
@ -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()],
|
||||
|
@ -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<dyn FileContentManager>,
|
||||
hook_manager_params: HookManagerParams,
|
||||
mut scuba: MononokeScubaSampleBuilder,
|
||||
|
@ -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,
|
||||
|
@ -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"
|
||||
|
@ -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.
|
||||
|
@ -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>,
|
||||
|
@ -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(
|
||||
|
Loading…
Reference in New Issue
Block a user