PowerPoint.SensitivityLabelTryUpdateOptions interface
Примечание
Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.
Предоставляет варианты для SensitivityLabel.tryToUpdate.
Комментарии
Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)
Используется
Примеры
// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/preview-apis/manage-sensitivity-labels.yaml
// Apply the selected sensitivity label with the chosen ABAC attribute values.
await PowerPoint.run(async (context) => {
const labelId = (document.getElementById("label-id") as HTMLSelectElement).value;
if (!labelId) {
console.warn("Get available labels and select a label first.");
return;
}
const attributeControls = document.getElementById("abac-attributes")
.querySelectorAll<HTMLSelectElement>("select");
if (attributeControls.length === 0) {
console.warn("Get catalog attributes and select attribute values first.");
return;
}
const labelCatalog: PowerPoint.SensitivityLabelsCatalog = context.sensitivityLabelsCatalog;
if (!labelCatalog) {
console.warn("The sensitivity label catalog isn't available.");
return;
}
labelCatalog.load("getLabelingCapabilities");
await context.sync();
if (labelCatalog.getLabelingCapabilities.indexOf(PowerPoint.LabelingCapability.attributeBasedAccessControlEnabled) === -1) {
console.warn("ABAC attributes aren't enabled or available for the current user.");
return;
}
// Refresh the catalog to validate selections against the current policy.
const catalogAttributes: OfficeExtension.ClientResult<PowerPoint.SensitivityLabelAbacAttribute[]> =
labelCatalog.getAttributes();
await context.sync();
const selectedAttributes: PowerPoint.SensitivityLabelAbacAttribute[] = [];
for (const select of Array.from(attributeControls)) {
const selectedIds = Array.from(select.selectedOptions)
.map((option) => option.value).filter((id) => id !== "");
if (selectedIds.length === 0) {
continue;
}
const attribute: PowerPoint.SensitivityLabelAbacAttribute | undefined =
catalogAttributes.value.find((attribute) => attribute.displayName === select.name);
if (!attribute || !attribute.isActive || (!attribute.isMultiValued && selectedIds.length > 1)) {
console.warn("The attribute selections are no longer valid. Get catalog attributes and select values again.");
return;
}
const selectedValues: PowerPoint.SensitivityLabelAbacAttributeValue[] =
attribute.values.filter((value) => value.isActive && selectedIds.indexOf(value.id) !== -1);
if (selectedValues.length !== selectedIds.length) {
console.warn("The attribute selections are no longer valid. Get catalog attributes and select values again.");
return;
}
const selectedAttribute: PowerPoint.SensitivityLabelAbacAttribute = {
...attribute,
values: selectedValues
};
selectedAttributes.push(selectedAttribute);
}
if (selectedAttributes.length === 0) {
console.warn("Select at least one ABAC attribute value first.");
return;
}
const options: PowerPoint.SensitivityLabelTryUpdateOptions = {
abacAttributes: selectedAttributes
};
const presentation: PowerPoint.Presentation = context.presentation;
const presentationLabel: PowerPoint.SensitivityLabel = presentation.sensitivityLabel;
const updateResult: OfficeExtension.ClientResult<PowerPoint.SensitivityLabelUpdateResult> =
presentationLabel.tryToUpdate(labelId, options);
await context.sync();
if (updateResult.value.status === PowerPoint.SensitivityLabelUpdateStatus.success) {
console.log("Applied the sensitivity label and ABAC attributes to the presentation.");
} else {
console.error(`The sensitivity label wasn't applied. Status: ${updateResult.value.status}`);
}
});
Свойства
| abac |
Если да, укажите атрибуты управления доступом на основе атрибутов (ABAC), которые будут применяться к метке. Должно быть опущено или пусто для меток, которые не поддерживают ABAC; В противном случае результат обновления будет иметь значение |
Сведения о свойстве
abacAttributes
Примечание
Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.
Если да, укажите атрибуты управления доступом на основе атрибутов (ABAC), которые будут применяться к метке. Должно быть опущено или пусто для меток, которые не поддерживают ABAC; В противном случае результат обновления будет иметь значение status .SensitivityLabelUpdateStatus.abacAttributesNotAllowed Обязательный, если целевая метка поддерживает ABAC и SensitivityLabelDetails.isAbacAttributesRequired имеет значение true.
abacAttributes?: PowerPoint.SensitivityLabelAbacAttribute[];
Значение свойства
Комментарии
Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)