3
0

Add 'canGrant' flag on chart, module, namespace, page & trigger

Currently, all these flags point to service-level operation 'grant' on 'compose' resource.
This commit is contained in:
Denis Arh 2019-05-20 18:24:11 +02:00
parent 3b81f88957
commit 4a629c0ea9
5 changed files with 30 additions and 4 deletions

View File

@ -18,6 +18,7 @@ type (
chartPayload struct {
*types.Chart
CanGrant bool `json:"canGrant"`
CanUpdateChart bool `json:"canUpdateChart"`
CanDeleteChart bool `json:"canDeleteChart"`
}
@ -33,6 +34,8 @@ type (
}
chartAccessController interface {
CanGrant(context.Context) bool
CanUpdateChart(context.Context, *types.Chart) bool
CanDeleteChart(context.Context, *types.Chart) bool
}
@ -109,6 +112,8 @@ func (ctrl Chart) makePayload(ctx context.Context, c *types.Chart, err error) (*
return &chartPayload{
Chart: c,
CanGrant: ctrl.ac.CanGrant(ctx),
CanUpdateChart: ctrl.ac.CanUpdateChart(ctx, c),
CanDeleteChart: ctrl.ac.CanDeleteChart(ctx, c),
}, nil

View File

@ -16,6 +16,7 @@ type (
Fields []*moduleFieldPayload `json:"fields"`
CanGrant bool `json:"canGrant"`
CanUpdateModule bool `json:"canUpdateModule"`
CanDeleteModule bool `json:"canDeleteModule"`
CanCreateRecord bool `json:"canCreateRecord"`
@ -43,6 +44,8 @@ type (
}
moduleAccessController interface {
CanGrant(context.Context) bool
CanUpdateModule(context.Context, *types.Module) bool
CanDeleteModule(context.Context, *types.Module) bool
CanCreateRecord(context.Context, *types.Module) bool
@ -136,6 +139,8 @@ func (ctrl Module) makePayload(ctx context.Context, m *types.Module, err error)
Fields: mfp,
CanGrant: ctrl.ac.CanGrant(ctx),
CanUpdateModule: ctrl.ac.CanUpdateModule(ctx, m),
CanDeleteModule: ctrl.ac.CanDeleteModule(ctx, m),
CanCreateRecord: ctrl.ac.CanCreateRecord(ctx, m),

View File

@ -14,6 +14,7 @@ type (
namespacePayload struct {
*types.Namespace
CanGrant bool `json:"canGrant"`
CanUpdateNamespace bool `json:"canUpdateNamespace"`
CanDeleteNamespace bool `json:"canDeleteNamespace"`
CanCreateModule bool `json:"canCreateModule"`
@ -33,8 +34,11 @@ type (
}
namespaceAccessController interface {
CanGrant(context.Context) bool
CanUpdateNamespace(context.Context, *types.Namespace) bool
CanDeleteNamespace(context.Context, *types.Namespace) bool
CanCreateModule(context.Context, *types.Namespace) bool
CanCreateChart(context.Context, *types.Namespace) bool
CanCreateTrigger(context.Context, *types.Namespace) bool
@ -112,12 +116,14 @@ func (ctrl Namespace) makePayload(ctx context.Context, ns *types.Namespace, err
return &namespacePayload{
Namespace: ns,
CanGrant: ctrl.ac.CanGrant(ctx),
CanUpdateNamespace: ctrl.ac.CanUpdateNamespace(ctx, ns),
CanDeleteNamespace: ctrl.ac.CanDeleteNamespace(ctx, ns),
CanCreateModule: ctrl.ac.CanCreateModule(ctx, ns),
CanCreateChart: ctrl.ac.CanCreateChart(ctx, ns),
CanCreateTrigger: ctrl.ac.CanCreateTrigger(ctx, ns),
CanCreatePage: ctrl.ac.CanCreatePage(ctx, ns),
CanCreateModule: ctrl.ac.CanCreateModule(ctx, ns),
CanCreateChart: ctrl.ac.CanCreateChart(ctx, ns),
CanCreateTrigger: ctrl.ac.CanCreateTrigger(ctx, ns),
CanCreatePage: ctrl.ac.CanCreatePage(ctx, ns),
}, nil
}

View File

@ -15,6 +15,7 @@ type (
pagePayload struct {
*types.Page
CanGrant bool `json:"canGrant"`
CanUpdatePage bool `json:"canUpdatePage"`
CanDeletePage bool `json:"canDeletePage"`
}
@ -31,6 +32,8 @@ type (
}
pageAccessController interface {
CanGrant(context.Context) bool
CanUpdatePage(context.Context, *types.Page) bool
CanDeletePage(context.Context, *types.Page) bool
}
@ -139,6 +142,8 @@ func (ctrl Page) makePayload(ctx context.Context, c *types.Page, err error) (*pa
return &pagePayload{
Page: c,
CanGrant: ctrl.ac.CanGrant(ctx),
CanUpdatePage: ctrl.ac.CanUpdatePage(ctx, c),
CanDeletePage: ctrl.ac.CanDeletePage(ctx, c),
}, nil

View File

@ -14,6 +14,7 @@ type (
triggerPayload struct {
*types.Trigger
CanGrant bool `json:"canGrant"`
CanUpdateTrigger bool `json:"canUpdateTrigger"`
CanDeleteTrigger bool `json:"canDeleteTrigger"`
}
@ -29,6 +30,8 @@ type (
}
triggerAccessController interface {
CanGrant(context.Context) bool
CanUpdateTrigger(context.Context, *types.Trigger) bool
CanDeleteTrigger(context.Context, *types.Trigger) bool
}
@ -110,6 +113,8 @@ func (ctrl Trigger) makePayload(ctx context.Context, t *types.Trigger, err error
return &triggerPayload{
Trigger: t,
CanGrant: ctrl.ac.CanGrant(ctx),
CanUpdateTrigger: ctrl.ac.CanUpdateTrigger(ctx, t),
CanDeleteTrigger: ctrl.ac.CanDeleteTrigger(ctx, t),
}, nil