fix(netflow): завершить локальную приёмку и объединить сценарий сброса
This commit is contained in:
1 parent
d9e09281e8
commit
2215007c91
13 files changed
+31
-41
No files matched your search
@@ -11,10 +11,10 @@ assert.equal(permissionForRequest("GET","/api/traffic/flow/host-files?download=t
|
||||
assert.equal(permissionForRequest("GET","/api/traffic/flow/settings"),"mm:traffic:read")
|
||||
const app=Fastify();await app.register(authPlugin);app.addHook("preHandler",requireAuth)
|
||||
let invoked=0
|
||||
for(const [method,url] of [["GET","/api/traffic/flow/settings"],["GET","/api/traffic/flow/host-files"],["POST","/api/traffic/flow/settings/generate-keys"],["PUT","/api/traffic/flow/settings"]] as const) app.route({method,url,handler:async()=>{invoked++;return {ok:true}}})
|
||||
for(const [method,url] of [["GET","/api/traffic/flow/settings"],["GET","/api/traffic/flow/host-files"],["POST","/api/traffic/flow/settings/generate-keys"],["PUT","/api/traffic/flow/settings"],["POST","/api/traffic/flow/purge"]] as const) app.route({method,url,handler:async()=>{invoked++;return {ok:true}}})
|
||||
for(const permission of ["mm:dashboard:read","mm:traffic:read","mm:traffic:write","mm:traffic:admin","mm:settings:admin"]){
|
||||
const token=await new SignJWT({sub:"fixture",apps:["mm"],permissions:[permission]}).setProtectedHeader({alg:"HS256"}).setIssuer("https://auth.test.local").setExpirationTime("1h").sign(new TextEncoder().encode("netflow-test-secret"))
|
||||
for(const [method,url] of [["GET","/api/traffic/flow/settings"],["GET","/api/traffic/flow/host-files"],["POST","/api/traffic/flow/settings/generate-keys"],["PUT","/api/traffic/flow/settings"]] as const){
|
||||
for(const [method,url] of [["GET","/api/traffic/flow/settings"],["GET","/api/traffic/flow/host-files"],["POST","/api/traffic/flow/settings/generate-keys"],["PUT","/api/traffic/flow/settings"],["POST","/api/traffic/flow/purge"]] as const){
|
||||
const before=invoked;const response=await app.inject({method,url,headers:{authorization:"Bearer "+token}})
|
||||
const allowed=permission==="mm:traffic:write"||permission==="mm:traffic:admin"||(permission==="mm:traffic:read"&&url.endsWith("/settings")&&method==="GET")
|
||||
assert.equal(response.statusCode,allowed?200:403,permission+" "+method+" "+url);assert.equal(invoked,before+(allowed?1:0))
|
||||
|
||||
Reference in new issue
Block a user