载入中...
搜索中...
未找到
EditorPluginPermissions.h
浏览该文件的文档.
1#pragma once
2#include "common/Export.h"
3
4
7
8#include <map>
9#include <memory>
10#include <string>
11#include <vector>
12
13namespace eve::editor {
14
18 std::string plugin;
19 std::string capability;
20 std::string scope;
21 std::string decision = "ask";
22};
23
26 public virtual IEditableTarget,
29public:
31 explicit PluginPermissionTarget(std::string id);
33 TargetId targetId() const override { return TargetId(id_); }
35 TargetDescriptor describe() const override;
37 void* queryCapability(const CapabilityId& capability) override;
39 Result<void> applyDomainOperation(const DomainOperation& operation) override;
41 std::unique_ptr<IDomainOperationTarget> cloneDomainState() const override;
43 Result<void> commitDomainState(std::unique_ptr<IDomainOperationTarget> candidate) override;
45 std::vector<PluginPermissionGrant> grants() const;
47 Result<DomainOperation> makeSet(const PluginPermissionGrant& grant) const;
49 Result<DomainOperation> makeRemove(const StableId& id) const;
51 std::string decision(const std::string& plugin, const std::string& capability,
52 const std::string& scope) const;
54 EditorValue snapshotValue() const;
56 Result<void> loadSnapshot(const EditorValue& snapshot);
57private:
58 std::string id_;
59 std::map<StableId, PluginPermissionGrant> grants_;
60};
61
62} // namespace eve::editor
ActionParameterOperation operation
#define EVENGINE_API_ORCHESTRATION
Definition Export.h:111
JobScope scope
Move-only operation result carrying either a value or Status.
Definition Result.h:155
UUID-backed identifier adapter for legacy textual boundaries.
Definition Identity.h:314
Dirty region and revision shared by every editable document target.
Optional candidate/publish capability for atomic domain operations.
Editable-target capability that applies owning domain operations.
IEditableTarget public API.
Deterministic owning value tree shared by authoring hosts.
Revisioned plugin permission policy with reversible, auditable grants.
TargetId targetId() const override
Target id.
DomainOperation public API.
Stable discovery metadata exposed by every editable target.
Explicit project-owned permission decision for one plugin capability scope.