/Raven.Database/Bundles/Encryption/Plugin/EncryptionSettingsPutTrigger.cs
C# | 33 lines | 30 code | 3 blank | 0 comment | 6 complexity | add4a05d7791d0aceb8b012a9e3e80cc MD5 | raw file
Possible License(s): MPL-2.0-no-copyleft-exception, BSD-3-Clause, CC-BY-SA-3.0
- 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;
- }
- }
- }