diff options
author | John L. Villalovos <john@sodarock.com> | 2022-01-09 22:11:47 -0800 |
---|---|---|
committer | John L. Villalovos <john@sodarock.com> | 2022-01-13 10:31:24 -0800 |
commit | 12435d74364ca881373d690eab89d2e2baa62a49 (patch) | |
tree | 7976389d86a50666458d3f45d2ca64fb6deb0e50 /gitlab/v4/objects/groups.py | |
parent | 824151ce9238f97118ec21aa8b3267cc7a2cd649 (diff) | |
download | gitlab-12435d74364ca881373d690eab89d2e2baa62a49.tar.gz |
fix: use url-encoded ID in all paths
Make sure all usage of the ID in the URL path is encoded. Normally it
isn't an issue as most IDs are integers or strings which don't contain
a slash ('/'). But when the ID is a string with a slash character it
will break things.
Add a test case that shows this fixes wikis issue with subpages which
use the slash character.
Closes: #1079
Diffstat (limited to 'gitlab/v4/objects/groups.py')
-rw-r--r-- | gitlab/v4/objects/groups.py | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/gitlab/v4/objects/groups.py b/gitlab/v4/objects/groups.py index c2e252e..453548b 100644 --- a/gitlab/v4/objects/groups.py +++ b/gitlab/v4/objects/groups.py @@ -115,7 +115,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): A list of dicts describing the resources found. """ data = {"scope": scope, "search": search} - path = f"/groups/{self.get_id()}/search" + path = f"/groups/{self.encoded_id}/search" return self.manager.gitlab.http_list(path, query_data=data, **kwargs) @cli.register_custom_action("Group", ("cn", "group_access", "provider")) @@ -136,7 +136,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabCreateError: If the server cannot perform the request """ - path = f"/groups/{self.get_id()}/ldap_group_links" + path = f"/groups/{self.encoded_id}/ldap_group_links" data = {"cn": cn, "group_access": group_access, "provider": provider} self.manager.gitlab.http_post(path, post_data=data, **kwargs) @@ -156,7 +156,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabDeleteError: If the server cannot perform the request """ - path = f"/groups/{self.get_id()}/ldap_group_links" + path = f"/groups/{self.encoded_id}/ldap_group_links" if provider is not None: path += f"/{provider}" path += f"/{cn}" @@ -174,7 +174,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabCreateError: If the server cannot perform the request """ - path = f"/groups/{self.get_id()}/ldap_sync" + path = f"/groups/{self.encoded_id}/ldap_sync" self.manager.gitlab.http_post(path, **kwargs) @cli.register_custom_action("Group", ("group_id", "group_access"), ("expires_at",)) @@ -200,7 +200,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): Returns: Group """ - path = f"/groups/{self.get_id()}/share" + path = f"/groups/{self.encoded_id}/share" data = { "group_id": group_id, "group_access": group_access, @@ -224,7 +224,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): GitlabAuthenticationError: If authentication is not correct GitlabDeleteError: If the server failed to perform the request """ - path = f"/groups/{self.get_id()}/share/{group_id}" + path = f"/groups/{self.encoded_id}/share/{group_id}" self.manager.gitlab.http_delete(path, **kwargs) |