Source Code

(define-map permissions {user: principal, resource: (string-ascii 50)} bool)

(define-constant err-unauthorized (err u400))

(define-public (grant-permission (user principal) (resource (string-ascii 50)))
    (begin
        (map-set permissions {user: user, resource: resource} true)
        (ok true)
    )
)

(define-public (revoke-permission (user principal) (resource (string-ascii 50)))
    (begin
        (map-delete permissions {user: user, resource: resource})
        (ok true)
    )
)

(define-read-only (has-permission (user principal) (resource (string-ascii 50)))
    (ok (default-to false (map-get? permissions {user: user, resource: resource})))
)

Functions (3)

FunctionAccessArgs
grant-permissionpublicuser: principal, resource: (string-ascii 50
revoke-permissionpublicuser: principal, resource: (string-ascii 50
has-permissionread-onlyuser: principal, resource: (string-ascii 50