From 4e33f61660c3bc2dbbae7cefdd99200693a9b9cb Mon Sep 17 00:00:00 2001 From: Andrew Jackson Date: Thu, 5 May 2022 15:47:50 -0400 Subject: [PATCH] Seed user permissions (#468) --- create_superuser.py | 5 +++++ tests/scripts/test_create_superuser.py | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/create_superuser.py b/create_superuser.py index 07af137df..0880cafa0 100644 --- a/create_superuser.py +++ b/create_superuser.py @@ -10,6 +10,7 @@ from fidesops.db.session import get_db_session from fidesops.models.client import ClientDetail, ADMIN_UI_ROOT from fidesops.models.fidesops_user import FidesopsUser +from fidesops.models.fidesops_user_permissions import FidesopsUserPermissions from fidesops.schemas.user import UserCreate @@ -61,6 +62,10 @@ def create_user_and_client(db: Session) -> FidesopsUser: ClientDetail.create_client_and_secret( db, scopes, fides_key=ADMIN_UI_ROOT, user_id=superuser.id ) + + FidesopsUserPermissions.create( + db=db, data={"user_id": superuser.id, "scopes": scopes} + ) print(f"Superuser '{user_data.username}' created successfully!") return superuser diff --git a/tests/scripts/test_create_superuser.py b/tests/scripts/test_create_superuser.py index ec5697a61..7907e7569 100644 --- a/tests/scripts/test_create_superuser.py +++ b/tests/scripts/test_create_superuser.py @@ -8,6 +8,7 @@ from fidesops.common_exceptions import KeyOrNameAlreadyExists from fidesops.models.client import ClientDetail, ADMIN_UI_ROOT from fidesops.models.fidesops_user import FidesopsUser +from fidesops.models.fidesops_user_permissions import FidesopsUserPermissions from fidesops.schemas.user import UserCreate from fidesops.api.v1.scope_registry import CLIENT_CREATE @@ -64,6 +65,9 @@ def test_create_user_and_client(self, mock_pass, mock_user, db): assert client_detail.fides_key == ADMIN_UI_ROOT assert CLIENT_CREATE not in client_detail.scopes + user_permissions = FidesopsUserPermissions.get_by(db=db, field="user_id", value=superuser.id) + assert user_permissions is not None + with pytest.raises(KeyOrNameAlreadyExists): create_user_and_client(db)