mirror of
https://github.com/zitadel/zitadel.git
synced 2025-08-11 21:37:32 +00:00
fix: label policy (#1828)
* fix: font color * fix: assets from iam when policy is default * fix: remove multiple files * fix mock storage * doc: add asset api * build assets docs * fix operator test * docs * fix remove assets from org label policy and not default * fix remove label policy assets and feature downgrade correctly * fix storage mock * Update docs/docs/apis/apis.md Co-authored-by: fabi <fabienne.gerschwiler@gmail.com> Co-authored-by: Fabi <38692350+fgerschwiler@users.noreply.github.com>
This commit is contained in:
@@ -123,7 +123,7 @@ func UploadHandleFunc(s AssetsService, uploader Uploader) func(http.ResponseWrit
|
||||
contentType := handler.Header.Get("content-type")
|
||||
size := handler.Size
|
||||
if !uploader.ContentTypeAllowed(contentType) {
|
||||
s.ErrorHandler()(w, r, caos_errs.ThrowInvalidArgument(nil, "UPLOAD-Dbvfs", "invalid content-type"))
|
||||
s.ErrorHandler()(w, r, caos_errs.ThrowInvalidArgumentf(nil, "UPLOAD-Dbvfs", "invalid content-type: %s", contentType))
|
||||
return
|
||||
}
|
||||
if size > uploader.MaxFileSize() {
|
||||
|
@@ -13,6 +13,7 @@ import (
|
||||
|
||||
var (
|
||||
directory = flag.String("directory", "./", "working directory: asset.yaml must be in this directory, files will be generated into parent directory")
|
||||
assets = flag.String("assets", "../../../../docs/docs/apis/assets/assets.md", "path where the assets.md will be generated")
|
||||
)
|
||||
|
||||
func main() {
|
||||
@@ -22,7 +23,9 @@ func main() {
|
||||
logging.Log("ASSETS-Gn31f").OnError(err).Fatal("cannot open authz file")
|
||||
router, err := os.OpenFile(*directory+"../router.go", os.O_TRUNC|os.O_WRONLY|os.O_CREATE, 0755)
|
||||
logging.Log("ASSETS-ABen3").OnError(err).Fatal("cannot open router file")
|
||||
GenerateAssetHandler(configFile, authz, router)
|
||||
docs, err := os.OpenFile(*assets, os.O_TRUNC|os.O_WRONLY|os.O_CREATE, 0755)
|
||||
logging.Log("ASSETS-Dfvsd").OnError(err).Fatal("cannot open docs file")
|
||||
GenerateAssetHandler(configFile, authz, router, docs)
|
||||
}
|
||||
|
||||
type Method struct {
|
||||
@@ -94,7 +97,7 @@ type Service struct {
|
||||
Methods map[string]Method
|
||||
}
|
||||
|
||||
func GenerateAssetHandler(configFilePath string, output io.Writer, output2 io.Writer) {
|
||||
func GenerateAssetHandler(configFilePath string, authz, router, docs io.Writer) {
|
||||
conf := new(struct {
|
||||
Services Services
|
||||
})
|
||||
@@ -104,6 +107,8 @@ func GenerateAssetHandler(configFilePath string, output io.Writer, output2 io.Wr
|
||||
logging.Log("ASSETS-BGbbg").OnError(err).Fatal("cannot parse authz template")
|
||||
tmplRouter, err := template.New("").Parse(routerTmpl)
|
||||
logging.Log("ASSETS-gh4rq").OnError(err).Fatal("cannot parse router template")
|
||||
tmplDocs, err := template.New("").Parse(docsTmpl)
|
||||
logging.Log("ASSETS-FGdgs").OnError(err).Fatal("cannot parse docs template")
|
||||
data := &struct {
|
||||
GoPkgName string
|
||||
Name string
|
||||
@@ -115,10 +120,12 @@ func GenerateAssetHandler(configFilePath string, output io.Writer, output2 io.Wr
|
||||
Prefix: "/assets/v1",
|
||||
Services: conf.Services,
|
||||
}
|
||||
err = tmplAuthz.Execute(output, data)
|
||||
err = tmplAuthz.Execute(authz, data)
|
||||
logging.Log("ASSETS-BHngj").OnError(err).Fatal("cannot generate authz")
|
||||
err = tmplRouter.Execute(output2, data)
|
||||
err = tmplRouter.Execute(router, data)
|
||||
logging.Log("ASSETS-Bfd41").OnError(err).Fatal("cannot generate router")
|
||||
err = tmplDocs.Execute(docs, data)
|
||||
logging.Log("ASSETS-Bfd41").OnError(err).Fatal("cannot generate docs")
|
||||
}
|
||||
|
||||
const authzTmpl = `package {{.GoPkgName}}
|
||||
@@ -198,3 +205,30 @@ func RegisterRoutes(router *mux.Router, s {{.Name}}) {
|
||||
{{ end }}
|
||||
}
|
||||
`
|
||||
|
||||
const docsTmpl = `---
|
||||
title: zitadel/admin.proto
|
||||
---
|
||||
|
||||
## {{.Name}}
|
||||
|
||||
{{ range $service := .Services}}
|
||||
{{ range $methodName, $method := .Methods}}
|
||||
{{ range $handler := .Handlers}}
|
||||
|
||||
### {{$handler.Name}}{{$methodName}}()
|
||||
|
||||
> {{$handler.Name}}{{$methodName}}()
|
||||
|
||||
{{$handler.Method}}: {{$service.Prefix}}{{$method.Path}}{{$handler.PathSuffix}}
|
||||
{{ if $method.HasDarkMode }}
|
||||
### {{$handler.Name}}{{$methodName}}()
|
||||
|
||||
> {{$handler.Name}}{{$methodName}}Dark()
|
||||
|
||||
{{$handler.Method}}: {{$service.Prefix}}{{$method.Path}}/dark{{$handler.PathSuffix}}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
`
|
||||
|
@@ -136,10 +136,7 @@ func (l *labelPolicyLogoDownloader) ObjectName(ctx context.Context, path string)
|
||||
}
|
||||
|
||||
func (l *labelPolicyLogoDownloader) BucketName(ctx context.Context, id string) string {
|
||||
if l.defaultPolicy {
|
||||
return domain.IAMID
|
||||
}
|
||||
return authz.GetCtxData(ctx).OrgID
|
||||
return getLabelPolicyBucketName(ctx, l.defaultPolicy, l.preview, l.org)
|
||||
}
|
||||
|
||||
func (h *Handler) UploadDefaultLabelPolicyIcon() Uploader {
|
||||
@@ -267,10 +264,7 @@ func (l *labelPolicyIconDownloader) ObjectName(ctx context.Context, path string)
|
||||
}
|
||||
|
||||
func (l *labelPolicyIconDownloader) BucketName(ctx context.Context, id string) string {
|
||||
if l.defaultPolicy {
|
||||
return domain.IAMID
|
||||
}
|
||||
return authz.GetCtxData(ctx).OrgID
|
||||
return getLabelPolicyBucketName(ctx, l.defaultPolicy, l.preview, l.org)
|
||||
}
|
||||
|
||||
func (h *Handler) UploadDefaultLabelPolicyFont() Uploader {
|
||||
@@ -357,10 +351,7 @@ func (l *labelPolicyFontDownloader) ObjectName(ctx context.Context, path string)
|
||||
}
|
||||
|
||||
func (l *labelPolicyFontDownloader) BucketName(ctx context.Context, id string) string {
|
||||
if l.defaultPolicy {
|
||||
return domain.IAMID
|
||||
}
|
||||
return authz.GetCtxData(ctx).OrgID
|
||||
return getLabelPolicyBucketName(ctx, l.defaultPolicy, l.preview, l.org)
|
||||
}
|
||||
|
||||
func getLabelPolicy(ctx context.Context, defaultPolicy, preview bool, orgRepo repository.OrgRepository) (*model.LabelPolicyView, error) {
|
||||
@@ -375,3 +366,17 @@ func getLabelPolicy(ctx context.Context, defaultPolicy, preview bool, orgRepo re
|
||||
}
|
||||
return orgRepo.GetLabelPolicy(ctx)
|
||||
}
|
||||
|
||||
func getLabelPolicyBucketName(ctx context.Context, defaultPolicy, preview bool, org repository.OrgRepository) string {
|
||||
if defaultPolicy {
|
||||
return domain.IAMID
|
||||
}
|
||||
policy, err := getLabelPolicy(ctx, defaultPolicy, preview, org)
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
if policy.Default {
|
||||
return domain.IAMID
|
||||
}
|
||||
return authz.GetCtxData(ctx).OrgID
|
||||
}
|
||||
|
Reference in New Issue
Block a user