/Raven.Database/Bundles/Encryption/Plugin/EncryptionSettingsPutTrigger.cs
https://github.com/nwendel/ravendb · C# · 33 lines · 30 code · 3 blank · 0 comment · 6 complexity · add4a05d7791d0aceb8b012a9e3e80cc MD5 · raw file
- using System;
- using System.Collections.Generic;
- using System.ComponentModel.Composition;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Raven.Abstractions.Data;
- using Raven.Bundles.Encryption.Settings;
- using Raven.Database.Plugins;
- using Raven.Json.Linq;
-
- namespace Raven.Bundles.Encryption.Plugin
- {
- [InheritedExport(typeof(AbstractPutTrigger))]
- [ExportMetadata("Order", 10000)]
- [ExportMetadata("Bundle", "Encryption")]
- public class EncryptionSettingsPutTrigger : AbstractPutTrigger
- {
- public override VetoResult AllowPut(string key, RavenJObject document, RavenJObject metadata, TransactionInformation transactionInformation)
- {
- if (key == Constants.InDatabaseKeyVerificationDocumentName)
- {
- if (Database == null) // we haven't been initialized yet
- return VetoResult.Allowed;
-
- if (Database.Documents.Get(key, null) != null)
- return VetoResult.Deny("The encryption verification document already exists and cannot be overwritten.");
- }
-
- return VetoResult.Allowed;
- }
- }
- }