From 1b3df3521537d1bf0d5c3b66293e5087271d714c Mon Sep 17 00:00:00 2001
From: Alena Petraki <a.petraki@perx.ru>
Date: Wed, 10 Apr 2024 12:13:06 +0000
Subject: [PATCH] =?UTF-8?q?=D0=A0=D0=B5=D0=B0=D0=BB=D0=B8=D0=B7=D0=BE?=
 =?UTF-8?q?=D0=B2=D0=B0=D0=BD=20=D0=BC=D0=B5=D1=82=D0=BE=D0=B4=20String=20?=
 =?UTF-8?q?=D0=B4=D0=BB=D1=8F=20=D1=80=D0=BE=D0=BB=D0=B5=D0=B9=20=D0=B2=20?=
 =?UTF-8?q?=D0=BE=D1=80=D0=B3=D0=B0=D0=BD=D0=B8=D0=B7=D0=B0=D1=86=D0=B8?=
 =?UTF-8?q?=D0=B8?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 pkg/members/members.go | 28 ++++++++++++++++++++++++----
 1 file changed, 24 insertions(+), 4 deletions(-)

diff --git a/pkg/members/members.go b/pkg/members/members.go
index 0993b6fd..4e153058 100644
--- a/pkg/members/members.go
+++ b/pkg/members/members.go
@@ -24,12 +24,32 @@ func (r Role) IsPrivileged() bool {
 }
 
 func (r Role) Format(s fmt.State, verb rune) {
+	s.Write([]byte(r.String()))
+}
+
+func (r Role) String() string {
 	switch r {
+	case NotMember:
+		return "not member"
+	case RoleMember:
+		return "member"
 	case RoleOwner:
-		fmt.Fprint(s, "owner")
+		return "owner"
 	case RoleAdmin:
-		fmt.Fprint(s, "admin")
-	case RoleMember:
-		fmt.Fprint(s, "member")
+		return "admin"
+	}
+	return fmt.Sprintf("%d", r)
+}
+
+func RoleFromString(r string) Role {
+	switch r {
+	case RoleMember.String():
+		return RoleMember
+	case RoleOwner.String():
+		return RoleOwner
+	case RoleAdmin.String():
+		return RoleAdmin
+	default:
+		return NotMember
 	}
 }
-- 
GitLab