pub struct Permissions {
    pub env: Environment,
    pub config: Config,
}
Expand description

Permissions associated with various resources of a git repository

Fields§

§env: Environment

Permissions related to the environment

§config: Config

Permissions related to the handling of git configuration.

Implementations§

Return permissions that will not include configuration files not owned by the current user, but trust system and global configuration files along with those which are owned by the current user.

This allows to read and write repositories even if they aren’t owned by the current user, but avoid using anything else that could cause us to write into unknown locations or use programs beyond our PATH.

Examples found in repository?
src/repository/permissions.rs (line 159)
156
157
158
159
160
161
162
163
164
165
166
167
    fn default_for_level(level: Trust) -> Self {
        match level {
            Trust::Full => Permissions::all(),
            Trust::Reduced => Permissions::secure(),
        }
    }
}

impl Default for Permissions {
    fn default() -> Self {
        Permissions::secure()
    }

Everything is allowed with this set of permissions, thus we read all configuration and do what git typically does with owned repositories.

Examples found in repository?
src/repository/permissions.rs (line 158)
156
157
158
159
160
161
    fn default_for_level(level: Trust) -> Self {
        match level {
            Trust::Full => Permissions::all(),
            Trust::Reduced => Permissions::secure(),
        }
    }

Don’t read any but the local git configuration and deny reading any environment variables.

Examples found in repository?
src/open/options.rs (line 29)
28
29
30
    pub fn isolated() -> Self {
        Options::default().permissions(Permissions::isolated())
    }

Trait Implementations§

Returns a copy of the value. Read more
Performs copy-assignment from source. Read more
Formats the value using the given formatter. Read more
Returns the “default value” for a type. Read more
Produce a default value for the given trust level.

Auto Trait Implementations§

Blanket Implementations§

Gets the TypeId of self. Read more
Immutably borrows from an owned value. Read more
Mutably borrows from an owned value. Read more

Returns the argument unchanged.

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

The alignment of pointer.
The type for initializers.
Initializes a with the given initializer. Read more
Dereferences the given pointer. Read more
Mutably dereferences the given pointer. Read more
Drops the object pointed to by the given pointer. Read more
Should always be Self
The resulting type after obtaining ownership.
Creates owned data from borrowed data, usually by cloning. Read more
Uses borrowed data to replace owned data, usually by cloning. Read more
The type returned in the event of a conversion error.
Performs the conversion.
The type returned in the event of a conversion error.
Performs the conversion.