pulp / pulpcore

Pulp 3 pulpcore package https://pypi.org/project/pulpcore/
GNU General Public License v2.0
302 stars 116 forks source link

Add `build_context` parameter to `has_repo_or_repo_ver_param_model_or_obj_perms` #5786

Open git-hyagi opened 1 month ago

git-hyagi commented 1 month ago

Is your feature request related to a problem? Please describe. The has_repo_or_repo_ver_param_model_or_obj_perms function verifies only repository or repository_version as parameters. In pulp-container image build machinery, instead of repository_version, we are planning to add a field called build_context (where users would be passing a file repository_version href to be used as the build context of the image build process).

Describe the solution you'd like Add support in has_repo_or_repo_ver_param_model_or_obj_perms to also validate the permissions based on build_context.

Describe alternatives you've considered We thought about creating a new access condition function in pulp-container, but, to avoid the code repetition, maybe it would be better to keep using the pulpcore has_repo_or_repo_ver_param_model_or_obj_perms. To workaround this "limitation" we are having to do something like:

data["repository_version"] = data["build_context"]
lubosmj commented 1 month ago

I would maybe allow plugin writers to create custom aliases or pass their own arguments to the function.

mdellweg commented 1 month ago

We should look into this technology: https://rsinger86.github.io/drf-access-policy/policy_reuse/#access-policy-re-use

mdellweg commented 1 month ago

Maybe we add something like has_related_field_obj_permission:<fieldname>;<permission>. I believe we only have one string to pass around.