title: Permissions (ACL) aware GUI in MVVM
body: <p>MVVM is based on bindings and commands. I understand that bindings for <code>IsEnabled</code>, <code>IsReadOnly</code>, <code>Visibility</code> and commands' <code>CanExecute</code> can help to implement GUI which will take permissions into account.<br/>
  Yet I have some doubts about this approach.</p>
  
  <p>The first one is the need to accompany each ACL-logic involved property of VM with <code>CanRead</code> | <code>CanWrite</code> property that can be bound to the corresponding control. This implies much infrustructure coding and XAML typing for bindings. Dynamic tooltips explaining the reason also can be added to the list.</p>
  
  <p>The second one is that mistyping in XAML can break security especially concerning read permissions: control will stay visible. This problem can be solved in most(not all) cases by the Busines Logic layer which leaves properties with deafult values. But on "the way back" (VM->BL) system must care only about allowed properties.</p>
  
  <p>Security is dubbed a crosscutting concern. I understand how AOP or DI with interception can help with security at BL level but I have no good ideas about implementing all this stuff for GUI in the context of MVVM design pattern.</p>
  
  <p>Could you share your experience of solving this problem, please.</p>