Skip to content

feat: improve RBAC preconditions for Insights endpoint #8794

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 8 commits into from
Jul 31, 2023
Merged

Conversation

mtojek
Copy link
Member

@mtojek mtojek commented Jul 28, 2023

Fixes: #8763

This PR modifies RBAC rules for Insights API, so that regular users with appropriate template ACL rights and template admins can see insights for templates they own. Current permission is too narrow, it is limited only to owners, and it prevents UI from loading properly.

Note:
This PR seems to be relatively large, but the vast majority of it are RBAC unit tests.

@mtojek mtojek self-assigned this Jul 28, 2023
@mtojek mtojek changed the title feat: Improve RBAC preconditions for Insights endpoint feat: improve RBAC preconditions for Insights endpoint Jul 28, 2023
@mtojek mtojek requested a review from johnstcn July 31, 2023 11:58
@mtojek mtojek marked this pull request as ready for review July 31, 2023 11:58
Comment on lines +1208 to 1212
if len(arg.TemplateIDs) == 0 {
if err := q.authorizeContext(ctx, rbac.ActionUpdate, rbac.ResourceTemplate.All()); err != nil {
return nil, err
}
}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This doesn't align with our documented permissions here.

Is the reason for making the required permission "update" to ensure that only template owners can view template insights? If so, we should make a separate TemplateInsights resource and make appropriate modifications to our built-in roles.

Otherwise, why not just allow anyone with read permissions to view this data?

Copy link
Member Author

@mtojek mtojek Jul 31, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Is the reason for making the required permission "update" to ensure that only template owners can view template insights?

Otherwise, why not just allow anyone with read permissions to view this data?

I suppose that we don't want to share user details for template usage and latency with regular users.

This doesn't align with our documented permissions here.

The Roles table does not describe the use case when a regular user can be granted admin access for a single template using Template ACLs (enterprise feature). This is why I picked the for-loop with "update template" check to see if the user can modify a template, ergo can access insights.

Please let me know what is your recommendation in this case.

Copy link
Member

@johnstcn johnstcn Jul 31, 2023

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For the moment, this is OK as a bandage to stop the FE spinner issue. However, the current situation with regard to ACLs is not ideal in terms of integration with the rest of the RBAC package.

@mtojek mtojek enabled auto-merge (squash) July 31, 2023 13:34
@mtojek mtojek merged commit ddabe9c into main Jul 31, 2023
@mtojek mtojek deleted the 8763-insights-rbac branch July 31, 2023 13:44
@github-actions github-actions bot locked and limited conversation to collaborators Jul 31, 2023
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Template insights: Insights page keeps loading forever
2 participants