summaryrefslogtreecommitdiff
path: root/server/channel/membership.go
diff options
context:
space:
mode:
authorraven <citrons@mondecitronne.com>2025-10-20 18:06:13 -0500
committerraven <citrons@mondecitronne.com>2025-10-20 18:06:13 -0500
commit5320b561c592e875f0523760d4d20df8d66b30a7 (patch)
tree1b2f6cb8edc6a4b9cdd5d138b8528f04ff46971d /server/channel/membership.go
parent9e08d84af7d975ef540a67b54ecc9b3c0e4d084c (diff)
user and channel saving
Diffstat (limited to 'server/channel/membership.go')
-rw-r--r--server/channel/membership.go35
1 files changed, 21 insertions, 14 deletions
diff --git a/server/channel/membership.go b/server/channel/membership.go
index 3a44517..27c9bed 100644
--- a/server/channel/membership.go
+++ b/server/channel/membership.go
@@ -35,35 +35,42 @@ var CreatorMembership = Membership {
Op: true,
}
-func (m Membership) Change(spec proto.Object) (Membership, *proto.Fail) {
- new := m
+func (m *Membership) Undata(spec proto.Object) {
+ m.Yes = true
for k, v := range spec.Fields {
- var field *bool
+ val := v == "yes"
switch k {
case "see":
- field = &new.See
+ m.See = val
case "put":
- field = &new.Put
+ m.Put = val
case "history":
- field = &new.History
+ m.History = val
case "moderate":
- field = &new.Moderate
+ m.Moderate = val
case "update":
- field = &new.Update
- case "":
- continue
+ m.Update = val
+ case "op":
+ m.Op = val
+ }
+ }
+}
+
+func (m Membership) Change(spec proto.Object) (Membership, *proto.Fail) {
+ new := m
+ for k, v := range spec.Fields {
+ switch k {
+ case "see", "put", "history", "moderate", "update", "":
default:
return new, &proto.Fail{"invalid", "", nil}
}
switch v {
- case "yes":
- *field = true
- case "no":
- *field = false
+ case "yes", "no":
default:
return new, &proto.Fail{"invalid", "", nil}
}
}
+ new.Undata(spec)
return new, nil
}