diff --git a/tests/unit/forklift/test_legacy.py b/tests/unit/forklift/test_legacy.py index 0b6a61d7d629..46f3933fd3b5 100644 --- a/tests/unit/forklift/test_legacy.py +++ b/tests/unit/forklift/test_legacy.py @@ -1801,7 +1801,6 @@ def test_upload_succeeds_custom_project_size_limit( ) assert [(j.name, j.version, j.action, j.submitted_by) for j in journals] == [ ("example", None, "create", user), - ("example", None, f"add Owner {user.username}", user), ("example", "1.0", "new release", user), ("example", "1.0", "add source file example-1.0.tar.gz", user), ] @@ -3690,7 +3689,6 @@ def test_upload_succeeds_creates_project( ) assert [(j.name, j.version, j.action, j.submitted_by) for j in journals] == [ ("example", None, "create", user), - ("example", None, f"add Owner {user.username}", user), ("example", "1.0", "new release", user), ("example", "1.0", "add source file example-1.0.tar.gz", user), ] diff --git a/tests/unit/manage/test_views.py b/tests/unit/manage/test_views.py index fa05e94e22d9..c431bd7801ab 100644 --- a/tests/unit/manage/test_views.py +++ b/tests/unit/manage/test_views.py @@ -5356,16 +5356,6 @@ def test_change_role(self, db_request, monkeypatch): assert isinstance(result, HTTPSeeOther) assert result.headers["Location"] == "/the-redirect" - entry = ( - db_request.db.query(JournalEntry) - .options(joinedload(JournalEntry.submitted_by)) - .one() - ) - - assert entry.name == project.name - assert entry.action == "change Owner testuser to Maintainer" - assert entry.submitted_by == db_request.user - def test_change_role_invalid_role_name(self, pyramid_request): project = pretend.stub(name="foobar") @@ -5475,16 +5465,6 @@ def test_delete_role(self, db_request, monkeypatch): assert isinstance(result, HTTPSeeOther) assert result.headers["Location"] == "/the-redirect" - entry = ( - db_request.db.query(JournalEntry) - .options(joinedload(JournalEntry.submitted_by)) - .one() - ) - - assert entry.name == project.name - assert entry.action == "remove Owner testuser" - assert entry.submitted_by == db_request.user - def test_delete_missing_role(self, db_request): project = ProjectFactory.create(name="foobar") missing_role_id = str(uuid.uuid4()) @@ -5572,16 +5552,6 @@ def test_delete_not_sole_owner_role(self, db_request, monkeypatch): assert isinstance(result, HTTPSeeOther) assert result.headers["Location"] == "/the-redirect" - entry = ( - db_request.db.query(JournalEntry) - .options(joinedload(JournalEntry.submitted_by)) - .one() - ) - - assert entry.name == project.name - assert entry.action == "remove Owner testuser" - assert entry.submitted_by == db_request.user - def test_delete_non_owner_role(self, db_request): project = ProjectFactory.create(name="foobar") user = UserFactory.create(username="testuser") diff --git a/tests/unit/manage/views/test_teams.py b/tests/unit/manage/views/test_teams.py index de234dd5467f..99463efec715 100644 --- a/tests/unit/manage/views/test_teams.py +++ b/tests/unit/manage/views/test_teams.py @@ -40,7 +40,6 @@ TeamProjectRoleType, TeamRoleType, ) -from warehouse.packaging.models import JournalEntry from warehouse.utils.paginate import paginate_url_factory @@ -825,16 +824,6 @@ def test_change_role( assert isinstance(result, HTTPSeeOther) assert result.headers["Location"] == "/the-redirect" - entry = ( - db_request.db.query(JournalEntry) - .options(joinedload(JournalEntry.submitted_by)) - .one() - ) - - assert entry.name == organization_project.name - assert entry.action == f"change Owner {organization_team.name} to Maintainer" - assert entry.submitted_by == db_request.user - def test_change_role_invalid_role_name(self, pyramid_request, organization_project): pyramid_request.method = "POST" pyramid_request.POST = MultiDict( @@ -1011,16 +1000,6 @@ def test_delete_role( assert isinstance(result, HTTPSeeOther) assert result.headers["Location"] == "/the-redirect" - entry = ( - db_request.db.query(JournalEntry) - .options(joinedload(JournalEntry.submitted_by)) - .one() - ) - - assert entry.name == organization_project.name - assert entry.action == f"remove Owner {organization_team.name}" - assert entry.submitted_by == db_request.user - def test_delete_missing_role(self, db_request, organization_project): missing_role_id = str(uuid.uuid4()) diff --git a/warehouse/accounts/views.py b/warehouse/accounts/views.py index c8478bed1ed1..3819c2fc987a 100644 --- a/warehouse/accounts/views.py +++ b/warehouse/accounts/views.py @@ -1251,14 +1251,7 @@ def _error(message): request.db.add(Role(user=user, project=project, role_name=desired_role)) request.db.delete(role_invite) - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"accepted {desired_role} {user.username}", - submitted_by=request.user, - ) - ) + project.record_event( tag=EventTag.Project.RoleAdd, request=request, diff --git a/warehouse/admin/views/projects.py b/warehouse/admin/views/projects.py index 59ce1b49037b..6d0d326f697b 100644 --- a/warehouse/admin/views/projects.py +++ b/warehouse/admin/views/projects.py @@ -591,15 +591,6 @@ def add_role(project, request): ) ) - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"add {role_name} {user.username}", - submitted_by=request.user, - ) - ) - request.db.add(Role(role_name=role_name, user=user, project=project)) request.session.flash( @@ -642,14 +633,6 @@ def delete_role(project, request): f"Removed '{role.user.username}' as '{role.role_name}' on '{project.name}'", queue="success", ) - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"remove {role.role_name} {role.user.username}", - submitted_by=request.user, - ) - ) request.db.delete(role) diff --git a/warehouse/manage/views/__init__.py b/warehouse/manage/views/__init__.py index bedf17b661f0..7b030095d293 100644 --- a/warehouse/manage/views/__init__.py +++ b/warehouse/manage/views/__init__.py @@ -2431,16 +2431,6 @@ def manage_project_roles(project, request, _form_class=CreateRoleForm): # Add internal team. organization_service.add_team_project_role(team.id, project.id, role_name) - # Add journal entry. - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"add {role_name.value} {team_name}", - submitted_by=request.user, - ) - ) - # Record events. project.record_event( tag=EventTag.Project.TeamProjectRoleAdd, @@ -2542,16 +2532,6 @@ def manage_project_roles(project, request, _form_class=CreateRoleForm): # Add internal member. request.db.add(Role(user=user, project=project, role_name=role_name)) - # Add journal entry. - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"add {role_name} {user.username}", - submitted_by=request.user, - ) - ) - # Record events. project.record_event( tag=EventTag.Project.RoleAdd, @@ -2668,14 +2648,6 @@ def manage_project_roles(project, request, _form_class=CreateRoleForm): ) ) - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"invite {role_name} {username}", - submitted_by=request.user, - ) - ) send_project_role_verification_email( request, user, @@ -2754,14 +2726,6 @@ def revoke_project_role_invitation(project, request, _form_class=ChangeRoleForm) ) role_name = token_data.get("desired_role") - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"revoke_invite {role_name} {user.username}", - submitted_by=request.user, - ) - ) project.record_event( tag=EventTag.Project.RoleRevokeInvite, request=request, @@ -2817,16 +2781,6 @@ def change_project_role(project, request, _form_class=ChangeRoleForm): if role.role_name == "Owner" and role.user == request.user: request.session.flash("Cannot remove yourself as Owner", queue="error") else: - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action="change {} {} to {}".format( - role.role_name, role.user.username, form.role_name.data - ), - submitted_by=request.user, - ) - ) role.role_name = form.role_name.data project.record_event( tag=EventTag.Project.RoleChange, @@ -2904,14 +2858,7 @@ def delete_project_role(project, request): request.session.flash("Cannot remove yourself as Sole Owner", queue="error") else: request.db.delete(role) - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"remove {role.role_name} {role.user.username}", - submitted_by=request.user, - ) - ) + project.record_event( tag=EventTag.Project.RoleRemove, request=request, diff --git a/warehouse/manage/views/organizations.py b/warehouse/manage/views/organizations.py index d04c1a3bb0c7..af18962ded5f 100644 --- a/warehouse/manage/views/organizations.py +++ b/warehouse/manage/views/organizations.py @@ -744,14 +744,7 @@ def add_organization_project(self): ) if role: self.request.db.delete(role) - self.request.db.add( - JournalEntry.create_with_lock( - self.request.db, - name=project.name, - action=f"remove {role.role_name} {role.user.username}", - submitted_by=self.request.user, - ) - ) + project.record_event( tag=EventTag.Project.RoleRemove, request=self.request, @@ -1521,14 +1514,6 @@ def transfer_organization_project(project, request): ) if role: request.db.delete(role) - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"remove {role.role_name} {role.user.username}", - submitted_by=request.user, - ) - ) project.record_event( tag=EventTag.Project.RoleRemove, request=request, diff --git a/warehouse/manage/views/teams.py b/warehouse/manage/views/teams.py index a4d18180adc3..fc9ba0ce689d 100644 --- a/warehouse/manage/views/teams.py +++ b/warehouse/manage/views/teams.py @@ -519,20 +519,6 @@ def change_team_project_role(project, request, _form_class=ChangeTeamProjectRole queue="error", ) else: - # Add journal entry. - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action="change {} {} to {}".format( - role.role_name.value, - role.team.name, - form.team_project_role_name.data.value, - ), - submitted_by=request.user, - ) - ) - # Change team project role. role.role_name = form.team_project_role_name.data @@ -629,16 +615,6 @@ def delete_team_project_role(project, request): # Delete role. request.db.delete(role) - # Add journal entry. - request.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"remove {role_name.value} {team.name}", - submitted_by=request.user, - ) - ) - # Record event. project.record_event( tag=EventTag.Project.TeamProjectRoleRemove, diff --git a/warehouse/packaging/services.py b/warehouse/packaging/services.py index e327d397c899..ab4ab9a83e88 100644 --- a/warehouse/packaging/services.py +++ b/warehouse/packaging/services.py @@ -563,17 +563,7 @@ def create_project( # Mark the creator as the newly created project's owner, if configured. if creator_is_owner: self.db.add(Role(user=creator, project=project, role_name="Owner")) - # TODO: This should be handled by some sort of database trigger or a - # SQLAlchemy hook or the like instead of doing it inline in this - # service. - self.db.add( - JournalEntry.create_with_lock( - request.db, - name=project.name, - action=f"add Owner {creator.username}", - submitted_by=creator, - ) - ) + project.record_event( tag=EventTag.Project.RoleAdd, request=request,