working commit

This commit is contained in:
2026-02-21 12:31:39 +02:00
parent 3220e2d78f
commit cd37a4508c
37 changed files with 354 additions and 319 deletions
+5 -6
View File
@@ -18,7 +18,6 @@ import (
"mstore/pkg/auxhttp"
"mstore/pkg/auxpwd"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
const (
@@ -44,12 +43,12 @@ func (hand *Handler) AuthMiddleware(next router.Handler) router.Handler {
}
// Authentification
func (hand *Handler) CheckAccess(rctx *router.Context) (bool, uint64, error) {
func (hand *Handler) CheckAccess(rctx *router.Context) (bool, string, error) {
var err error
var success bool
var username string
var password string
var accountID uint64
var accountID string
accountID = term.AnonymousID
@@ -80,9 +79,9 @@ anonymous:
return success, accountID, err
}
func (hand *Handler) ValidatePassword(ctx context.Context, username, password string) (bool, uint64, error) {
func (hand *Handler) ValidatePassword(ctx context.Context, username, password string) (bool, string, error) {
var err error
var accountID uint64
var accountID string
valid := false
accountExists, accountDescr, err := hand.mdb.GetAccountByUsername(ctx, username)
@@ -102,7 +101,7 @@ func (hand *Handler) ValidatePassword(ctx context.Context, username, password st
// Authorization
func (hand *Handler) CheckRight(ctx context.Context, accountID uint64, reqRight term.Right, subject string) (bool, error) {
func (hand *Handler) CheckRight(ctx context.Context, accountID, reqRight, subject string) (bool, error) {
var err error
var res bool
//hand.logg.Debugf("Cop check your right %s: %s %s", accountID, reqRight, subject)
+9 -10
View File
@@ -15,7 +15,6 @@ import (
"mstore/app/operator"
"mstore/app/router"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
// POST /v3/account/create 200 200
@@ -30,7 +29,7 @@ func (hand *Handler) CreateAccount(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -42,7 +41,7 @@ func (hand *Handler) CreateAccount(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.CreateAccount(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.CreateAccount(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -63,7 +62,7 @@ func (hand *Handler) GetAccount(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -75,7 +74,7 @@ func (hand *Handler) GetAccount(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.GetAccount(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.GetAccount(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -96,7 +95,7 @@ func (hand *Handler) ListAccounts(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -129,7 +128,7 @@ func (hand *Handler) UpdateAccount(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -141,7 +140,7 @@ func (hand *Handler) UpdateAccount(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.UpdateAccount(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.UpdateAccount(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("UpdateAccount error: %v", err)
hand.SendError(rctx, err)
@@ -162,7 +161,7 @@ func (hand *Handler) DeleteAccount(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, params.Username)
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, params.Username)
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -174,7 +173,7 @@ func (hand *Handler) DeleteAccount(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.DeleteAccount(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.DeleteAccount(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("DeleteAccount error: %v", err)
hand.SendError(rctx, err)
+12 -13
View File
@@ -17,7 +17,6 @@ import (
"mstore/app/operator"
"mstore/app/router"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
// HEAD /v2/<name>/blobs/<digest> 200 404
@@ -33,7 +32,7 @@ func (hand *Handler) BlobExists(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -44,7 +43,7 @@ func (hand *Handler) BlobExists(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
res, code, err := hand.oper.BlobExists(ctx, params)
res, code, err := hand.oper.BlobExists(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("BlobExist error: %v", err)
}
@@ -73,7 +72,7 @@ func (hand *Handler) PostUpload(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -83,7 +82,7 @@ func (hand *Handler) PostUpload(rctx *router.Context) {
return
}
// Execution of the operation
res, code, err := hand.oper.PostUpload(rctx.Ctx, params)
res, code, err := hand.oper.PostUpload(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("PostUpload error: %v", err)
} else {
@@ -118,7 +117,7 @@ func (hand *Handler) PatchUpload(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -129,7 +128,7 @@ func (hand *Handler) PatchUpload(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
res, code, err := hand.oper.PatchUpload(ctx, params)
res, code, err := hand.oper.PatchUpload(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("PatchUpload error: %v", err)
}
@@ -162,7 +161,7 @@ func (hand *Handler) PutUpload(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -172,7 +171,7 @@ func (hand *Handler) PutUpload(rctx *router.Context) {
return
}
// Execution of the operation
res, code, err := hand.oper.PutUpload(rctx.Ctx, params)
res, code, err := hand.oper.PutUpload(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("PutUpload error: %v", err)
}
@@ -192,7 +191,7 @@ func (hand *Handler) GetBlob(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -203,7 +202,7 @@ func (hand *Handler) GetBlob(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
res, code, err := hand.oper.GetBlob(ctx, params)
res, code, err := hand.oper.GetBlob(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("GetBlob error: %v", err)
}
@@ -238,7 +237,7 @@ func (hand *Handler) DeleteBlob(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -249,7 +248,7 @@ func (hand *Handler) DeleteBlob(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
_, code, err := hand.oper.DeleteBlob(ctx, params)
_, code, err := hand.oper.DeleteBlob(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("DeleteBlob error: %v", err)
}
+14 -15
View File
@@ -16,7 +16,6 @@ import (
"mstore/app/operator"
"mstore/app/router"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
const zeroContentLength = "0"
@@ -29,7 +28,7 @@ func (hand *Handler) FileInfo(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -40,7 +39,7 @@ func (hand *Handler) FileInfo(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, res, err := hand.oper.FileInfo(ctx, uint64(operatorID), params)
code, res, err := hand.oper.FileInfo(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("FileInfo error: %v", err)
rctx.SetStatus(code)
@@ -74,7 +73,7 @@ func (hand *Handler) PutFile(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -85,7 +84,7 @@ func (hand *Handler) PutFile(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, _, err := hand.oper.PutFile(ctx, uint64(operatorID), params)
code, _, err := hand.oper.PutFile(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("PutFile error: %v", err)
rctx.SetStatus(code)
@@ -102,7 +101,7 @@ func (hand *Handler) GetFile(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -113,7 +112,7 @@ func (hand *Handler) GetFile(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, res, err := hand.oper.GetFile(ctx, uint64(operatorID), params)
code, res, err := hand.oper.GetFile(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("PutFile error: %v", err)
rctx.SetStatus(code)
@@ -150,7 +149,7 @@ func (hand *Handler) DeleteFile(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -161,7 +160,7 @@ func (hand *Handler) DeleteFile(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, _, err := hand.oper.DeleteFile(ctx, uint64(operatorID), params)
code, _, err := hand.oper.DeleteFile(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("DeleteFIle error: %v", err)
}
@@ -187,7 +186,7 @@ func (hand *Handler) ListFiles(rctx *router.Context) {
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -198,7 +197,7 @@ func (hand *Handler) ListFiles(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, res, err := hand.oper.ListFiles(ctx, uint64(operatorID), params)
code, res, err := hand.oper.ListFiles(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("ListFiles error: %v", err)
rctx.SetStatus(code)
@@ -224,7 +223,7 @@ func (hand *Handler) ListCollections(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -235,7 +234,7 @@ func (hand *Handler) ListCollections(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, res, err := hand.oper.ListCollections(ctx, uint64(operatorID), params)
code, res, err := hand.oper.ListCollections(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("ListCollections error: %v", err)
rctx.SetStatus(code)
@@ -262,7 +261,7 @@ func (hand *Handler) DeleteCollection(rctx *router.Context) {
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadFiles, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadFiles, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -273,7 +272,7 @@ func (hand *Handler) DeleteCollection(rctx *router.Context) {
}
// Execution of the operation
ctx := rctx.GetContext()
code, res, err := hand.oper.DeleteColletion(ctx, uint64(operatorID), params)
code, res, err := hand.oper.DeleteColletion(ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("DeleteColletion error: %v", err)
rctx.SetStatus(code)
+10 -11
View File
@@ -15,7 +15,6 @@ import (
"mstore/app/operator"
"mstore/app/router"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
// POST /v3/grant/create 200 200
@@ -30,7 +29,7 @@ func (hand *Handler) CreateGrant(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -42,7 +41,7 @@ func (hand *Handler) CreateGrant(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.CreateGrant(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.CreateGrant(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("CreateGrant error: %v", err)
hand.SendError(rctx, err)
@@ -63,7 +62,7 @@ func (hand *Handler) GetGrant(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -75,7 +74,7 @@ func (hand *Handler) GetGrant(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.GetGrant(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.GetGrant(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("CreateGrant error: %v", err)
hand.SendError(rctx, err)
@@ -96,7 +95,7 @@ func (hand *Handler) ListGrants(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -108,7 +107,7 @@ func (hand *Handler) ListGrants(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.ListGrants(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.ListGrants(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("ListGrants error: %v", err)
hand.SendError(rctx, err)
@@ -129,7 +128,7 @@ func (hand *Handler) UpdateGrant(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -141,7 +140,7 @@ func (hand *Handler) UpdateGrant(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.UpdateGrant(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.UpdateGrant(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("UpdateGrant error: %v", err)
hand.SendError(rctx, err)
@@ -162,7 +161,7 @@ func (hand *Handler) DeleteGrant(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteAccounts, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteAccounts, "")
if err != nil {
err := fmt.Errorf("Operation error: %v", err)
hand.SendError(rctx, err)
@@ -174,7 +173,7 @@ func (hand *Handler) DeleteGrant(rctx *router.Context) {
return
}
// Execution of the operation
res, err := hand.oper.DeleteGrant(rctx.Ctx, uint64(operatorID), params)
res, err := hand.oper.DeleteGrant(rctx.Ctx, operatorID, params)
if err != nil {
hand.logg.Errorf("DeleteGrant error: %v", err)
hand.SendError(rctx, err)
+6 -7
View File
@@ -15,7 +15,6 @@ import (
"mstore/app/operator"
"mstore/app/router"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
func (hand *Handler) ManifestExists(rctx *router.Context) {
@@ -30,7 +29,7 @@ func (hand *Handler) ManifestExists(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -72,7 +71,7 @@ func (hand *Handler) PutManifest(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -105,7 +104,7 @@ func (hand *Handler) GetManifest(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -145,7 +144,7 @@ func (hand *Handler) DeleteManifest(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightWriteImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightWriteImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -174,7 +173,7 @@ func (hand *Handler) GetReferer(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
@@ -200,7 +199,7 @@ func (hand *Handler) GetTags(rctx *router.Context) {
}
// Rigth checking
operatorID, _ := rctx.GetString(userTag)
opEnable, err := hand.CheckRight(rctx.Ctx, uint64(operatorID), term.RightReadImages, "")
opEnable, err := hand.CheckRight(rctx.Ctx, operatorID, term.RightReadImages, "")
if err != nil {
rctx.SetStatus(http.StatusInternalServerError)
return
+3 -3
View File
@@ -19,7 +19,7 @@ func (db *Database) InsertAccount(ctx context.Context, account *descr.Account) e
return err
}
func (db *Database) UpdateAccountByID(ctx context.Context, accountID uint64, account *descr.Account) error {
func (db *Database) UpdateAccountByID(ctx context.Context, accountID string, account *descr.Account) error {
var err error
request := `UPDATE accounts SET username = $1, passhash = $2, disabled = $3, updated_at = $4, updated_by = $5 WHERE id = $6`
_, err = db.db.Exec(request, account.Username, account.Passhash, account.Disabled, account.UpdatedAt, account.UpdatedBy, accountID)
@@ -51,7 +51,7 @@ func (db *Database) ListAccounts(ctx context.Context) ([]descr.Account, error) {
return res, err
}
func (db *Database) GetAccountByID(ctx context.Context, accountID uint64) (bool, *descr.Account, error) {
func (db *Database) GetAccountByID(ctx context.Context, accountID string) (bool, *descr.Account, error) {
var err error
var res *descr.Account
var exists bool = false
@@ -90,7 +90,7 @@ func (db *Database) GetAccountByUsername(ctx context.Context, username string) (
return exists, res, err
}
func (db *Database) DeleteAccountByID(ctx context.Context, accountID uint64) error {
func (db *Database) DeleteAccountByID(ctx context.Context, accountID string) error {
var err error
request := `DELETE FROM accounts WHERE id = $1`
+1 -1
View File
@@ -27,7 +27,7 @@ func (db *Database) InsertFile(ctx context.Context, file *descr.File) error {
return err
}
func (db *Database) UpdateFileByID(ctx context.Context, fileID uint64, file *descr.File) error {
func (db *Database) UpdateFileByID(ctx context.Context, fileID string, file *descr.File) error {
var err error
request := `UPDATE files SET id = $1, collection = $2, name = $3, type = $4, checksum = $5,
size = $6, updated_at = $7, created_by = $8, updated_by = $9
+1 -1
View File
@@ -15,8 +15,8 @@ import (
"time"
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/auxid"
"github.com/stretchr/testify/require"
)
+10 -11
View File
@@ -13,7 +13,6 @@ import (
"context"
"mstore/pkg/descr"
"mstore/pkg/term"
)
func (db *Database) InsertGrant(ctx context.Context, grant *descr.Grant) error {
@@ -28,7 +27,7 @@ func (db *Database) InsertGrant(ctx context.Context, grant *descr.Grant) error {
return err
}
func (db *Database) UpdateGrantByID(ctx context.Context, grantID uint64, grant *descr.Grant) error {
func (db *Database) UpdateGrantByID(ctx context.Context, grantID string, grant *descr.Grant) error {
var err error
request := `UPDATE grants SET pattern = $1, updated_at = $2, updated_by = $3 WHERE id = $4`
_, err = db.db.Exec(request, grant.Pattern, grant.UpdatedAt, grant.UpdatedBy, grantID)
@@ -38,7 +37,7 @@ func (db *Database) UpdateGrantByID(ctx context.Context, grantID uint64, grant *
return err
}
func (db *Database) ListGrantsByAccountID(ctx context.Context, accountID uint64) ([]descr.Grant, error) {
func (db *Database) ListGrantsByAccountID(ctx context.Context, accountID string) ([]descr.Grant, error) {
var err error
request := `SELECT * FROM grants WHERE account_id = $1`
res := make([]descr.Grant, 0)
@@ -60,12 +59,12 @@ func (db *Database) ListGrants(ctx context.Context) ([]descr.Grant, error) {
return res, err
}
func (db *Database) GetGrantByID(ctx context.Context, id uint64) (bool, *descr.Grant, error) {
func (db *Database) GetGrantByID(ctx context.Context, garntID string) (bool, *descr.Grant, error) {
var err error
res := &descr.Grant{}
request := `SELECT * FROM grants WHERE id = $1 LIMIT 1`
dbRes := make([]descr.Grant, 0)
err = db.db.Select(&dbRes, request, id)
err = db.db.Select(&dbRes, request, garntID)
if err != nil {
return false, res, err
}
@@ -77,7 +76,7 @@ func (db *Database) GetGrantByID(ctx context.Context, id uint64) (bool, *descr.G
return true, res, err
}
func (db *Database) GetGrantByAccoundIDRight(ctx context.Context, accountID uint64, right term.Right) (bool, *descr.Grant, error) {
func (db *Database) GetGrantByAccoundIDRight(ctx context.Context, accountID, right string) (bool, *descr.Grant, error) {
var err error
res := &descr.Grant{}
request := `SELECT * FROM grants WHERE account_id = $1 AND right = $2 LIMIT 1`
@@ -94,7 +93,7 @@ func (db *Database) GetGrantByAccoundIDRight(ctx context.Context, accountID uint
return true, res, err
}
func (db *Database) ListGrantsByAccoundIDRight(ctx context.Context, accountID uint64, right term.Right) (bool, []descr.Grant, error) {
func (db *Database) ListGrantsByAccoundIDRight(ctx context.Context, accountID, right string) (bool, []descr.Grant, error) {
var err error
request := `SELECT * FROM grants WHERE account_id = $1 AND right = $2`
res := make([]descr.Grant, 0)
@@ -108,7 +107,7 @@ func (db *Database) ListGrantsByAccoundIDRight(ctx context.Context, accountID ui
return true, res, err
}
func (db *Database) GetGrantByAccoundIDRightPattern(ctx context.Context, accountID uint64, right term.Right, pattern string) (bool, *descr.Grant, error) {
func (db *Database) GetGrantByAccoundIDRightPattern(ctx context.Context, accountID, right, pattern string) (bool, *descr.Grant, error) {
var err error
res := &descr.Grant{}
request := `SELECT * FROM grants WHERE account_id = $1 AND right = $2 AND pattern = $3 LIMIT 1`
@@ -125,7 +124,7 @@ func (db *Database) GetGrantByAccoundIDRightPattern(ctx context.Context, account
return true, res, err
}
func (db *Database) DeleteGrantByAccountIDRightPattern(ctx context.Context, accountID uint64, right, pattern string) error {
func (db *Database) DeleteGrantByAccountIDRightPattern(ctx context.Context, accountID, right, pattern string) error {
var err error
request := `DELETE FROM grants WHERE account_id = $1 AND right = $2 AND pattern = $3`
_, err = db.db.Exec(request, accountID, right, pattern)
@@ -135,7 +134,7 @@ func (db *Database) DeleteGrantByAccountIDRightPattern(ctx context.Context, acco
return err
}
func (db *Database) DeleteGrantByID(ctx context.Context, grantID uint64) error {
func (db *Database) DeleteGrantByID(ctx context.Context, grantID string) error {
var err error
request := `DELETE FROM grants WHERE id = $1`
_, err = db.db.Exec(request, grantID)
@@ -145,7 +144,7 @@ func (db *Database) DeleteGrantByID(ctx context.Context, grantID uint64) error {
return err
}
func (db *Database) DeleteAllGrantsForAccountID(ctx context.Context, grantID uint64) error {
func (db *Database) DeleteAllGrantsForAccountID(ctx context.Context, grantID string) error {
var err error
request := `DELETE FROM grants WHERE account_id = $1`
_, err = db.db.Exec(request, grantID)
+1 -1
View File
@@ -16,8 +16,8 @@ import (
"time"
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/auxid"
"github.com/stretchr/testify/require"
)
+9 -9
View File
@@ -15,9 +15,9 @@ import (
"mstore/pkg/auxpwd"
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
func (db *Database) WriteAnonymous(ctx context.Context) error {
@@ -41,7 +41,7 @@ func (db *Database) WriteAnonymous(ctx context.Context) error {
return err
}
grantDescr := &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightReadFiles,
Pattern: ".*",
@@ -55,7 +55,7 @@ func (db *Database) WriteAnonymous(ctx context.Context) error {
return err
}
grantDescr = &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightReadImages,
Pattern: ".*",
@@ -93,7 +93,7 @@ func (db *Database) WriteInituser(ctx context.Context) error {
}
// Files
grantDescr := &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightReadFiles,
Pattern: ".*",
@@ -107,7 +107,7 @@ func (db *Database) WriteInituser(ctx context.Context) error {
return err
}
grantDescr = &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightWriteFiles,
Pattern: ".*",
@@ -122,7 +122,7 @@ func (db *Database) WriteInituser(ctx context.Context) error {
}
// Accounts
grantDescr = &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightReadAccounts,
Pattern: ".*",
@@ -136,7 +136,7 @@ func (db *Database) WriteInituser(ctx context.Context) error {
return err
}
grantDescr = &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightWriteAccounts,
Pattern: ".*",
@@ -151,7 +151,7 @@ func (db *Database) WriteInituser(ctx context.Context) error {
}
// Images
grantDescr = &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightReadImages,
Pattern: ".*",
@@ -165,7 +165,7 @@ func (db *Database) WriteInituser(ctx context.Context) error {
return err
}
grantDescr = &descr.Grant{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: term.RightWriteImages,
Pattern: ".*",
+20 -20
View File
@@ -6,8 +6,8 @@ import (
"mstore/pkg/auxpwd"
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/auxid"
)
type CreateAccountParams struct {
@@ -15,10 +15,10 @@ type CreateAccountParams struct {
Password string `json:"password"`
}
type CreateAccountResult struct {
AccountID uint64 `json:"accountId"`
AccountID string `json:"accountId"`
}
func (oper *Operator) CreateAccount(ctx context.Context, operatorID uint64, params *CreateAccountParams) (*CreateAccountResult, error) {
func (oper *Operator) CreateAccount(ctx context.Context, operatorID string, params *CreateAccountParams) (*CreateAccountResult, error) {
var err error
res := &CreateAccountResult{}
@@ -43,7 +43,7 @@ func (oper *Operator) CreateAccount(ctx context.Context, operatorID uint64, para
now := auxtool.TimeNow()
passhash := auxpwd.MakeSHA256Hash([]byte(params.Password))
accountDescr := &descr.Account{
ID: auxid.NewID(),
ID: auxuuid.NewUUID(),
Username: params.Username,
Passhash: passhash,
Disabled: false,
@@ -62,18 +62,18 @@ func (oper *Operator) CreateAccount(ctx context.Context, operatorID uint64, para
// GetAccount
type GetAccountParams struct {
Username string `json:"username"`
AccountID uint64 `json:"accountId"`
Username string `json:"username"`
AccountID string `json:"accountId"`
}
type GetAccountResult struct {
Account *descr.AccountShort `json:"account"`
}
func (oper *Operator) GetAccount(ctx context.Context, operatorID uint64, params *GetAccountParams) (*GetAccountResult, error) {
func (oper *Operator) GetAccount(ctx context.Context, operatorID string, params *GetAccountParams) (*GetAccountResult, error) {
var err error
res := &GetAccountResult{}
if params.Username == "" && params.AccountID == 0 {
if params.Username == "" && params.AccountID == "" {
err := fmt.Errorf("Empty username and accountId parameter")
return res, err
}
@@ -81,7 +81,7 @@ func (oper *Operator) GetAccount(ctx context.Context, operatorID uint64, params
var accountDescr *descr.Account
var accountExists bool
switch {
case params.AccountID != 0:
case params.AccountID != "":
accountExists, accountDescr, err = oper.mdb.GetAccountByID(ctx, params.AccountID)
if err != nil {
return res, err
@@ -128,25 +128,25 @@ func (oper *Operator) GetAccount(ctx context.Context, operatorID uint64, params
}
type UpdateAccountParams struct {
Username string `json:"username"`
AccountID uint64 `json:"accountId"`
NewUsername string `json:"newUsername"`
NewPassword string `json:"newPassword"`
Disabled bool `json:"disabled"`
Username string `json:"username"`
AccountID string `json:"accountId"`
NewUsername string `json:"newUsername"`
NewPassword string `json:"newPassword"`
Disabled bool `json:"disabled"`
}
type UpdateAccountResult struct{}
func (oper *Operator) UpdateAccount(ctx context.Context, operatorID uint64, params *UpdateAccountParams) (*UpdateAccountResult, error) {
func (oper *Operator) UpdateAccount(ctx context.Context, operatorID string, params *UpdateAccountParams) (*UpdateAccountResult, error) {
var err error
res := &UpdateAccountResult{}
if params.Username == "" && params.AccountID == 0 {
if params.Username == "" && params.AccountID == "" {
err := fmt.Errorf("Empty username and accountId parameter")
return res, err
}
var accountDescr *descr.Account
var accountExists bool
switch {
case params.AccountID != 0:
case params.AccountID != "":
accountExists, accountDescr, err = oper.mdb.GetAccountByID(ctx, params.AccountID)
if err != nil {
return res, err
@@ -195,12 +195,12 @@ func (oper *Operator) UpdateAccount(ctx context.Context, operatorID uint64, para
}
type DeleteAccountParams struct {
Username string `json:"username"`
AccountID uint64 `json:"accountId"`
Username string `json:"username"`
AccountID string `json:"accountId"`
}
type DeleteAccountResult struct{}
func (oper *Operator) DeleteAccount(ctx context.Context, operatorID uint64, params *DeleteAccountParams) (*DeleteAccountResult, error) {
func (oper *Operator) DeleteAccount(ctx context.Context, operatorID string, params *DeleteAccountParams) (*DeleteAccountResult, error) {
var err error
res := &DeleteAccountResult{}
+9 -9
View File
@@ -16,7 +16,7 @@ import (
"net/http"
"strconv"
"mstore/pkg/auxid"
"mstore/pkg/auxuuid"
)
type BlobExistsParams struct {
@@ -30,7 +30,7 @@ type BlobExistsResult struct {
//Exists bool
}
func (oper *Operator) BlobExists(ctx context.Context, params *BlobExistsParams) (*BlobExistsResult, int, error) {
func (oper *Operator) BlobExists(ctx context.Context, operatorID string, params *BlobExistsParams) (*BlobExistsResult, int, error) {
var err error
res := &BlobExistsResult{}
@@ -73,17 +73,17 @@ type PostUploadParams struct {
From string
}
type PostUploadResult struct {
DockerUploadUUID uint64
DockerUploadUUID string
Location string
ContentLength string
}
func (oper *Operator) PostUpload(ctx context.Context, params *PostUploadParams) (*PostUploadResult, int, error) {
func (oper *Operator) PostUpload(ctx context.Context, operatorID string, params *PostUploadParams) (*PostUploadResult, int, error) {
var err error
res := &PostUploadResult{}
if params.Digest == "" {
uuid := uuid.NewUUID()
uuid := auxuuid.NewUUID()
location := fmt.Sprintf("/v2/%s/blobs/uploads/%s", params.Name, uuid)
res.DockerUploadUUID = uuid
res.Location = location
@@ -110,7 +110,7 @@ type PatchUploadResult struct {
}
// TODO: partial uploading by range?
func (oper *Operator) PatchUpload(ctx context.Context, params *PatchUploadParams) (*PatchUploadResult, int, error) {
func (oper *Operator) PatchUpload(ctx context.Context, operatorID string, params *PatchUploadParams) (*PatchUploadResult, int, error) {
var err error
res := &PatchUploadResult{}
@@ -177,7 +177,7 @@ type PutUploadResult struct {
Location string
}
func (oper *Operator) PutUpload(ctx context.Context, params *PutUploadParams) (*PutUploadResult, int, error) {
func (oper *Operator) PutUpload(ctx context.Context, operatorID string, params *PutUploadParams) (*PutUploadResult, int, error) {
var err error
res := &PutUploadResult{}
@@ -234,7 +234,7 @@ type GetBlobResult struct {
ReadCloser io.ReadCloser
}
func (oper *Operator) GetBlob(ctx context.Context, params *GetBlobParams) (*GetBlobResult, int, error) {
func (oper *Operator) GetBlob(ctx context.Context, operatorID string, params *GetBlobParams) (*GetBlobResult, int, error) {
var err error
res := &GetBlobResult{}
@@ -282,7 +282,7 @@ type DeleteBlobResult struct{}
// - It also prevents the manifest from being issued, as one
// of the layers is missing.
func (oper *Operator) DeleteBlob(ctx context.Context, params *DeleteBlobParams) (*DeleteBlobResult, int, error) {
func (oper *Operator) DeleteBlob(ctx context.Context, operatorID string, params *DeleteBlobParams) (*DeleteBlobResult, int, error) {
var err error
res := &DeleteBlobResult{}
+17 -17
View File
@@ -22,9 +22,9 @@ import (
"strings"
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
// FileInfo
@@ -41,9 +41,9 @@ type FileInfoResult struct {
ContentDigest string
ContentCreatedAt string
ContentCreatedBy uint64
ContentCreatedBy string
ContentUpdatedAt string
ContentUpdatedBy uint64
ContentUpdatedBy string
}
func cleanFilepath(filename string) (string, error) {
@@ -51,7 +51,7 @@ func cleanFilepath(filename string) (string, error) {
return filepath.Clean(filename), nil
}
func (oper *Operator) FileInfo(ctx context.Context, operatorID uint64, param *FileInfoParams) (int, *FileInfoResult, error) {
func (oper *Operator) FileInfo(ctx context.Context, operatorID string, param *FileInfoParams) (int, *FileInfoResult, error) {
var err error
code := http.StatusOK
res := &FileInfoResult{}
@@ -101,7 +101,7 @@ type PutFileResult struct{}
const defaultContentType = "application/octet-stream"
// TODO: checking catalog and file names conflict
func (oper *Operator) PutFile(ctx context.Context, operatorID uint64, param *PutFileParams) (int, *PutFileResult, error) {
func (oper *Operator) PutFile(ctx context.Context, operatorID string, param *PutFileParams) (int, *PutFileResult, error) {
var err error
res := &PutFileResult{}
@@ -155,7 +155,7 @@ func (oper *Operator) PutFile(ctx context.Context, operatorID uint64, param *Put
}
} else {
fileDescr = &descr.File{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
Name: filename,
Collection: collection,
Size: size,
@@ -193,12 +193,12 @@ type GetFileResult struct {
Source io.ReadCloser
ContentCreatedAt string
ContentCreatedBy uint64
ContentCreatedBy string
ContentUpdatedAt string
ContentUpdatedBy uint64
ContentUpdatedBy string
}
func (oper *Operator) GetFile(ctx context.Context, operatorID uint64, param *GetFileParams) (int, *GetFileResult, error) {
func (oper *Operator) GetFile(ctx context.Context, operatorID string, param *GetFileParams) (int, *GetFileResult, error) {
var err error
res := &GetFileResult{}
@@ -247,7 +247,7 @@ type DeleteFileParams struct {
}
type DeleteFileResult struct{}
func (oper *Operator) DeleteFile(ctx context.Context, operatorID uint64, param *DeleteFileParams) (int, *DeleteFileResult, error) {
func (oper *Operator) DeleteFile(ctx context.Context, operatorID string, param *DeleteFileParams) (int, *DeleteFileResult, error) {
var err error
res := &DeleteFileResult{}
code := http.StatusOK
@@ -288,13 +288,13 @@ func (oper *Operator) DeleteFile(ctx context.Context, operatorID uint64, param *
// ListFiles
type ListFilesParams struct {
Filepath string
PathAs term.PathUsage `param:"pathAs"`
PathAs string `param:"pathAs"`
}
type ListFilesResult struct {
Files []descr.File `json:"files,omitempty"`
}
func (oper *Operator) ListFiles(ctx context.Context, operatorID uint64, params *ListFilesParams) (int, *ListFilesResult, error) {
func (oper *Operator) ListFiles(ctx context.Context, operatorID string, params *ListFilesParams) (int, *ListFilesResult, error) {
var err error
res := &ListFilesResult{
Files: make([]descr.File, 0),
@@ -400,13 +400,13 @@ func (oper *Operator) listFilesWithRegex(ctx context.Context, regex string) ([]d
// ListCollections
type ListCollectionsParams struct {
Path string
PathAS term.PathUsage `param:"pathAs"`
PathAS string `param:"pathAs"`
}
type ListCollectionsResult struct {
Collections []string `json:"collection,omitempty"`
}
func (oper *Operator) ListCollections(ctx context.Context, operatorID uint64, param *ListCollectionsParams) (int, *ListCollectionsResult, error) {
func (oper *Operator) ListCollections(ctx context.Context, operatorID string, param *ListCollectionsParams) (int, *ListCollectionsResult, error) {
var err error
res := &ListCollectionsResult{
Collections: make([]string, 0),
@@ -532,14 +532,14 @@ func (oper *Operator) listAllCollections(ctx context.Context) ([]string, error)
// DeleteColletion
type DeleteColletionParams struct {
Path string
PathAs term.PathUsage `param:"pathAs"`
DryRun bool `param:"dryRun"`
PathAs string `param:"pathAs"`
DryRun bool `param:"dryRun"`
}
type DeleteColletionResult struct {
Files []descr.File `json:"files,omitempty"`
}
func (oper *Operator) DeleteColletion(ctx context.Context, operatorID uint64, param *DeleteColletionParams) (int, *DeleteColletionResult, error) {
func (oper *Operator) DeleteColletion(ctx context.Context, operatorID string, param *DeleteColletionParams) (int, *DeleteColletionResult, error) {
var err error
res := &DeleteColletionResult{
Files: make([]descr.File, 0),
+16 -17
View File
@@ -6,23 +6,22 @@ import (
"regexp"
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/term"
"mstore/pkg/auxid"
)
// CreateGrant
type CreateGrantParams struct {
AccountID uint64 `json:"accountID"`
Username string `json:"username"`
Right term.Right `json:"operation"`
Pattern string `json:"pattern"`
AccountID string `json:"accountID"`
Username string `json:"username"`
Right string `json:"operation"`
Pattern string `json:"pattern"`
}
type CreateGrantResult struct {
GrantID uint64 `json:"grantId"`
GrantID string `json:"grantId"`
}
func (oper *Operator) CreateGrant(ctx context.Context, operatorID uint64, params *CreateGrantParams) (*CreateGrantResult, error) {
func (oper *Operator) CreateGrant(ctx context.Context, operatorID string, params *CreateGrantParams) (*CreateGrantResult, error) {
var err error
res := &CreateGrantResult{}
@@ -81,7 +80,7 @@ func (oper *Operator) CreateGrant(ctx context.Context, operatorID uint64, params
oper.logg.Debugf("Call CreateGrant")
now := auxtool.TimeNow()
grantDescr := &descr.Grant{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
AccountID: accountDescr.ID,
Right: params.Right,
Pattern: params.Pattern,
@@ -100,12 +99,12 @@ func (oper *Operator) CreateGrant(ctx context.Context, operatorID uint64, params
// UpdateGrant
type UpdateGrantParams struct {
GrantID uint64
GrantID string
NewPattern string
}
type UpdateGrantResult struct{}
func (oper *Operator) UpdateGrant(ctx context.Context, operatorID uint64, params *UpdateGrantParams) (*UpdateGrantResult, error) {
func (oper *Operator) UpdateGrant(ctx context.Context, operatorID string, params *UpdateGrantParams) (*UpdateGrantResult, error) {
var err error
res := &UpdateGrantResult{}
@@ -143,11 +142,11 @@ func (oper *Operator) UpdateGrant(ctx context.Context, operatorID uint64, params
// DeleteGrant
type DeleteGrantParams struct {
GrantID uint64 `json:"grantId"`
GrantID string `json:"grantId"`
}
type DeleteGrantResult struct{}
func (oper *Operator) DeleteGrant(ctx context.Context, operatorID uint64, params *DeleteGrantParams) (*DeleteGrantResult, error) {
func (oper *Operator) DeleteGrant(ctx context.Context, operatorID string, params *DeleteGrantParams) (*DeleteGrantResult, error) {
var err error
res := &DeleteGrantResult{}
@@ -177,13 +176,13 @@ func (oper *Operator) DeleteGrant(ctx context.Context, operatorID uint64, params
// ListGrants
type ListGrantsParams struct {
Username string
AccountID uint64
AccountID string
}
type ListGrantsResult struct {
Grants []descr.Grant `json:"grants"`
}
func (oper *Operator) ListGrants(ctx context.Context, operatorID uint64, params *ListGrantsParams) (*ListGrantsResult, error) {
func (oper *Operator) ListGrants(ctx context.Context, operatorID string, params *ListGrantsParams) (*ListGrantsResult, error) {
var err error
res := &ListGrantsResult{
Grants: make([]descr.Grant, 0),
@@ -224,13 +223,13 @@ func (oper *Operator) ListGrants(ctx context.Context, operatorID uint64, params
// Get Grants
type GetGrantParams struct {
GrantID uint64 `json:"grantId"`
GrantID string `json:"grantId"`
}
type GetGrantResult struct {
Grant *descr.Grant `json:"grant"`
}
func (oper *Operator) GetGrant(ctx context.Context, operatorID uint64, params *GetGrantParams) (*GetGrantResult, error) {
func (oper *Operator) GetGrant(ctx context.Context, operatorID string, params *GetGrantParams) (*GetGrantResult, error) {
var err error
res := &GetGrantResult{}
+6 -6
View File
@@ -11,8 +11,8 @@ package operator
import (
"mstore/pkg/auxtool"
"mstore/pkg/auxuuid"
"mstore/pkg/descr"
"mstore/pkg/auxid"
ocidigest "github.com/opencontainers/go-digest"
ocispec "github.com/opencontainers/image-spec/specs-go/v1"
@@ -29,7 +29,7 @@ func descrsFromManifest(name, reference string, manifest *ocispec.Manifest, rawM
// Make manifest descriptor
manifestDigest := ocidigest.SHA256.FromBytes(rawManifest).String()
manifestDescr = descr.Manifest{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
Name: name,
Reference: reference,
Digest: manifestDigest,
@@ -41,7 +41,7 @@ func descrsFromManifest(name, reference string, manifest *ocispec.Manifest, rawM
// Make config descriptor
ociConfig := manifest.Config
configDescr := descr.Blob{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
Name: name,
Reference: reference,
MediaType: ociConfig.MediaType,
@@ -55,7 +55,7 @@ func descrsFromManifest(name, reference string, manifest *ocispec.Manifest, rawM
layerMap := make(map[string]bool)
for _, layer := range manifest.Layers {
blobDescr := descr.Blob{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
Name: name,
Reference: reference,
MediaType: layer.MediaType,
@@ -112,7 +112,7 @@ func layersDiff(name, reference string, existingManifest, incomingManifest *ocis
timestamp := auxtool.TimeNow()
for _, layer := range newLayers {
blobDescr := descr.Blob{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
Name: name,
Reference: reference,
MediaType: layer.MediaType,
@@ -126,7 +126,7 @@ func layersDiff(name, reference string, existingManifest, incomingManifest *ocis
// Converting to old blobs
for _, layer := range delLayers {
blobDescr := descr.Blob{
ID: uuid.NewUUID(),
ID: auxuuid.NewUUID(),
Name: name,
Reference: reference,
MediaType: layer.MediaType,
+2 -4
View File
@@ -20,8 +20,7 @@ import (
"path/filepath"
"mstore/app/logger"
"mstore/pkg/auxid"
"mstore/pkg/auxuuid"
)
const (
@@ -81,8 +80,7 @@ func (store *Storage) WriteTempFile(source io.Reader) (string, int64, string, er
var size int64
var csum string
tmpname := fmt.Sprintf("file-%d-%d.tmp", auxid.NewID(), auxid.NewID())
tmpname := fmt.Sprintf("file-%d-%d.tmp", auxuuid.NewUUID(), auxuuid.NewUUID())
tmppath := store.makeTmppath(tmpname)
tmpdirpath := store.makeTmpsubdir()