|Number of votes:||7|
I did a presentation in Oslo about a month ago and one thing in EPiServer 7.5 that I wanted to emphasize on is the support for the IMetadataAware attribute. This, in combination with implementing a ValidationAttribute is very powerful and in this blog post I’ll show an example on how this can be used. The goal is to create an attribute when you can control which roles are required to edit a specific property.
First, let us look on how we can make a property that makes the property read only in the editorial interface. Here’s the code for the attribute :
And the usage on the model like this:
Notice the rather odd group name “administrators2” just to make sure I’m not part of this group.
If we pop into the EPiServer UI, we can see that the editor has been disabled in the forms view:
In the On-Page edit view, the property looks editable but when clicking on the overlay, a read only editor is loaded. There has actually been a bug fix recently that removes the overlay entirely when the property is not editable that’s been sent for testing and will hopefully be release withing a week or two.
The code above is really simple and probably solves the customer requirements in most cases. But since this only affects the editorial interface, it is of course possible to post a fake property update to the server even without having the correct access. Let’s see how we can add server validation as well to the same attribute.
For demonstration purposes, we can comment out the line that makes the property readonly, and edit the property to validate that the server validation actually does work.