MCPcopy Create free account
hub / github.com/MaterializeInc/materialize / all_object_privileges

Function all_object_privileges

src/sql/src/rbac.rs:1871–1902  ·  view source on GitHub ↗
(object_type: SystemObjectType)

Source from the content-addressed store, hash-verified

1869}
1870
1871pub const fn all_object_privileges(object_type: SystemObjectType) -> AclMode {
1872 const TABLE_ACL_MODE: AclMode = AclMode::INSERT
1873 .union(AclMode::SELECT)
1874 .union(AclMode::UPDATE)
1875 .union(AclMode::DELETE);
1876 const USAGE_CREATE_ACL_MODE: AclMode = AclMode::USAGE.union(AclMode::CREATE);
1877 const ALL_SYSTEM_PRIVILEGES: AclMode = AclMode::CREATE_ROLE
1878 .union(AclMode::CREATE_DB)
1879 .union(AclMode::CREATE_CLUSTER)
1880 .union(AclMode::CREATE_NETWORK_POLICY);
1881
1882 const EMPTY_ACL_MODE: AclMode = AclMode::empty();
1883 match object_type {
1884 SystemObjectType::Object(ObjectType::Table) => TABLE_ACL_MODE,
1885 SystemObjectType::Object(ObjectType::View) => AclMode::SELECT,
1886 SystemObjectType::Object(ObjectType::MaterializedView) => AclMode::SELECT,
1887 SystemObjectType::Object(ObjectType::Source) => AclMode::SELECT,
1888 SystemObjectType::Object(ObjectType::Sink) => EMPTY_ACL_MODE,
1889 SystemObjectType::Object(ObjectType::Index) => EMPTY_ACL_MODE,
1890 SystemObjectType::Object(ObjectType::Type) => AclMode::USAGE,
1891 SystemObjectType::Object(ObjectType::Role) => EMPTY_ACL_MODE,
1892 SystemObjectType::Object(ObjectType::Cluster) => USAGE_CREATE_ACL_MODE,
1893 SystemObjectType::Object(ObjectType::ClusterReplica) => EMPTY_ACL_MODE,
1894 SystemObjectType::Object(ObjectType::Secret) => AclMode::USAGE,
1895 SystemObjectType::Object(ObjectType::NetworkPolicy) => AclMode::USAGE,
1896 SystemObjectType::Object(ObjectType::Connection) => AclMode::USAGE,
1897 SystemObjectType::Object(ObjectType::Database) => USAGE_CREATE_ACL_MODE,
1898 SystemObjectType::Object(ObjectType::Schema) => USAGE_CREATE_ACL_MODE,
1899 SystemObjectType::Object(ObjectType::Func) => EMPTY_ACL_MODE,
1900 SystemObjectType::System => ALL_SYSTEM_PRIVILEGES,
1901 }
1902}
1903
1904pub const fn owner_privilege(object_type: ObjectType, owner_id: RoleId) -> MzAclItem {
1905 MzAclItem {

Callers 7

owner_privilegeFunction · 0.85
all_object_privilegesMethod · 0.85
builtin.rsFile · 0.85
initializeFunction · 0.85
mz_internal.rsFile · 0.85

Calls 1

unionMethod · 0.45

Tested by

no test coverage detected