PowerPoint.SensitivityLabelsCatalog class

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

В этой статье представлены методы для проверки состояния каталога меток конфиденциальности в PowerPoint и извлечения всех доступных меток конфиденциальности, если каталог включен.

Extends

Свойства

context

Контекст запроса, связанный с объектом. Это соединяет процесс надстройки с процессом основного приложения Office.

getLabelingCapabilities

Получает возможности узла для меток конфиденциальности в PowerPoint.

getLabelingCapability

Методы

getAttributes()

Получает атрибуты управления доступом на основе атрибутов (ABAC), доступные текущему пользователю.

getLabels()

Получает метки конфиденциальности, доступные текущему пользователю.

load(options)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNames)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNamesAndPaths)

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

newObject(context)

Создание нового экземпляра PowerPoint.SensitivityLabelsCatalog объекта.

toJSON()

Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringify, в свою очередь, вызывает toJSON метод переданного ему объекта.) В то время как исходный PowerPoint.SensitivityLabelsCatalog объект является объектом API, toJSON метод возвращает простой объект JavaScript (типизированный как PowerPoint.Interfaces.SensitivityLabelsCatalogData), который содержит неглубокие копии любых загруженных дочерних свойств исходного объекта.

Сведения о свойстве

context

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Контекст запроса, связанный с объектом. Это соединяет процесс надстройки с процессом основного приложения Office.

context: RequestContext;

Значение свойства

getLabelingCapabilities

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Получает возможности узла для меток конфиденциальности в PowerPoint.

readonly getLabelingCapabilities: PowerPoint.LabelingCapability[];

Значение свойства

Комментарии

Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)

getLabelingCapability

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

readonly getLabelingCapability: PowerPoint.LabelingCapability | "NoLicense" | "LabelingDisabled" | "LabelingPolicyNotFound" | "LabelingEnabled" | "AttributeBasedAccessControlEnabled";

Значение свойства

PowerPoint.LabelingCapability | "NoLicense" | "LabelingDisabled" | "LabelingPolicyNotFound" | "LabelingEnabled" | "AttributeBasedAccessControlEnabled"

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/preview-apis/manage-sensitivity-labels.yaml

await PowerPoint.run(async (context) => {
  // Check whether sensitivity labeling is available for the current user.
  const labelCatalog: PowerPoint.SensitivityLabelsCatalog = context.sensitivityLabelsCatalog;
  if (!labelCatalog) {
    console.warn("The sensitivity label catalog isn't available.");
    return;
  }

  labelCatalog.load("getLabelingCapability");
  await context.sync();

  switch (labelCatalog.getLabelingCapability) {
    case PowerPoint.LabelingCapability.labelingEnabled:
      console.log("Sensitivity labeling is enabled.");
      break;
    case PowerPoint.LabelingCapability.labelingDisabled:
      console.log("Sensitivity labeling is disabled.");
      break;
    case PowerPoint.LabelingCapability.labelingPolicyNotFound:
      console.log("No sensitivity labeling policy was found.");
      break;
    case PowerPoint.LabelingCapability.noLicense:
      console.log("The current user doesn't have a valid sensitivity labeling license.");
      break;
    default:
      console.log(`Unknown labeling capability: ${labelCatalog.getLabelingCapability}`);
      break;
  }
});

Сведения о методе

getAttributes()

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Получает атрибуты управления доступом на основе атрибутов (ABAC), доступные текущему пользователю.

getAttributes(): OfficeExtension.ClientResult<PowerPoint.SensitivityLabelAbacAttribute[]>;

Возвращаемое значение

Комментарии

Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/preview-apis/manage-sensitivity-labels.yaml

// Get available ABAC attributes and describe the kind of value each attribute accepts.
const container = document.getElementById("abac-attributes");
while (container.firstChild) {
  container.removeChild(container.firstChild);
}
await PowerPoint.run(async (context) => {
  const labelCatalog: PowerPoint.SensitivityLabelsCatalog = context.sensitivityLabelsCatalog;
  if (!labelCatalog) {
    console.warn("The sensitivity label catalog isn't available.");
    return;
  }

  labelCatalog.load("getLabelingCapabilities");
  await context.sync();

  const capabilities: PowerPoint.LabelingCapability[] = labelCatalog.getLabelingCapabilities;
  if (capabilities.indexOf(PowerPoint.LabelingCapability.attributeBasedAccessControlEnabled) === -1) {
    console.warn("ABAC attributes aren't enabled or available for the current user.");
    return;
  }

  const catalogAttributes: OfficeExtension.ClientResult<PowerPoint.SensitivityLabelAbacAttribute[]> =
    labelCatalog.getAttributes();
  await context.sync();

  if (catalogAttributes.value.length === 0) {
    console.log("No ABAC attributes are available in the sensitivity label catalog.");
    return;
  }

  console.log("Available ABAC attributes:");
  catalogAttributes.value.forEach((attribute: PowerPoint.SensitivityLabelAbacAttribute) => {
    let dataTypeDescription: string;
    switch (attribute.dataType) {
      case PowerPoint.SensitivityLabelAbacAttributeDataType.booleanValue:
        dataTypeDescription = "Boolean";
        break;
      case PowerPoint.SensitivityLabelAbacAttributeDataType.dateValue:
        dataTypeDescription = "Date";
        break;
      case PowerPoint.SensitivityLabelAbacAttributeDataType.numberValue:
        dataTypeDescription = "Number";
        break;
      case PowerPoint.SensitivityLabelAbacAttributeDataType.stringValue:
        dataTypeDescription = "String";
        break;
      case PowerPoint.SensitivityLabelAbacAttributeDataType.unknown:
        dataTypeDescription = "Unknown";
        break;
      default:
        dataTypeDescription = `Unrecognized (${attribute.dataType})`;
        break;
    }

    console.log(`ABAC attribute: ${attribute.displayName}`, {
      dataType: attribute.dataType,
      dataTypeDescription,
      displayOrder: attribute.displayOrder,
      isActive: attribute.isActive,
      isMultiValued: attribute.isMultiValued,
      values: attribute.values.map((attributeValue: PowerPoint.SensitivityLabelAbacAttributeValue) => ({
        displayName: attributeValue.displayName,
        displayOrder: attributeValue.displayOrder,
        id: attributeValue.id,
        isActive: attributeValue.isActive
      }))
    });
  });

  addAttributeOptions(catalogAttributes.value);
});

getLabels()

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Получает метки конфиденциальности, доступные текущему пользователю.

getLabels(): PowerPoint.SensitivityLabelDetailsCollection;

Возвращаемое значение

Текущий объект.

Комментарии

Набор API: PowerPointApi BETA (ТОЛЬКО ПРЕДВАРИТЕЛЬНАЯ ВЕРСИЯ)

Примеры

// Link to full sample: https://raw.githubusercontent.com/OfficeDev/office-js-snippets/prod/samples/powerpoint/preview-apis/manage-sensitivity-labels.yaml

await PowerPoint.run(async (context) => {
  const labelSelect = document.getElementById("label-id") as HTMLSelectElement;
  labelSelect.options.length = 0;
  const placeholder = document.createElement("option");
  placeholder.textContent = "Select a label";
  placeholder.value = "";
  labelSelect.add(placeholder);

  // Get the sensitivity labels that the organization published for the current user.
  const labelCatalog: PowerPoint.SensitivityLabelsCatalog = context.sensitivityLabelsCatalog;
  if (!labelCatalog) {
    console.warn("The sensitivity label catalog isn't available.");
    return;
  }

  const availableLabels: PowerPoint.SensitivityLabelDetailsCollection = labelCatalog.getLabels();
  // Load the properties and sublabels for every label in the catalog.
  availableLabels.load(
    "items/color,items/id,items/isAbacAttributesRequired,items/isAbacEnabled,items/isEnabled," +
    "items/name,items/order,items/protectionType,items/siteId,items/tooltip," +
    "items/children/items/id,items/children/items/name,items/children/items/isEnabled"
  );
  await context.sync();

  if (availableLabels.items.length === 0) {
    console.log("No sensitivity labels are available for the current user.");
    return;
  }

  // Display the loaded properties for each available label.
  console.log("Available sensitivity labels:");
  availableLabels.items.forEach((labelDetails: PowerPoint.SensitivityLabelDetails) => {
    const childLabels = labelDetails.children && labelDetails.children.items.length
      ? labelDetails.children.items
          .map((childLabel: PowerPoint.SensitivityLabelDetails) => `${childLabel.name} (${childLabel.id})`)
          .join(", ")
      : "None";

    console.log(
      `\n${labelDetails.name}\n` +
        `  ID: ${labelDetails.id}\n` +
        `  Site ID: ${labelDetails.siteId}\n` +
        `  Tooltip: ${labelDetails.tooltip}\n` +
        `  Color: ${labelDetails.color}\n` +
        `  Enabled: ${labelDetails.isEnabled ? "Yes" : "No"}\n` +
        `  Display order: ${labelDetails.order}\n` +
        `  ABAC enabled: ${labelDetails.isAbacEnabled ? "Yes" : "No"}\n` +
        `  ABAC attributes required: ${labelDetails.isAbacAttributesRequired ? "Yes" : "No"}\n` +
        `  Sublabels: ${childLabels}\n` +
        `  Protection type: ${labelDetails.protectionType}`
    );
  });

  addLabelOptions(availableLabels);
});

load(options)

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(options?: PowerPoint.Interfaces.SensitivityLabelsCatalogLoadOptions): PowerPoint.SensitivityLabelsCatalog;

Параметры

options
PowerPoint.Interfaces.SensitivityLabelsCatalogLoadOptions

Предоставляет параметры для загружаемых свойств объекта.

Возвращаемое значение

load(propertyNames)

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNames?: string | string[]): PowerPoint.SensitivityLabelsCatalog;

Параметры

propertyNames

string | string[]

Строка с разделителями-запятыми или массив строк, которые определяют свойства для загрузки.

Возвращаемое значение

load(propertyNamesAndPaths)

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Добавляет в очередь команду для загрузки указанных свойств объекта. Перед чтением свойств требуется вызвать метод context.sync().

load(propertyNamesAndPaths?: {
            select?: string;
            expand?: string;
        }): PowerPoint.SensitivityLabelsCatalog;

Параметры

propertyNamesAndPaths

{ select?: string; expand?: string; }

propertyNamesAndPaths.select — это строка с разделителями-запятыми, указывающая загружаемые свойства, и строка propertyNamesAndPaths.expand через запятую, указывающая свойства навигации для загрузки.

Возвращаемое значение

newObject(context)

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Создание нового экземпляра PowerPoint.SensitivityLabelsCatalog объекта.

static newObject(context: OfficeExtension.ClientRequestContext): PowerPoint.SensitivityLabelsCatalog;

Параметры

Возвращаемое значение

toJSON()

Примечание

Этот API предоставляется в качестве предварительной версии для разработчиков и может быть изменен на основе полученных нами отзывов. Не используйте этот API в рабочей среде.

Переопределяет метод JavaScript toJSON() , чтобы обеспечить более полезные выходные данные при передаче объекта API в JSON.stringify(). (JSON.stringify, в свою очередь, вызывает toJSON метод переданного ему объекта.) В то время как исходный PowerPoint.SensitivityLabelsCatalog объект является объектом API, toJSON метод возвращает простой объект JavaScript (типизированный как PowerPoint.Interfaces.SensitivityLabelsCatalogData), который содержит неглубокие копии любых загруженных дочерних свойств исходного объекта.

toJSON(): PowerPoint.Interfaces.SensitivityLabelsCatalogData;

Возвращаемое значение