Skip to content

Commit

Permalink
revert some custom perm values reset logic
Browse files Browse the repository at this point in the history
  • Loading branch information
hmodi-ns1 committed Jul 23, 2024
1 parent 4b928bf commit 1a6471d
Show file tree
Hide file tree
Showing 7 changed files with 135 additions and 388 deletions.
14 changes: 0 additions & 14 deletions ns1/rest/apikey.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,13 +28,6 @@ def create(self, name, callback=None, errback=None, **kwargs):

self._buildStdBody(body, kwargs)

# Replace `manage_jobs` with the new split permissions
if body["permissions"].get("monitoring", {}).get("manage_jobs", False):
body["permissions"]["monitoring"]["manage_jobs"] = False
body["permissions"]["monitoring"]["create_jobs"] = True
body["permissions"]["monitoring"]["update_jobs"] = True
body["permissions"]["monitoring"]["delete_jobs"] = True

return self._make_request(
"PUT",
"%s" % (self.ROOT),
Expand All @@ -47,13 +40,6 @@ def update(self, apikey_id, callback=None, errback=None, **kwargs):
body = {}
self._buildStdBody(body, kwargs)

# Replace `manage_jobs` with the new split permissions
if body["permissions"].get("monitoring", {}).get("manage_jobs", False):
body["permissions"]["monitoring"]["manage_jobs"] = False
body["permissions"]["monitoring"]["create_jobs"] = True
body["permissions"]["monitoring"]["update_jobs"] = True
body["permissions"]["monitoring"]["delete_jobs"] = True

return self._make_request(
"POST",
"%s/%s" % (self.ROOT, apikey_id),
Expand Down
3 changes: 3 additions & 0 deletions ns1/rest/permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,9 @@
},
"monitoring": {
"manage_jobs": False,
"create_jobs": False,
"update_jobs": False,
"delete_jobs": False,
"manage_lists": False,
"view_jobs": False,
},
Expand Down
14 changes: 0 additions & 14 deletions ns1/rest/team.py
Original file line number Diff line number Diff line change
Expand Up @@ -22,13 +22,6 @@ def create(self, name, callback=None, errback=None, **kwargs):

self._buildStdBody(body, kwargs)

# Replace `manage_jobs` with the new split permissions
if body["permissions"].get("monitoring", {}).get("manage_jobs", False):
body["permissions"]["monitoring"]["manage_jobs"] = False
body["permissions"]["monitoring"]["create_jobs"] = True
body["permissions"]["monitoring"]["update_jobs"] = True
body["permissions"]["monitoring"]["delete_jobs"] = True

return self._make_request(
"PUT",
"%s" % (self.ROOT),
Expand All @@ -41,13 +34,6 @@ def update(self, team_id, callback=None, errback=None, **kwargs):
body = {"id": team_id}
self._buildStdBody(body, kwargs)

# Replace `manage_jobs` with the new split permissions
if body["permissions"].get("monitoring", {}).get("manage_jobs", False):
body["permissions"]["monitoring"]["manage_jobs"] = False
body["permissions"]["monitoring"]["create_jobs"] = True
body["permissions"]["monitoring"]["update_jobs"] = True
body["permissions"]["monitoring"]["delete_jobs"] = True

return self._make_request(
"POST",
"%s/%s" % (self.ROOT, team_id),
Expand Down
14 changes: 0 additions & 14 deletions ns1/rest/user.py
Original file line number Diff line number Diff line change
Expand Up @@ -33,13 +33,6 @@ def create(

self._buildStdBody(body, kwargs)

# Replace `manage_jobs` with the new split permissions
if body["permissions"].get("monitoring", {}).get("manage_jobs", False):
body["permissions"]["monitoring"]["manage_jobs"] = False
body["permissions"]["monitoring"]["create_jobs"] = True
body["permissions"]["monitoring"]["update_jobs"] = True
body["permissions"]["monitoring"]["delete_jobs"] = True

return self._make_request(
"PUT",
"%s" % (self.ROOT),
Expand All @@ -52,13 +45,6 @@ def update(self, username, callback=None, errback=None, **kwargs):
body = {"username": username}
self._buildStdBody(body, kwargs)

# Replace `manage_jobs` with the new split permissions
if body["permissions"].get("monitoring", {}).get("manage_jobs", False):
body["permissions"]["monitoring"]["manage_jobs"] = False
body["permissions"]["monitoring"]["create_jobs"] = True
body["permissions"]["monitoring"]["update_jobs"] = True
body["permissions"]["monitoring"]["delete_jobs"] = True

return self._make_request(
"POST",
"%s/%s" % (self.ROOT, username),
Expand Down
154 changes: 43 additions & 111 deletions tests/unit/test_apikey.py
Original file line number Diff line number Diff line change
Expand Up @@ -45,122 +45,54 @@ def test_rest_apikey_retrieve(apikey_config, apikey_id, url):
)


class TestApiKeyCreate:
@pytest.mark.parametrize("name, url", [("test-apikey", "account/apikeys")])
def test_no_manage_jobs_set(self, apikey_config, name, url):
z = ns1.rest.apikey.APIKey(apikey_config)
z._make_request = mock.MagicMock()
z.create(name)
z._make_request.assert_called_once_with(
"PUT",
url,
callback=None,
errback=None,
body={"name": name, "permissions": permissions._default_perms},
)

@pytest.mark.parametrize("name, url", [("test-apikey", "account/apikeys")])
def test_manage_jobs_set_to_true(self, apikey_config, name, url):
z = ns1.rest.apikey.APIKey(apikey_config)
z._make_request = mock.MagicMock()
@pytest.mark.parametrize("name, url", [("test-apikey", "account/apikeys")])
def test_rest_apikey_create(apikey_config, name, url):
z = ns1.rest.apikey.APIKey(apikey_config)
z._make_request = mock.MagicMock()
z.create(name)
z._make_request.assert_called_once_with(
"PUT",
url,
callback=None,
errback=None,
body={"name": name, "permissions": permissions._default_perms},
)

z.create(name, permissions={"monitoring": {"manage_jobs": True}})

expected_perms = {
"monitoring": {
"manage_jobs": False,
"create_jobs": True,
"update_jobs": True,
"delete_jobs": True,
}
}
z._make_request.assert_called_once_with(
"PUT",
url,
callback=None,
errback=None,
body={"name": name, "permissions": expected_perms},
@pytest.mark.parametrize(
"apikey_id, name, ip_whitelist, permissions, url",
[
(
"test-apikey_id",
"test-apikey",
["1.1.1.1", "2.2.2.2"],
{"data": {"push_to_datafeeds": True}},
"account/apikeys/test-apikey_id",
)


class TestApiKeyUpdate:
@pytest.mark.parametrize(
"apikey_id, name, ip_whitelist, perms, url",
[
(
"test-apikey_id",
"test-apikey",
["1.1.1.1", "2.2.2.2"],
{"data": {"push_to_datafeeds": True}},
"account/apikeys/test-apikey_id",
)
],
],
)
def test_rest_apikey_update(
apikey_config, apikey_id, name, ip_whitelist, permissions, url
):
z = ns1.rest.apikey.APIKey(apikey_config)
z._make_request = mock.MagicMock()
z.update(
apikey_id,
name=name,
ip_whitelist=ip_whitelist,
permissions=permissions,
)
def test_no_manage_jobs_set(
self, apikey_config, apikey_id, name, ip_whitelist, perms, url
):
z = ns1.rest.apikey.APIKey(apikey_config)
z._make_request = mock.MagicMock()
z.update(
apikey_id,
name=name,
ip_whitelist=ip_whitelist,
permissions=perms,
)
z._make_request.assert_called_once_with(
"POST",
url,
callback=None,
errback=None,
body={
"name": name,
"ip_whitelist": ip_whitelist,
"permissions": perms,
},
)

@pytest.mark.parametrize(
"apikey_id, name, ip_whitelist, perms, url",
[
(
"test-apikey_id",
"test-apikey",
["1.1.1.1", "2.2.2.2"],
{"monitoring": {"manage_jobs": True}},
"account/apikeys/test-apikey_id",
)
],
z._make_request.assert_called_once_with(
"POST",
url,
callback=None,
errback=None,
body={
"name": name,
"ip_whitelist": ip_whitelist,
"permissions": permissions,
},
)
def test_mange_jobs_set_to_true(
self, apikey_config, apikey_id, name, ip_whitelist, perms, url
):
z = ns1.rest.apikey.APIKey(apikey_config)
z._make_request = mock.MagicMock()
z.update(
apikey_id,
name=name,
ip_whitelist=ip_whitelist,
permissions=perms,
)
expected_perms = {
"monitoring": {
"manage_jobs": False,
"create_jobs": True,
"update_jobs": True,
"delete_jobs": True,
}
}
z._make_request.assert_called_once_with(
"POST",
url,
callback=None,
errback=None,
body={
"name": name,
"ip_whitelist": ip_whitelist,
"permissions": expected_perms,
},
)


@pytest.mark.parametrize(
Expand Down
Loading

0 comments on commit 1a6471d

Please sign in to comment.