Files
History_Api/pkg/constants/project_member.go
AzenKain 6918a100fc
All checks were successful
Build and Release / release (push) Successful in 1m15s
Module project, commit, submission
2026-04-26 16:31:03 +07:00

65 lines
1.3 KiB
Go

package constants
type ProjectMemberRole int16
const (
ProjectMemberRoleOwner ProjectMemberRole = 1
ProjectMemberRoleEditor ProjectMemberRole = 2
ProjectMemberRoleViewer ProjectMemberRole = 3
)
func (r ProjectMemberRole) String() string {
switch r {
case ProjectMemberRoleOwner:
return "OWNER"
case ProjectMemberRoleEditor:
return "EDITOR"
case ProjectMemberRoleViewer:
return "VIEWER"
default:
return "UNKNOWN"
}
}
func (r ProjectMemberRole) Int16() int16 {
return int16(r)
}
func ParseProjectMemberRole(v int16) ProjectMemberRole {
switch v {
case 1:
return ProjectMemberRoleOwner
case 2:
return ProjectMemberRoleEditor
case 3:
return ProjectMemberRoleViewer
default:
return ProjectMemberRoleViewer
}
}
func ParseProjectMemberRoleText(v string) ProjectMemberRole {
switch v {
case "OWNER":
return ProjectMemberRoleOwner
case "EDITOR":
return ProjectMemberRoleEditor
case "VIEWER":
return ProjectMemberRoleViewer
default:
return ProjectMemberRoleViewer
}
}
func (r ProjectMemberRole) CanWrite() bool {
return r == ProjectMemberRoleOwner || r == ProjectMemberRoleEditor
}
func (r ProjectMemberRole) CanRead() bool {
return r == ProjectMemberRoleOwner || r == ProjectMemberRoleEditor || r == ProjectMemberRoleViewer
}
func (r ProjectMemberRole) IsOwner() bool {
return r == ProjectMemberRoleOwner
}