moderation.gno
0.79 Kb ยท 40 lines
1package blog
2
3func (b *Blog) AddModerator(addr address) error {
4 return b.Authorizable.AddToAuthList(addr)
5}
6
7func (b *Blog) DeleteModerator(addr address) error {
8 return b.Authorizable.DeleteFromAuthList(addr)
9}
10
11type UserResolver func(input string) (string, bool)
12
13func CheckAddr(addr address) error {
14 if !addr.IsValid() {
15 return ErrInvalidCaller
16 }
17 return nil
18}
19
20func CheckUser(addr string, resolver UserResolver) (string, error) {
21 if CheckAddr(address(addr)) != nil {
22 return "", ErrInvalidCaller
23 }
24 if !isRegistered(addr, resolver) {
25 return addr, nil
26 }
27 userData, _ := resolver(addr)
28 return userData, nil
29}
30
31func isRegistered(addr string, resolver UserResolver) bool {
32 if resolver == nil {
33 return false
34 }
35 userData, _ := resolver(addr)
36 if userData == "" {
37 return false
38 }
39 return true
40}