level.go

 1package access
 2
 3// AccessLevel is the level of access allowed to a repo.
 4type AccessLevel int
 5
 6const (
 7	// NoAccess does not allow access to the repo.
 8	NoAccess AccessLevel = iota
 9
10	// ReadOnlyAccess allows read-only access to the repo.
11	ReadOnlyAccess
12
13	// ReadWriteAccess allows read and write access to the repo.
14	ReadWriteAccess
15
16	// AdminAccess allows read, write, and admin access to the repo.
17	AdminAccess
18)
19
20// String returns the string representation of the access level.
21func (a AccessLevel) String() string {
22	switch a {
23	case NoAccess:
24		return "no-access"
25	case ReadOnlyAccess:
26		return "read-only"
27	case ReadWriteAccess:
28		return "read-write"
29	case AdminAccess:
30		return "admin-access"
31	default:
32		return "unknown"
33	}
34}
35
36// ParseAccessLevel parses an access level string.
37func ParseAccessLevel(s string) AccessLevel {
38	switch s {
39	case "no-access":
40		return NoAccess
41	case "read-only":
42		return ReadOnlyAccess
43	case "read-write":
44		return ReadWriteAccess
45	case "admin-access":
46		return AdminAccess
47	default:
48		return AccessLevel(-1)
49	}
50}