Change DELETE action from "*" to "delete"
With token authentication, requiring the "*" action for DELETE requests makes it impossible to administratively lock a repository against pushes and pulls but still allow deletion. This change adds a new "delete" action for DELETE requests to make that possible. Signed-off-by: Noah Treuhaft <noah.treuhaft@docker.com>
This commit is contained in:
parent
8e065ad239
commit
ccb839e0e3
@ -901,12 +901,10 @@ func appendAccessRecords(records []auth.Access, method string, repo string) []au
|
|||||||
Action: "push",
|
Action: "push",
|
||||||
})
|
})
|
||||||
case "DELETE":
|
case "DELETE":
|
||||||
// DELETE access requires full admin rights, which is represented
|
|
||||||
// as "*". This may not be ideal.
|
|
||||||
records = append(records,
|
records = append(records,
|
||||||
auth.Access{
|
auth.Access{
|
||||||
Resource: resource,
|
Resource: resource,
|
||||||
Action: "*",
|
Action: "delete",
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
return records
|
return records
|
||||||
|
@ -229,9 +229,9 @@ func TestAppendAccessRecords(t *testing.T) {
|
|||||||
Resource: expectedResource,
|
Resource: expectedResource,
|
||||||
Action: "push",
|
Action: "push",
|
||||||
}
|
}
|
||||||
expectedAllRecord := auth.Access{
|
expectedDeleteRecord := auth.Access{
|
||||||
Resource: expectedResource,
|
Resource: expectedResource,
|
||||||
Action: "*",
|
Action: "delete",
|
||||||
}
|
}
|
||||||
|
|
||||||
records := []auth.Access{}
|
records := []auth.Access{}
|
||||||
@ -271,7 +271,7 @@ func TestAppendAccessRecords(t *testing.T) {
|
|||||||
|
|
||||||
records = []auth.Access{}
|
records = []auth.Access{}
|
||||||
result = appendAccessRecords(records, "DELETE", repo)
|
result = appendAccessRecords(records, "DELETE", repo)
|
||||||
expectedResult = []auth.Access{expectedAllRecord}
|
expectedResult = []auth.Access{expectedDeleteRecord}
|
||||||
if ok := reflect.DeepEqual(result, expectedResult); !ok {
|
if ok := reflect.DeepEqual(result, expectedResult); !ok {
|
||||||
t.Fatalf("Actual access record differs from expected")
|
t.Fatalf("Actual access record differs from expected")
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user