mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-22 11:24:17 +00:00
* feat(Users): PRWLR-4718 make user email the default login username * feat(Token): PRWLR-4718 add serializers, views and urls for access and refresh tokens * feat(Token): PRWLR-4718 add first membership tenant in token if not present in json body * feat(Users): PRWLR-4718 add company_name to model * feat(Users): PRWLR-4718 create tenant and membership when creating new user * fix(BaseView): PRWLR-4718 add tenant_id to serializer context * fix(Tests): PRWLR-4718 use authorization with unit tests * fix(Views): PRWLR-4718 fix tenant retrieval from request * fix(Tests): PRWLR-4718 fix tests * fix(Fixtures): PRWLR-4718 fix tenant memberships ordering * chore(Tokens): PRWLR-4718 update token url * chore(Spec): PRWLR-4718 update API spec * feat(Tokens): PRWLR-4718 enable token refresh blacklisting * feat(Tokens): PRWLR-4718 implement RS256 algorithm and dev valid keys * fix(Environment): PRWLR-4718 fix jwt keys env vars * fix(Environment): PRWLR-4718 fix jwt keys env vars (testing) * chore(Settings): PRWLR-4718 remove drf-spectacular unused settings * fix(Environment): PRWLR-4718 remove jwt signature keys from dev and testing modules
92 lines
2.8 KiB
Python
92 lines
2.8 KiB
Python
import pytest
|
|
from django.urls import reverse
|
|
|
|
from conftest import TEST_USER, TEST_PASSWORD, get_api_tokens, get_authorization_header
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_check_resources_between_different_tenants(
|
|
enforce_test_user_db_connection, authenticated_api_client, tenants_fixture
|
|
):
|
|
client = authenticated_api_client
|
|
|
|
tenant1 = str(tenants_fixture[0].id)
|
|
tenant2 = str(tenants_fixture[1].id)
|
|
|
|
tenant1_token, _ = get_api_tokens(
|
|
client, TEST_USER, TEST_PASSWORD, tenant_id=tenant1
|
|
)
|
|
tenant2_token, _ = get_api_tokens(
|
|
client, TEST_USER, TEST_PASSWORD, tenant_id=tenant2
|
|
)
|
|
|
|
tenant1_headers = get_authorization_header(tenant1_token)
|
|
tenant2_headers = get_authorization_header(tenant2_token)
|
|
|
|
# Create a provider on tenant 1
|
|
provider_data = {
|
|
"data": {
|
|
"type": "Provider",
|
|
"attributes": {
|
|
"alias": "test_provider_tenant_1",
|
|
"provider": "aws",
|
|
"uid": "123456789012",
|
|
},
|
|
}
|
|
}
|
|
provider1_response = client.post(
|
|
reverse("provider-list"),
|
|
data=provider_data,
|
|
format="vnd.api+json",
|
|
headers=tenant1_headers,
|
|
)
|
|
assert provider1_response.status_code == 201
|
|
provider1_id = provider1_response.json()["data"]["id"]
|
|
|
|
# Create a provider on tenant 2
|
|
provider_data = {
|
|
"data": {
|
|
"type": "Provider",
|
|
"attributes": {
|
|
"alias": "test_provider_tenant_2",
|
|
"provider": "aws",
|
|
"uid": "123456789013",
|
|
},
|
|
}
|
|
}
|
|
provider2_response = client.post(
|
|
reverse("provider-list"),
|
|
data=provider_data,
|
|
format="vnd.api+json",
|
|
headers=tenant2_headers,
|
|
)
|
|
assert provider2_response.status_code == 201
|
|
provider2_id = provider2_response.json()["data"]["id"]
|
|
|
|
# Try to get the provider from tenant 1 on tenant 2 and vice versa
|
|
tenant1_response = client.get(
|
|
reverse("provider-detail", kwargs={"pk": provider1_id}),
|
|
headers=tenant2_headers,
|
|
)
|
|
assert tenant1_response.status_code == 404
|
|
tenant2_response = client.get(
|
|
reverse("provider-detail", kwargs={"pk": provider1_id}),
|
|
headers=tenant1_headers,
|
|
)
|
|
assert tenant2_response.status_code == 200
|
|
assert tenant2_response.json()["data"]["id"] == provider1_id
|
|
|
|
# Vice versa
|
|
|
|
tenant2_response = client.get(
|
|
reverse("provider-detail", kwargs={"pk": provider2_id}),
|
|
headers=tenant1_headers,
|
|
)
|
|
assert tenant2_response.status_code == 404
|
|
tenant1_response = client.get(
|
|
reverse("provider-detail", kwargs={"pk": provider2_id}),
|
|
headers=tenant2_headers,
|
|
)
|
|
assert tenant1_response.status_code == 200
|
|
assert tenant1_response.json()["data"]["id"] == provider2_id
|