public virtual bool CanWriteProperty(string propertyName) { bool result = true; if (AuthorizationRules.GetRolesForProperty( propertyName, AccessType.WriteAllowed).Length > 0) { // some users are explicitly granted write access // in which case all other users are denied if (!AuthorizationRules.IsWriteAllowed(propertyName)) { result = false; } } else if (AuthorizationRules.GetRolesForProperty( propertyName, AccessType.WriteDenied).Length > 0) { // some users are explicitly denied write access if (AuthorizationRules.IsWriteDenied(propertyName)) { result = false; } } return(result); }