← Back to Realms

Realm

gno.land/r/gnoswap/rbac/v1

Overview

Realm Path
gno.land/r/gnoswap/rbac/v1
Exported Functions
11
State Entries
22
Source Files
8
Total Package Entries
45

Exported Functions

11 exported functions

State

22 state entries

Source Code

FILES
assert.gno
go
1package rbac
2
3import (
4	"strings"
5
6	ufmt "gno.land/p/nt/ufmt/v0"
7
8	prbac "gno.land/p/gnoswap/rbac/v1"
9)
10
11// assertIsOwner panics if address is not the current owner.
12func assertIsOwner(addr address) {
13	if manager.Owner() != addr {
14		panic(makeErrorWithDetails(
15			errCallerIsNotOwner,
16			ufmt.Sprintf("caller: %s", addr.String()),
17		))
18	}
19}
20
21// assertIsPendingOwner panics if address is not the pending owner.
22func assertIsPendingOwner(addr address) {
23	if manager.PendingOwner() != addr {
24		panic(makeErrorWithDetails(
25			errCallerIsNotPendingOwner,
26			ufmt.Sprintf("caller: %s", addr.String()),
27		))
28	}
29}
30
31// assertIsAdmin panics if address is not authorized for admin role.
32func assertIsAdmin(addr address) {
33	if !manager.IsAuthorized(prbac.ROLE_ADMIN.String(), addr) {
34		panic(
35			makeErrorWithDetails(
36				errCallerIsNotAdmin,
37				ufmt.Sprintf("caller: %s", addr.String()),
38			),
39		)
40	}
41}
42
43// assertIsValidRoleName panics if roleName is invalid (empty or whitespace-only).
44func assertIsValidRoleName(roleName string) {
45	if strings.TrimSpace(roleName) == "" {
46		panic(makeErrorWithDetails(
47			errInvalidRoleName,
48			ufmt.Sprintf("role name: %q", roleName),
49		))
50	}
51}
52
53func assertIsValidAddress(addr address) {
54	if !addr.IsValid() {
55		panic(makeErrorWithDetails(
56			errInvalidAddress,
57			ufmt.Sprintf("address: %s", addr.String()),
58		))
59	}
60}
61
62func assertNotAdminRole(roleName string) {
63	if strings.TrimSpace(roleName) == prbac.ROLE_ADMIN.String() {
64		panic(makeErrorWithDetails(
65			errAdminRoleUpdateForbidden,
66			ufmt.Sprintf("role name: %s", roleName),
67		))
68	}
69}
70
71func assertIsAdminOrGovernance(addr address) {
72	if manager.IsAuthorized(prbac.ROLE_ADMIN.String(), addr) || manager.IsAuthorized(prbac.ROLE_GOVERNANCE.String(), addr) {
73		return
74	}
75
76	panic(makeErrorWithDetails(
77		errCallerIsNotAdminOrGovernance,
78		ufmt.Sprintf("caller: %s", addr.String()),
79	))
80}
81

Raw Package Data

Raw JSON data