stable

Clone or download

Read-only

fix: cache result of hash_file for avatars

Instead of computing the avatar hash for each request, we should compute once and store it in database. There will be less load on the server and rainforest will be grateful. No functional change visible. If you load a project member pages (or site admin ยป users), put a breakpoint in `ComputeAvatarHash::computeAvatarHash()`, and reload the page, the breakpoint should not be reached. Suggested entry point for the review: `PFUser::getAvatarUrl()` This method is now deprecated, psalm baseline is updated to whitelist existing code that is still using it. Introducing a DAO in piece of code that was used everywhere is not very nice for unit tests, forcing us to inject everywhere. Sorry for the big contribution to review ๐Ÿ˜ญ. Closes request #39763 Store avatar hash Change-Id: I3d676dc39cbcacd16282aa56a12e482a32353ff1

Modified Files

Name
M plugins/crosstracker/include/CrossTracker/REST/v1/ArtifactRepresentationFactory.php +3 โˆ’2 Go to diff View file
M plugins/crosstracker/include/CrossTracker/REST/v1/CrossTrackerArtifactReportRepresentation.php +4 โˆ’3 Go to diff View file
M plugins/crosstracker/include/CrossTracker/REST/v1/CrossTrackerReportsResource.php +5 โˆ’1 Go to diff View file
M plugins/docman/include/Metadata/Owner/AllOwnerRetriever.php +8 โˆ’3 Go to diff View file
M plugins/docman/include/Metadata/Owner/OwnerRepresentationForAutocomplete.php +3 โˆ’2 Go to diff View file
M plugins/docman/include/REST/v1/DocmanEmbeddedFilesResource.php +4 โˆ’0 Go to diff View file
M plugins/docman/include/REST/v1/DocmanFilesResource.php +5 โˆ’1 Go to diff View file
M plugins/docman/include/REST/v1/DocmanItemsResource.php +6 โˆ’2 Go to diff View file
M plugins/docman/include/REST/v1/DocmanLinksResource.php +4 โˆ’0 Go to diff View file
M plugins/docman/include/REST/v1/EmbeddedFiles/EmbeddedFileVersionRepresentation.php +3 โˆ’1 Go to diff View file
M plugins/docman/include/REST/v1/EmbeddedFiles/VersionRepresentationCollectionBuilder.php +3 โˆ’0 Go to diff View file
M plugins/docman/include/REST/v1/Files/FileVersionRepresentation.php +4 โˆ’2 Go to diff View file
M plugins/docman/include/REST/v1/Folders/BuildSearchedItemRepresentationsFromSearchReport.php +3 โˆ’0 Go to diff View file
M plugins/docman/include/REST/v1/Folders/SearchRepresentation.php +3 โˆ’1 Go to diff View file
M plugins/docman/include/REST/v1/ItemRepresentationBuilder.php +5 โˆ’2 Go to diff View file
M plugins/docman/include/REST/v1/Links/LinkVersionRepresentation.php +3 โˆ’1 Go to diff View file
M plugins/docman/include/REST/v1/Links/VersionRepresentationCollectionBuilder.php +3 โˆ’0 Go to diff View file
M plugins/docman/include/REST/v1/Log/LogEntryRepresentation.php +3 โˆ’2 Go to diff View file
M plugins/docman/include/REST/v1/SearchResource.php +8 โˆ’1 Go to diff View file
M plugins/docman/include/REST/v1/Service/DocmanServiceResource.php +5 โˆ’1 Go to diff View file
M plugins/docman/include/REST/v1/VersionRepresentationCollectionBuilder.php +3 โˆ’0 Go to diff View file
M plugins/docman/include/docmanPlugin.php +5 โˆ’1 Go to diff View file
M plugins/docman/tests/unit/Metadata/Owner/AllOwnerRetrieverTest.php +7 โˆ’4 Go to diff View file
M plugins/docman/tests/unit/Metadata/Owner/OwnerRequestHandlerTest.php +7 โˆ’6 Go to diff View file
M plugins/docman/tests/unit/REST/v1/EmbeddedFiles/VersionRepresentationCollectionBuilderTest.php +3 โˆ’1 Go to diff View file
M plugins/docman/tests/unit/REST/v1/Folders/BuildSearchedItemRepresentationsFromSearchReportTest.php +2 โˆ’0 Go to diff View file
M plugins/docman/tests/unit/REST/v1/ItemRepresentationBuilderTest.php +3 โˆ’1 Go to diff View file
M plugins/docman/tests/unit/REST/v1/ItemRepresentationCollectionBuilderTest.php +3 โˆ’2 Go to diff View file
M plugins/docman/tests/unit/REST/v1/Links/VersionRepresentationCollectionBuilderTest.php +2 โˆ’0 Go to diff View file
M plugins/docman/tests/unit/REST/v1/VersionRepresentationCollectionBuilderTest.php +3 โˆ’1 Go to diff View file
M plugins/frs/include/FRS/REST/v1/FileRepresentation.php +5 โˆ’4 Go to diff View file
M plugins/frs/include/FRS/REST/v1/FileResource.php +4 โˆ’1 Go to diff View file
M plugins/frs/include/FRS/REST/v1/PackageResource.php +4 โˆ’1 Go to diff View file
M plugins/frs/include/FRS/REST/v1/ReleaseRepresentation.php +22 โˆ’10 Go to diff View file
M plugins/frs/include/FRS/REST/v1/ReleaseResource.php +6 โˆ’3 Go to diff View file
M plugins/frs/include/FRS/REST/v1/UploadedLinkRepresentation.php +3 โˆ’2 Go to diff View file
M plugins/frs/include/FRS/ReleaseNotesController.php +9 โˆ’2 Go to diff View file
M plugins/frs/tests/unit/FRS/ReleaseNotesControllerTest.php +3 โˆ’1 Go to diff View file
M plugins/git/hooks/post-receive.php +5 โˆ’1 Go to diff View file
M plugins/git/include/Git/RepositoryList/ListPresenterBuilder.php +3 โˆ’1 Go to diff View file
M plugins/git/include/Git/Webhook/PushPayload.php +3 โˆ’2 Go to diff View file
M plugins/git/include/Git/Webhook/WebhookRequestSender.php +3 โˆ’1 Go to diff View file
M plugins/git/include/REST/v1/GitCommitRepresentationBuilder.php +3 โˆ’2 Go to diff View file
M plugins/git/include/REST/v1/RepositoryResource.class.php +4 โˆ’1 Go to diff View file
M plugins/git/include/gitPlugin.php +4 โˆ’0 Go to diff View file
M plugins/git/tests/unit/Git/REST/v1/GitCommitRepresentationBuilderTest.php +2 โˆ’1 Go to diff View file
M plugins/git/tests/unit/Git/Webhook/WebhookRequestSenderTest.php +2 โˆ’1 Go to diff View file
M plugins/kanban/include/Kanban/REST/v1/KanbanColumnsResource.php +4 โˆ’1 Go to diff View file
M plugins/kanban/include/Kanban/REST/v1/KanbanResource.php +4 โˆ’1 Go to diff View file
M plugins/kanban/include/kanbanPlugin.php +5 โˆ’2 Go to diff View file
M plugins/kanban/tests/unit/RealTimeMercure/MercureJWTControllerTest.php +2 โˆ’1 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/BuildUpdateTemplateRequestMiddleware.php +3 โˆ’1 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/DisplayPdfTemplateCreationFormController.php +3 โˆ’0 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/DisplayPdfTemplateCreationOrUpdateFormPresenter.php +7 โˆ’3 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/DisplayPdfTemplateDuplicateFormController.php +3 โˆ’0 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/DisplayPdfTemplateUpdateFormController.php +4 โˆ’1 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/Image/IndexImagesController.php +3 โˆ’1 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/Image/PdfTemplateImagePresenter.php +4 โˆ’2 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/IndexPdfTemplateController.php +3 โˆ’0 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/IndexPdfTemplatePresenter.php +3 โˆ’1 Go to diff View file
M plugins/pdftemplate/include/PdfTemplate/Admin/PdfTemplatePresenter.php +7 โˆ’6 Go to diff View file
M plugins/pdftemplate/include/pdftemplatePlugin.php +10 โˆ’1 Go to diff View file
M plugins/pdftemplate/tests/unit/PdfTemplate/Admin/BuildUpdateTemplateRequestMiddlewareTest.php +7 โˆ’0 Go to diff View file
M plugins/pdftemplate/tests/unit/PdfTemplate/Admin/DisplayPdfTemplateCreationFormControllerTest.php +4 โˆ’0 Go to diff View file
M plugins/pdftemplate/tests/unit/PdfTemplate/Admin/DisplayPdfTemplateDuplicateFormControllerTest.php +6 โˆ’0 Go to diff View file
M plugins/pdftemplate/tests/unit/PdfTemplate/Admin/DisplayPdfTemplateUpdateFormControllerTest.php +6 โˆ’0 Go to diff View file
M plugins/pdftemplate/tests/unit/PdfTemplate/Admin/IndexPdfTemplateControllerTest.php +4 โˆ’0 Go to diff View file
M plugins/project_ownership/include/REST/ProjectOwnershipRepresentation.php +3 โˆ’2 Go to diff View file
M plugins/project_ownership/include/REST/ProjectOwnershipResource.php +4 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/Authors/GETHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/Comment/PATCHCommentHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/Comment/POSTCommentHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/InlineComment/InlineCommentRepresentationsBuilder.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/InlineComment/PATCHHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/InlineComment/POSTHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/InlineComment/Reply/POSTHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PaginatedCommentsRepresentationsBuilder.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PaginatedTimelineRepresentationBuilder.php +5 โˆ’3 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PullRequestCommentsResource.php +5 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PullRequestInlineCommentsResource.php +7 โˆ’2 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PullRequestRepresentationFactory.php +4 โˆ’2 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PullRequestStatusInfoRepresentationBuilder.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/PullRequestsResource.php +29 โˆ’13 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/RepositoryPullRequests/GETHandler.php +4 โˆ’2 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/RepositoryResource.php +7 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/Reviewer/ReviewerChangeTimelineEventRepresentation.php +11 โˆ’9 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/Reviewer/ReviewersRepresentation.php +3 โˆ’2 Go to diff View file
M plugins/pullrequest/include/PullRequest/REST/v1/Reviewers/GETHandler.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/PullRequest/Reviewer/Autocompleter/ReviewerAutocompleterController.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/include/pullrequestPlugin.php +5 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/Authors/GETHandlerTest.php +7 โˆ’4 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/Comment/CommentRepresentationBuilderTest.php +2 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/Comment/PATCHCommentHandlerTest.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/Comment/POSTCommentHandlerTest.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/InlineComment/InlineCommentRepresentationsBuilderTest.php +2 โˆ’0 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/InlineComment/PATCHHandlerTest.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/InlineComment/POSTHandlerTest.php +3 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/InlineComment/Reply/POSTHandler.php +4 โˆ’0 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/InlineComment/SingleRepresentationBuilderTest.php +2 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/PullRequestMinimalRepresentationTest.php +7 โˆ’3 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/PullRequestRepresentationFactoryTest.php +4 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/PullRequestRepresentationTest.php +7 โˆ’3 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/PullRequestStatusInfoRepresentationBuilderTest.php +10 โˆ’2 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/RepositoryPullRequests/GETHandlerTest.php +2 โˆ’0 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/Reviewer/ReviewerChangeTimelineEventRepresentationTest.php +2 โˆ’1 Go to diff View file
M plugins/pullrequest/tests/unit/REST/v1/Reviewers/GETHandlerTest.php +7 โˆ’4 Go to diff View file
M plugins/pullrequest/tests/unit/Reviewer/Autocompleter/ReviewerAutocompleterControllerTest.php +2 โˆ’0 Go to diff View file
M plugins/svn/include/REST/v1/NotificationsBuilder.php +3 โˆ’1 Go to diff View file
M plugins/svn/include/REST/v1/RepositoryResource.php +5 โˆ’1 Go to diff View file
M plugins/taskboard/include/REST/v1/CardRepresentationBuilder.php +9 โˆ’5 Go to diff View file
M plugins/taskboard/include/REST/v1/TaskboardCardResource.php +7 โˆ’2 Go to diff View file
M plugins/taskboard/include/REST/v1/TaskboardResource.php +5 โˆ’1 Go to diff View file
M plugins/testmanagement/include/RealTime/RealTimeMessageSender.php +7 โˆ’5 Go to diff View file
M plugins/testmanagement/include/TestManagement/IndexController.class.php +4 โˆ’1 Go to diff View file
M plugins/testmanagement/include/TestManagement/IndexPresenter.class.php +3 โˆ’1 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/AssignedToRepresentationBuilder.php +3 โˆ’1 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/CampaignsResource.class.php +18 โˆ’5 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/DefinitionRepresentations/DefinitionRepresentationBuilder.php +5 โˆ’2 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/DefinitionsResource.class.php +8 โˆ’2 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/ExecutionRepresentationBuilder.php +4 โˆ’2 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/ExecutionStatusUpdater.php +3 โˆ’1 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/ExecutionsResource.class.php +19 โˆ’7 Go to diff View file
M plugins/testmanagement/include/TestManagement/REST/v1/ProjectResource.class.php +8 โˆ’2 Go to diff View file
M plugins/testmanagement/include/TestManagement/Router.class.php +4 โˆ’1 Go to diff View file
M plugins/testmanagement/include/testmanagementPlugin.php +6 โˆ’2 Go to diff View file
M plugins/testmanagement/tests/unit/RealTime/MercureJWTControllerTest.php +2 โˆ’1 Go to diff View file
M plugins/testmanagement/tests/unit/RealTime/RealTimeMessageSenderTest.php +3 โˆ’1 Go to diff View file
M plugins/testmanagement/tests/unit/TestManagement/REST/v1/DefinitionRepresentations/DefinitionRepresentationBuilderTest.php +2 โˆ’0 Go to diff View file
M plugins/testplan/include/REST/v1/BacklogItemResource.php +5 โˆ’1 Go to diff View file
M plugins/testplan/include/REST/v1/DefinitionLinkedToABacklogItemRepresentation.php +3 โˆ’1 Go to diff View file
M plugins/testplan/include/REST/v1/TestExecutionUsedToDefineStatusRepresentation.php +3 โˆ’2 Go to diff View file
M plugins/tracker/include/REST/Artifact/ArtifactRepresentation.class.php +4 โˆ’2 Go to diff View file
M plugins/tracker/include/REST/Artifact/ArtifactRepresentationBuilder.php +10 โˆ’4 Go to diff View file
M plugins/tracker/include/REST/Artifact/Changeset/ChangesetRepresentationBuilder.php +4 โˆ’2 Go to diff View file
M plugins/tracker/include/REST/v1/ArtifactsResource.class.php +7 โˆ’2 Go to diff View file
M plugins/tracker/include/REST/v1/Report/MatchingArtifactRepresentationBuilder.php +4 โˆ’1 Go to diff View file
M plugins/tracker/include/REST/v1/ReportsResource.class.php +9 โˆ’3 Go to diff View file
M plugins/tracker/include/REST/v1/TrackersResource.class.php +7 โˆ’2 Go to diff View file
M plugins/tracker/include/Tracker/Artifact/Changeset/PostCreation/ActionsRunner.php +6 โˆ’1 Go to diff View file
M plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List_Bind_Users.php +5 โˆ’2 Go to diff View file
M plugins/tracker/include/Tracker/FormElement/Tracker_FormElement_Field_List_Bind_UsersValue.php +5 โˆ’2 Go to diff View file
M plugins/tracker/include/Tracker/Webhook/ArtifactPayloadBuilder.php +3 โˆ’1 Go to diff View file
M plugins/tracker/tests/unit/REST/Artifact/ArtifactRepresentationBuilderTest.php +3 โˆ’1 Go to diff View file
M plugins/tracker/tests/unit/REST/Artifact/ArtifactRepresentationTest.php +2 โˆ’1 Go to diff View file
M plugins/tracker/tests/unit/REST/Artifact/Changeset/ChangesetRepresentationBuilderTest.php +3 โˆ’1 Go to diff View file
M plugins/tracker/tests/unit/REST/Artifact/FlatArtifactRepresentationTransformerTest.php +4 โˆ’2 Go to diff View file
M plugins/tracker/tests/unit/Tracker/REST/v1/Report/MatchingArtifactRepresentationBuilderTest.php +3 โˆ’1 Go to diff View file
M plugins/tracker/tests/unit/Tracker/RealTimeMercure/RealTimeMercureArtifactMessageSenderTest.php +2 โˆ’1 Go to diff View file
M plugins/tracker/tests/unit/Tracker/Webhook/ArtifactPayloadBuilderTest.php +4 โˆ’2 Go to diff View file
M plugins/tracker_functions/include/tracker_functionsPlugin.php +5 โˆ’0 Go to diff View file
M src/common/Dashboard/Project/FirstTimerPresenterBuilder.php +3 โˆ’0 Go to diff View file
M src/common/Dashboard/User/FirstTimerPresenter.php +3 โˆ’1 Go to diff View file
M src/common/Dashboard/User/FirstTimerPresenterBuilder.php +3 โˆ’0 Go to diff View file
M src/common/Dashboard/User/UserDashboardController.php +3 โˆ’1 Go to diff View file
M src/common/Dashboard/User/UserPresenter.php +3 โˆ’2 Go to diff View file
M src/common/InviteBuddy/Admin/InvitedByPresenterBuilder.php +4 โˆ’2 Go to diff View file
M src/common/InviteBuddy/Admin/InvitedByUserPresenter.php +3 โˆ’2 Go to diff View file
M src/common/InviteBuddy/REST/v1/InvitationPOSTResultRepresentation.php +6 โˆ’5 Go to diff View file
M src/common/InviteBuddy/REST/v1/InvitationsResource.php +7 โˆ’1 Go to diff View file
M src/common/JWT/generators/MercureJWTGeneratorBuilder.php +3 โˆ’1 Go to diff View file
M src/common/JWT/generators/MercureJWTGeneratorImpl.php +3 โˆ’1 Go to diff View file
M src/common/Project/Admin/ProjectUGroup/Details/MemberPresenter.php +3 โˆ’2 Go to diff View file
M src/common/Project/Admin/ProjectUGroup/Details/MembersPresenterBuilder.php +3 โˆ’1 Go to diff View file
M src/common/Project/Home.php +4 โˆ’0 Go to diff View file
M src/common/Project/REST/HeartbeatsEntryRepresentation.php +6 โˆ’4 Go to diff View file
M src/common/Project/REST/HeartbeatsRepresentation.php +3 โˆ’2 Go to diff View file
M src/common/Project/REST/v1/ProjectResource.class.php +4 โˆ’1 Go to diff View file
M src/common/Project/REST/v1/UserGroupResource.class.php +4 โˆ’1 Go to diff View file
M src/common/RealTimeMercure/ClientBuilder.php +3 โˆ’2 Go to diff View file
M src/common/Request/RouteCollector.php +24 โˆ’4 Go to diff View file
M src/common/User/Account/ChangeAvatarController.php +3 โˆ’0 Go to diff View file
M src/common/User/Account/DisplayAccountInformationController.php +3 โˆ’1 Go to diff View file
M src/common/User/Account/UpdateAccountInformationController.php +3 โˆ’1 Go to diff View file
M src/common/User/Account/UserAvatarSaver.php +10 โˆ’9 Go to diff View file
M src/common/User/Admin/UserPresenter.php +3 โˆ’2 Go to diff View file
A src/common/User/Avatar/AvatarHashDao.php +56 โˆ’0 Go to diff View file
A src/common/User/Avatar/AvatarHashStorage.php +33 โˆ’0 Go to diff View file
A src/common/User/Avatar/AvatarHashStorageDeletor.php +27 โˆ’0 Go to diff View file
A src/common/User/Avatar/ComputeAvatarHash.php +34 โˆ’0 Go to diff View file
A src/common/User/Avatar/ProvideUserAvatarUrl.php +26 โˆ’0 Go to diff View file
A src/common/User/Avatar/UserAvatarUrlProvider.php +77 โˆ’0 Go to diff View file
M src/common/User/Profile/AvatarController.php +24 โˆ’8 Go to diff View file
M src/common/User/Profile/AvatarGenerator.php +7 โˆ’0 Go to diff View file
M src/common/User/Profile/ForceRegenerationDefaultAvatarCommand.php +7 โˆ’14 Go to diff View file
M src/common/User/REST/MinimalUserRepresentation.class.php +3 โˆ’2 Go to diff View file
M src/common/User/REST/UserRepresentation.class.php +3 โˆ’2 Go to diff View file
M src/common/User/REST/v1/UserResource.php +8 โˆ’2 Go to diff View file
M src/common/User/User.class.php +7 โˆ’15 Go to diff View file
M src/db/mysql/database_structure.sql +5 โˆ’0 Go to diff View file
A src/db/mysql/updates/2024/202410081635_add_user_avatar_hash_table.php +41 โˆ’0 Go to diff View file
M src/utils/tuleap.php +3 โˆ’1 Go to diff View file
M src/www/admin/approve_pending_users.php +4 โˆ’0 Go to diff View file
M src/www/admin/usergroup.php +4 โˆ’0 Go to diff View file
M src/www/my/index.php +5 โˆ’0 Go to diff View file
M src/www/project/admin/editugroup.php +9 โˆ’1 Go to diff View file
A tests/integration/tests/User/Avatar/AvatarHashDaoTest.php +51 โˆ’0 Go to diff View file
A tests/lib/Stubs/User/Avatar/AvatarHashStorageDeletorStub.php +48 โˆ’0 Go to diff View file
A tests/lib/Stubs/User/Avatar/AvatarHashStorageStub.php +59 โˆ’0 Go to diff View file
A tests/lib/Stubs/User/Avatar/ProvideUserAvatarUrlStub.php +40 โˆ’0 Go to diff View file
M tests/psalm/tuleap-baseline.xml +194 โˆ’51 Go to diff View file
M tests/unit/Tuleap/User/Profile/ForceRegenerationDefaultAvatarCommandTest.php +4 โˆ’1 Go to diff View file
M tests/unit/common/Dashboard/Project/FirstTimerPresenterBuilderTest.php +5 โˆ’0 Go to diff View file
M tests/unit/common/Dashboard/User/FirstTimerPresenterBuilderTest.php +4 โˆ’0 Go to diff View file
M tests/unit/common/InviteBuddy/Admin/InvitedByPresenterBuilderTest.php +2 โˆ’0 Go to diff View file
M tests/unit/common/JWT/generators/GeneratorBuilderTest.php +6 โˆ’5 Go to diff View file
M tests/unit/common/JWT/generators/MercureJWTGeneratorBuilderTest.php +7 โˆ’6 Go to diff View file
M tests/unit/common/JWT/generators/MercureJWTGeneratorImplTest.php +2 โˆ’1 Go to diff View file
M tests/unit/common/Project/Admin/ProjectUGroup/Details/MembersPresenterBuilderTest.php +7 โˆ’1 Go to diff View file
M tests/unit/common/RealTimeMercure/ClientBuilderTest.php +3 โˆ’2 Go to diff View file
M tests/unit/common/RealTimeMercure/MercureClientTest.php +2 โˆ’1 Go to diff View file
M tests/unit/common/User/Account/UserAvatarSaverTest.php +10 โˆ’1 Go to diff View file
A tests/unit/common/User/Avatar/UserAvatarUrlProviderTest.php +142 โˆ’0 Go to diff View file