Refactor GetAccessLevel to include address parameter, update all ACL implementations and handlers for enhanced contextual access control.

This commit is contained in:
2025-09-08 07:42:47 +01:00
parent 85d806b157
commit c9314bdbd0
7 changed files with 12 additions and 14 deletions

View File

@@ -62,7 +62,7 @@ func (l *Listener) HandleEvent(msg []byte) (err error) {
return
}
// check permissions of user
accessLevel := acl.Registry.GetAccessLevel(l.authedPubkey.Load())
accessLevel := acl.Registry.GetAccessLevel(l.authedPubkey.Load(), l.remote)
switch accessLevel {
case "none":
log.D.F(

View File

@@ -28,16 +28,16 @@ func (l *Listener) HandleMessage(msg []byte, remote string) {
if t, rem, err = envelopes.Identify(msg); !chk.E(err) {
switch t {
case eventenvelope.L:
log.D.F("eventenvelope: %s", rem)
log.D.F("eventenvelope: %s %s", remote, rem)
err = l.HandleEvent(rem)
case reqenvelope.L:
log.D.F("reqenvelope: %s", rem)
log.D.F("reqenvelope: %s %s", remote, rem)
err = l.HandleReq(rem)
case closeenvelope.L:
log.D.F("closeenvelope: %s", rem)
log.D.F("closeenvelope: %s %s", remote, rem)
err = l.HandleClose(rem)
case authenvelope.L:
log.D.F("authenvelope: %s", rem)
log.D.F("authenvelope: %s %s", remote, rem)
err = l.HandleAuth(rem)
default:
err = errorf.E("unknown envelope type %s\n%s", t, rem)

View File

@@ -24,9 +24,7 @@ import (
"utils.orly/pointers"
)
func (l *Listener) HandleReq(msg []byte) (
err error,
) {
func (l *Listener) HandleReq(msg []byte) (err error) {
var rem []byte
env := reqenvelope.New()
if rem, err = env.Unmarshal(msg); chk.E(err) {
@@ -43,7 +41,7 @@ func (l *Listener) HandleReq(msg []byte) (
}
}
// check permissions of user
accessLevel := acl.Registry.GetAccessLevel(l.authedPubkey.Load())
accessLevel := acl.Registry.GetAccessLevel(l.authedPubkey.Load(), l.remote)
switch accessLevel {
case "none":
if err = okenvelope.NewFrom(