Skip to content

Commit

Permalink
Casts a repository object before checking permission on it.
Browse files Browse the repository at this point in the history
fixes: pulp#4932
  • Loading branch information
dkliban committed Jan 16, 2024
1 parent c388fed commit d9273f6
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 2 deletions.
1 change: 1 addition & 0 deletions CHANGES/4932.bugfix
@@ -0,0 +1 @@
Fixed a bug where publications couldn't be created from repository versions when using RBAC.
4 changes: 2 additions & 2 deletions pulpcore/app/global_access_conditions.py
Expand Up @@ -424,9 +424,9 @@ def has_repo_or_repo_ver_param_model_or_domain_or_obj_perms(request, view, actio
)
serializer.is_valid(raise_exception=True)
if repository := serializer.validated_data.get("repository"):
return request.user.has_perm(permission, repository)
return request.user.has_perm(permission, repository.cast())
elif repo_ver := serializer.validated_data.get("repository_version"):
return request.user.has_perm(permission, repo_ver.repository)
return request.user.has_perm(permission, repo_ver.repository.cast())
return True


Expand Down
8 changes: 8 additions & 0 deletions pulpcore/tests/functional/api/pulp_file/test_rbac.py
Expand Up @@ -267,6 +267,14 @@ def test_object_creation(
try_action(
bob, file_publication_api_client, "create", 403, {"repository": admin_repo.pulp_href}
)
pub_from_repo_version = try_action(
bob,
file_publication_api_client,
"create",
202,
{"repository_version": repo.latest_version_href},
) # noqa

pub = try_action(
bob, file_publication_api_client, "create", 202, {"repository": repo.pulp_href}
)
Expand Down

0 comments on commit d9273f6

Please sign in to comment.