ComponentManager create-items message, encrypt server extensions for backup files, batch manager user prefs permission
This commit is contained in:
@@ -36,7 +36,9 @@ class ItemParams {
|
|||||||
|
|
||||||
var params = {uuid: this.item.uuid, content_type: this.item.content_type, deleted: this.item.deleted, created_at: this.item.created_at};
|
var params = {uuid: this.item.uuid, content_type: this.item.content_type, deleted: this.item.deleted, created_at: this.item.created_at};
|
||||||
if(!this.item.errorDecrypting) {
|
if(!this.item.errorDecrypting) {
|
||||||
if(this.keys && !this.item.doNotEncrypt()) {
|
// Items should always be encrypted for export files. Only respect item.doNotEncrypt for remote sync params;
|
||||||
|
var doNotEncrypt = this.item.doNotEncrypt() && !this.forExportFile;
|
||||||
|
if(this.keys && !doNotEncrypt) {
|
||||||
var encryptedParams = EncryptionHelper.encryptItem(this.item, this.keys, this.version);
|
var encryptedParams = EncryptionHelper.encryptItem(this.item, this.keys, this.version);
|
||||||
_.merge(params, encryptedParams);
|
_.merge(params, encryptedParams);
|
||||||
|
|
||||||
|
|||||||
@@ -286,6 +286,7 @@ class ComponentManager {
|
|||||||
deassociate-item
|
deassociate-item
|
||||||
clear-selection
|
clear-selection
|
||||||
create-item
|
create-item
|
||||||
|
create-items
|
||||||
delete-items
|
delete-items
|
||||||
set-component-data
|
set-component-data
|
||||||
install-local-component
|
install-local-component
|
||||||
@@ -301,8 +302,8 @@ class ComponentManager {
|
|||||||
this.handleSetComponentDataMessage(component, message);
|
this.handleSetComponentDataMessage(component, message);
|
||||||
} else if(message.action === "delete-items") {
|
} else if(message.action === "delete-items") {
|
||||||
this.handleDeleteItemsMessage(component, message);
|
this.handleDeleteItemsMessage(component, message);
|
||||||
} else if(message.action === "create-item") {
|
} else if(message.action === "create-items" || message.action === "create-item") {
|
||||||
this.handleCreateItemMessage(component, message);
|
this.handleCreateItemsMessage(component, message);
|
||||||
} else if(message.action === "save-items") {
|
} else if(message.action === "save-items") {
|
||||||
this.handleSaveItemsMessage(component, message);
|
this.handleSaveItemsMessage(component, message);
|
||||||
} else if(message.action === "toggle-activate-component") {
|
} else if(message.action === "toggle-activate-component") {
|
||||||
@@ -470,26 +471,39 @@ class ComponentManager {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
handleCreateItemMessage(component, message) {
|
handleCreateItemsMessage(component, message) {
|
||||||
|
var responseItems = message.data.item ? [message.data.item] : message.data.items;
|
||||||
|
let uniqueContentTypes = _.uniq(responseItems.map((item) => {return item.content_type}));
|
||||||
var requiredPermissions = [
|
var requiredPermissions = [
|
||||||
{
|
{
|
||||||
name: "stream-items",
|
name: "stream-items",
|
||||||
content_types: [message.data.item.content_type]
|
content_types: uniqueContentTypes
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
|
|
||||||
this.runWithPermissions(component, requiredPermissions, () => {
|
this.runWithPermissions(component, requiredPermissions, () => {
|
||||||
var responseItem = message.data.item;
|
this.removePrivatePropertiesFromResponseItems(responseItems, component);
|
||||||
this.removePrivatePropertiesFromResponseItems([responseItem], component);
|
var processedItems = [];
|
||||||
var item = this.modelManager.createItem(responseItem);
|
for(let responseItem of responseItems) {
|
||||||
if(responseItem.clientData) {
|
var item = this.modelManager.createItem(responseItem);
|
||||||
item.setDomainDataItem(component.url || component.uuid, responseItem.clientData, ClientDataDomain);
|
if(responseItem.clientData) {
|
||||||
|
item.setDomainDataItem(component.url || component.uuid, responseItem.clientData, ClientDataDomain);
|
||||||
|
}
|
||||||
|
this.modelManager.addItem(item);
|
||||||
|
this.modelManager.resolveReferencesForItem(item, true);
|
||||||
|
item.setDirty(true);
|
||||||
|
processedItems.push(item);
|
||||||
}
|
}
|
||||||
this.modelManager.addItem(item);
|
|
||||||
this.modelManager.resolveReferencesForItem(item, true);
|
|
||||||
item.setDirty(true);
|
|
||||||
this.syncManager.sync("handleCreateItemMessage");
|
this.syncManager.sync("handleCreateItemMessage");
|
||||||
this.replyToMessage(component, message, {item: this.jsonForItem(item, component)})
|
|
||||||
|
let reply =
|
||||||
|
message.action == "save-item" ?
|
||||||
|
{item: this.jsonForItem(processedItems[0], component)}
|
||||||
|
:
|
||||||
|
{items: processedItems.map((item) => {return this.jsonForItem(item, component)})}
|
||||||
|
|
||||||
|
this.replyToMessage(component, message, reply)
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -135,7 +135,7 @@ class NativeExtManager {
|
|||||||
permissions: [
|
permissions: [
|
||||||
{
|
{
|
||||||
name: "stream-items",
|
name: "stream-items",
|
||||||
content_types: ["Note", "Tag", "SN|Component", "SN|Theme", "SF|Extension", "Extension", "SF|MFA", "SN|Editor"]
|
content_types: ["Note", "Tag", "SN|Component", "SN|Theme", "SF|Extension", "Extension", "SF|MFA", "SN|Editor", "SN|UserPreferences"]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user