Gate cookie banner policy regeneration on its own action
RegenerateCookieBannerTrackerPolicy authorized against the generic cookie-banner update action, conflating policy regeneration with banner edits. Add a dedicated regenerate-policy action and authorize both the console and MCP resolvers against it so the capability can be granted independently. Signed-off-by: Émile Ré <emile@probo.com>
This commit is contained in:
@@ -391,6 +391,8 @@ const (
|
|||||||
ActionCookieBannerActivate = "core:cookie-banner:activate"
|
ActionCookieBannerActivate = "core:cookie-banner:activate"
|
||||||
ActionCookieBannerDeactivate = "core:cookie-banner:deactivate"
|
ActionCookieBannerDeactivate = "core:cookie-banner:deactivate"
|
||||||
|
|
||||||
|
ActionCookieBannerRegeneratePolicy = "core:cookie-banner:regenerate-policy"
|
||||||
|
|
||||||
// CookieBannerVersion actions
|
// CookieBannerVersion actions
|
||||||
ActionCookieBannerVersionGet = "core:cookie-banner-version:get"
|
ActionCookieBannerVersionGet = "core:cookie-banner-version:get"
|
||||||
ActionCookieBannerVersionList = "core:cookie-banner-version:list"
|
ActionCookieBannerVersionList = "core:cookie-banner-version:list"
|
||||||
|
|||||||
@@ -779,7 +779,7 @@ func (r *mutationResolver) PublishCookieBannerVersion(ctx context.Context, input
|
|||||||
|
|
||||||
// RegenerateCookieBannerTrackerPolicy is the resolver for the regenerateCookieBannerTrackerPolicy field.
|
// RegenerateCookieBannerTrackerPolicy is the resolver for the regenerateCookieBannerTrackerPolicy field.
|
||||||
func (r *mutationResolver) RegenerateCookieBannerTrackerPolicy(ctx context.Context, input types.RegenerateCookieBannerTrackerPolicyInput) (*types.RegenerateCookieBannerTrackerPolicyPayload, error) {
|
func (r *mutationResolver) RegenerateCookieBannerTrackerPolicy(ctx context.Context, input types.RegenerateCookieBannerTrackerPolicyInput) (*types.RegenerateCookieBannerTrackerPolicyPayload, error) {
|
||||||
scope, err := r.authorize(ctx, input.CookieBannerID, probo.ActionCookieBannerUpdate)
|
scope, err := r.authorize(ctx, input.CookieBannerID, probo.ActionCookieBannerRegeneratePolicy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5826,7 +5826,7 @@ func (r *Resolver) PublishCookieBannerVersionTool(ctx context.Context, req *mcp.
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *Resolver) RegenerateCookieBannerTrackerPolicyTool(ctx context.Context, req *mcp.CallToolRequest, input *types.RegenerateCookieBannerTrackerPolicyInput) (*mcp.CallToolResult, types.RegenerateCookieBannerTrackerPolicyOutput, error) {
|
func (r *Resolver) RegenerateCookieBannerTrackerPolicyTool(ctx context.Context, req *mcp.CallToolRequest, input *types.RegenerateCookieBannerTrackerPolicyInput) (*mcp.CallToolResult, types.RegenerateCookieBannerTrackerPolicyOutput, error) {
|
||||||
scope, err := r.Authorize(ctx, input.CookieBannerID, probo.ActionCookieBannerUpdate)
|
scope, err := r.Authorize(ctx, input.CookieBannerID, probo.ActionCookieBannerRegeneratePolicy)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, types.RegenerateCookieBannerTrackerPolicyOutput{}, err
|
return nil, types.RegenerateCookieBannerTrackerPolicyOutput{}, err
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user