diff --git a/taiga/timeline/serializers.py b/taiga/timeline/serializers.py index 903dc00d..85a8c77f 100644 --- a/taiga/timeline/serializers.py +++ b/taiga/timeline/serializers.py @@ -43,7 +43,8 @@ class TimelineDataJsonField(serializers.WritableField): "photo": get_photo_or_gravatar_url(user), "big_photo": get_big_photo_or_gravatar_url(user), "username": user.username, - "date_joined": user.date_joined, + "is_profile_visible": user.is_active and not user.is_system, + "date_joined": user.date_joined } except User.DoesNotExist: pass diff --git a/tests/integration/test_timeline.py b/tests/integration/test_timeline.py index 05c649b7..3d203494 100644 --- a/tests/integration/test_timeline.py +++ b/tests/integration/test_timeline.py @@ -22,6 +22,7 @@ from .. import factories from taiga.projects.history import services as history_services from taiga.timeline import service from taiga.timeline.models import Timeline +from taiga.timeline.serializers import TimelineSerializer pytestmark = pytest.mark.django_db @@ -391,3 +392,29 @@ def test_watchers_to_user_story_timeline(): user_timeline = service.get_profile_timeline(membership.user) assert user_timeline[0].event_type == "userstories.userstory.create" assert user_timeline[0].data["userstory"]["subject"] == "test us timeline" + +def test_user_data_for_system_users(): + user_story = factories.UserStoryFactory.create(subject="test us timeline") + history_services.take_snapshot(user_story, user=user_story.owner) + project_timeline = service.get_project_timeline(user_story.project) + serialized_obj = TimelineSerializer(project_timeline[0]) + serialized_obj.data["data"]["user"]["is_profile_visible"] = True + +def test_user_data_for_system_users(): + user_story = factories.UserStoryFactory.create(subject="test us timeline") + user_story.owner.is_system = True + user_story.owner.save() + history_services.take_snapshot(user_story, user=user_story.owner) + project_timeline = service.get_project_timeline(user_story.project) + serialized_obj = TimelineSerializer(project_timeline[0]) + serialized_obj.data["data"]["user"]["is_profile_visible"] = False + +def test_user_data_for_unactived_users(): + user_story = factories.UserStoryFactory.create(subject="test us timeline") + user_story.owner.cancel() + user_story.owner.save() + history_services.take_snapshot(user_story, user=user_story.owner) + project_timeline = service.get_project_timeline(user_story.project) + serialized_obj = TimelineSerializer(project_timeline[0]) + serialized_obj.data["data"]["user"]["is_profile_visible"] = False + serialized_obj.data["data"]["user"]["username"] = "deleted-user"