Search Apps Documentation Source Content File Folder Download Copy Actions Download

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}