diff options
| author | raven <citrons@mondecitronne.com> | 2025-10-20 18:06:13 -0500 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2025-10-20 18:06:13 -0500 |
| commit | 5320b561c592e875f0523760d4d20df8d66b30a7 (patch) | |
| tree | 1b2f6cb8edc6a4b9cdd5d138b8528f04ff46971d /server/channel/membership.go | |
| parent | 9e08d84af7d975ef540a67b54ecc9b3c0e4d084c (diff) | |
user and channel saving
Diffstat (limited to 'server/channel/membership.go')
| -rw-r--r-- | server/channel/membership.go | 35 |
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 } |
