pub struct ProjectAccess {
pub default_level: AccessLevel,
pub deny_rules: Vec<Permission>,
pub protected_paths: Vec<String>,
pub restricted_tools: Vec<String>,
}Expand description
Project access configuration
Fields§
§default_level: AccessLevelDefault access level for new collaborators
deny_rules: Vec<Permission>Specific deny rules (work by default, deny specific things)
protected_paths: Vec<String>Paths that are always off-limits (secrets, credentials)
restricted_tools: Vec<String>Tools that require explicit approval
Implementations§
Source§impl ProjectAccess
impl ProjectAccess
Sourcepub fn can_access_path(&self, path: &Path, level: &AccessLevel) -> bool
pub fn can_access_path(&self, path: &Path, level: &AccessLevel) -> bool
Check if a path is accessible
Sourcepub fn can_use_tool(&self, tool: &str, level: &AccessLevel) -> bool
pub fn can_use_tool(&self, tool: &str, level: &AccessLevel) -> bool
Check if a tool can be used
Sourcepub fn deny(&mut self, action: PermissionAction, path_pattern: Option<&str>)
pub fn deny(&mut self, action: PermissionAction, path_pattern: Option<&str>)
Add a deny rule
Sourcepub fn protect_path(&mut self, pattern: &str)
pub fn protect_path(&mut self, pattern: &str)
Protect a path pattern
Sourcepub fn restrict_tool(&mut self, tool: &str)
pub fn restrict_tool(&mut self, tool: &str)
Restrict a tool (require approval)
Trait Implementations§
Source§impl Clone for ProjectAccess
impl Clone for ProjectAccess
Source§fn clone(&self) -> ProjectAccess
fn clone(&self) -> ProjectAccess
Returns a duplicate of the value. Read more
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ProjectAccess
impl Debug for ProjectAccess
Source§impl Default for ProjectAccess
impl Default for ProjectAccess
Source§fn default() -> ProjectAccess
fn default() -> ProjectAccess
Returns the “default value” for a type. Read more
Source§impl<'de> Deserialize<'de> for ProjectAccess
impl<'de> Deserialize<'de> for ProjectAccess
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ProjectAccess
impl RefUnwindSafe for ProjectAccess
impl Send for ProjectAccess
impl Sync for ProjectAccess
impl Unpin for ProjectAccess
impl UnsafeUnpin for ProjectAccess
impl UnwindSafe for ProjectAccess
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> Downcast for Twhere
T: Any,
impl<T> Downcast for Twhere
T: Any,
Source§fn into_any(self: Box<T>) -> Box<dyn Any>
fn into_any(self: Box<T>) -> Box<dyn Any>
Convert
Box<dyn Trait> (where Trait: Downcast) to Box<dyn Any>. Box<dyn Any> can
then be further downcast into Box<ConcreteType> where ConcreteType implements Trait.Source§fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
fn into_any_rc(self: Rc<T>) -> Rc<dyn Any>
Convert
Rc<Trait> (where Trait: Downcast) to Rc<Any>. Rc<Any> can then be
further downcast into Rc<ConcreteType> where ConcreteType implements Trait.Source§fn as_any(&self) -> &(dyn Any + 'static)
fn as_any(&self) -> &(dyn Any + 'static)
Convert
&Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &Any’s vtable from &Trait’s.Source§fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
fn as_any_mut(&mut self) -> &mut (dyn Any + 'static)
Convert
&mut Trait (where Trait: Downcast) to &Any. This is needed since Rust cannot
generate &mut Any’s vtable from &mut Trait’s.Source§impl<T> DowncastSync for T
impl<T> DowncastSync for T
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more