summaryrefslogtreecommitdiff
path: root/Hutch/Models
diff options
context:
space:
mode:
Diffstat (limited to 'Hutch/Models')
-rw-r--r--Hutch/Models/Git.swift2
-rw-r--r--Hutch/Models/RepositoryACL.swift20
2 files changed, 21 insertions, 1 deletions
diff --git a/Hutch/Models/Git.swift b/Hutch/Models/Git.swift
index a45086b..3629ce4 100644
--- a/Hutch/Models/Git.swift
+++ b/Hutch/Models/Git.swift
@@ -10,7 +10,7 @@ enum Visibility: String, Codable, Sendable {
}
/// Repository access mode.
-enum AccessMode: String, Codable, Sendable {
+enum AccessMode: String, Codable, Sendable, CaseIterable {
case ro = "RO"
case rw = "RW"
}
diff --git a/Hutch/Models/RepositoryACL.swift b/Hutch/Models/RepositoryACL.swift
new file mode 100644
index 0000000..e5f5eb1
--- /dev/null
+++ b/Hutch/Models/RepositoryACL.swift
@@ -0,0 +1,20 @@
+import Foundation
+
+struct RepositoryACLEntry: Codable, Sendable, Identifiable, Hashable {
+ let id: Int
+ let mode: AccessMode
+ let entity: Entity
+}
+
+extension AccessMode {
+ var shortLabel: String { rawValue }
+
+ var displayName: String {
+ switch self {
+ case .ro:
+ "Read Only"
+ case .rw:
+ "Read/Write"
+ }
+ }
+}