Twitter Image

Sharing and the missing Append to Right

Written by Stéphane Dorrekens
Friday, 30 March 2012 09:44

I got an issue yesterday related to sharing and the Append To right.
Usually, it takes always an extra time to remember exactly what the difference is between Append and Append to, the trick part being to remember that you Append something and you Append it To something else, here's a link to a nice chart about it.

But the issue is that we wanted to use the Append To right in a sharing situation; nothing complex at first sight but see the following screenshot

There's an Append right but no Append To.
My first idea was that Append to right on sharing was not supported but a quick look in the SDK shown that the GrantAccessRequest uses the standard AccessMask and thus supports the AppendTo Right. Here's a code snippet directly from the SDK.

GrantAccessRequest grantAccessRequest = new GrantAccessRequest
PrincipalAccess = new PrincipalAccess
Principal = new EntityReference(Team.EntityLogicalName, _teamId),
AccessMask = AccessRights.ReadAccess | AccessRights.AppendToAccess
Target = new EntityReference(Queue.EntityLogicalName, _queueId)

So, why not display it in the sharing window abut only display the Append right ?

Being a bit curious, as always, I went to the Dlg_ aspx page serving the window and from its Javascript you can infer that the window handles Append and Append To in a joined way. In short, when you select Append in the sharing window, both Append and AppendTo rights are given to the record and only when both rights are present, will it show the 'Sharing Append' has flagged. It's really confusing as you can perfectly share only the AppendTo or Append right onto an object with code in a supported way but this shared right will not be displayed in the sharing window...

It is definitely a 'By Design' feature but quite a bit misleading as the cumulative right is only named 'Append' in the window. If anyone would point me on the business reason for this, it would be most helpfull.

Anyway, for this particular issue the solution was to implement a custom workflow activity to handle the sharing of only the AppendTo right, the drawback being that it's not displayed in the standard sharing window; we may end up custom coding a specific screen or report just for this.