(object_type: SystemObjectType)
| 1869 | } |
| 1870 | |
| 1871 | pub 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 | |
| 1904 | pub const fn owner_privilege(object_type: ObjectType, owner_id: RoleId) -> MzAclItem { |
| 1905 | MzAclItem { |
no test coverage detected