U4-8569 - Saving a member type changes the UniqueId of custom properties and tabs

Created by Sebastiaan Janssen 07 Jun 2016, 10:05:42 Updated by Shannon Deminick 20 Jun 2016, 09:19:10

Tags: Backport

When you save a member type after changing properties on the member type, all of the custom properties for that membertype in the CmsPropertyType table get a different UniqueId.

This is a problem for Courier because Courier is built to match up the UniqueId field between two environments. If the UniqueId field for the property matches the UniqueId on the other end then it must be the same property. But, because the UniqueId changes on either environment, it cannot make a match any more. This results in severe data loss, when Courier transfers a property on the membertype to the next environment, it deletes any existing data for that custom property due to the UniqueId problem.

This issue affects users of Umbraco who deploy their member types using Courier or Umbraco as a Service. This issue may also affect third party plugins / packages that attempt to transfer member types using the UniqueId (we're not aware of packages that do this).

Comments

Shannon Deminick 07 Jun 2016, 10:20:59

For review: 50f4bbdd1ee4ed9960db16e703e4714dd50fb93c

This fixes the member property type's UniqueID SQL and Mapping. This adds lots of asserts to the unit tests for each property returned from the repositories.


Shannon Deminick 08 Jun 2016, 07:47:26

Next one for review: 38e59373c657404fbfba43d6d50f3fb08977c47f

This fixes the property group unique id mappings


Priority: Major

Type: Bug

State: Fixed

Assignee:

Difficulty: Normal

Category:

Backwards Compatible: True

Fix Submitted:

Affected versions: 7.3.0, 7.4.0, 7.3.1, 7.3.2, 7.3.3, 7.3.4, 7.4.1, 7.3.5, 7.3.6, 7.3.7, 7.3.8, 7.4.2, 7.4.3

Due in version: 7.5.0

Sprint: Sprint 36

Story Points:

Cycle: