forked from tangled.org/core
this repo has no description

rbac,knotserver: move `ThisServer` const to rbac pkg

Signed-off-by: oppiliappan <me@oppi.li>

Changed files
+14 -13
knotserver
rbac
+3 -2
knotserver/ingester.go
···
"tangled.sh/tangled.sh/core/knotserver/db"
"tangled.sh/tangled.sh/core/knotserver/git"
"tangled.sh/tangled.sh/core/log"
+
"tangled.sh/tangled.sh/core/rbac"
"tangled.sh/tangled.sh/core/workflow"
)
···
return fmt.Errorf("domain mismatch: %s != %s", record.Domain, h.c.Server.Hostname)
}
-
ok, err := h.e.E.Enforce(did, ThisServer, ThisServer, "server:invite")
+
ok, err := h.e.E.Enforce(did, rbac.ThisServer, rbac.ThisServer, "server:invite")
if err != nil || !ok {
l.Error("failed to add member", "did", did)
return fmt.Errorf("failed to enforce permissions: %w", err)
}
-
if err := h.e.AddKnotMember(ThisServer, record.Subject); err != nil {
+
if err := h.e.AddKnotMember(rbac.ThisServer, record.Subject); err != nil {
l.Error("failed to add member", "error", err)
return fmt.Errorf("failed to add member: %w", err)
}
+1 -1
knotserver/internal.go
···
return
}
-
ok, err := h.e.IsPushAllowed(user, ThisServer, repo)
+
ok, err := h.e.IsPushAllowed(user, rbac.ThisServer, repo)
if err != nil || !ok {
w.WriteHeader(http.StatusForbidden)
return
+6 -5
knotserver/routes.go
···
"tangled.sh/tangled.sh/core/knotserver/db"
"tangled.sh/tangled.sh/core/knotserver/git"
"tangled.sh/tangled.sh/core/patchutil"
+
"tangled.sh/tangled.sh/core/rbac"
"tangled.sh/tangled.sh/core/types"
)
···
}
// add perms for this user to access the repo
-
err = h.e.AddRepo(did, ThisServer, relativeRepoPath)
+
err = h.e.AddRepo(did, rbac.ThisServer, relativeRepoPath)
if err != nil {
l.Error("adding repo permissions", "error", err.Error())
writeError(w, err.Error(), http.StatusInternalServerError)
···
}
// add perms for this user to access the repo
-
err = h.e.AddRepo(did, ThisServer, relativeRepoPath)
+
err = h.e.AddRepo(did, rbac.ThisServer, relativeRepoPath)
if err != nil {
l.Error("adding repo permissions", "error", err.Error())
writeError(w, err.Error(), http.StatusInternalServerError)
···
h.jc.AddDid(did)
-
if err := h.e.AddKnotMember(ThisServer, did); err != nil {
+
if err := h.e.AddKnotMember(rbac.ThisServer, did); err != nil {
l.Error("adding member", "error", err.Error())
writeError(w, err.Error(), http.StatusInternalServerError)
return
···
h.jc.AddDid(data.Did)
repoName, _ := securejoin.SecureJoin(ownerDid, repo)
-
if err := h.e.AddCollaborator(data.Did, ThisServer, repoName); err != nil {
+
if err := h.e.AddCollaborator(data.Did, rbac.ThisServer, repoName); err != nil {
l.Error("adding repo collaborator", "error", err.Error())
writeError(w, err.Error(), http.StatusInternalServerError)
return
···
h.jc.AddDid(data.Did)
-
if err := h.e.AddKnotOwner(ThisServer, data.Did); err != nil {
+
if err := h.e.AddKnotOwner(rbac.ThisServer, data.Did); err != nil {
l.Error("adding owner", "error", err.Error())
writeError(w, err.Error(), http.StatusInternalServerError)
return
-5
knotserver/util.go
···
"github.com/bluesky-social/indigo/atproto/syntax"
securejoin "github.com/cyphar/filepath-securejoin"
"github.com/go-chi/chi/v5"
-
"github.com/microcosm-cc/bluemonday"
)
-
-
func sanitize(content []byte) []byte {
-
return bluemonday.UGCPolicy().SanitizeBytes([]byte(content))
-
}
func didPath(r *http.Request) string {
did := chi.URLParam(r, "did")
+4
rbac/rbac.go
···
)
const (
+
ThisServer = "thisserver" // resource identifier for local rbac enforcement
+
)
+
+
const (
Model = `
[request_definition]
r = sub, dom, obj, act