Default article rename bugfix #338
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The issue
To my understanding, the default article is special to CoreWiki - it serves as a home page, and cannot be deleted.
However, it can be renamed, and this causes unwanted functionality to be revealed.
The cause
The reason for this bug is that we're performing a slug check against a C# constant 'home-page', but the actual slug changes when the topic is modified.
Furthermore, this same check is duplicated across Pages and PageModels.
Proposed solution
The concept that an article is a default home page is something specific to our domain, so I have added an IsHomePage property to our Domain Article. For the time being it returns true if the article id is 1, which resolves the issues of 'Back to home' and 'Delete' buttons appearing when they should not.
In addition, by adding an IsHomePage property to the necessary Dtos, and letting AutoMapper take care of the rest, we are enabling ourselves to control the logic of identifying the default article in a single place - the domain object. 🎉