Custom Capabilities (Content Store only)

A CUE capability is a unit of CUE functionality that can be enabled or disabled for individual users. This makes it possible for different users to see different versions of CUE, customized to match their role. A house journalist, for example, may be granted access to different functionality from an editor or a freelance journalist. All the standard side panels and metadata panels in CUE are defined as capabilities and can therefore be either hidden or shown based on a user's role.

If you have extended CUE with your own web components, then you can also define custom capabilities that will allow them to be enabled and disabled in the same way as the built-in functionality. A custom capability in CUE is simply a name that you assign to a web component by setting a property in its configuration file. Here, for example, is a side panel web component configuration that includes a capability definition:

sidePanels:
  - id: "twitter-home-panel"
    name: "Twitter Timelines"
    directive: "cue-custom-panel-loader"
    isAngular: true
    webComponent:
      modulePath: "webcomponents/twitter/twitter-home-panel.js"
      icon: "twitter-home-panel-icon"
    mimeTypes: []
    homeScreen: true
    metadata: []
    active: false
    order: 705
    capability: "twitter-panel"

Here is a metadata panel web component configuration with a capability definition:

 editors:
  metadata:
    - name: "storyline-stat"
      directive: "storyline-stat"
      cssClass: "storyline-stat"
      title: "Storyline Stat" #translate
      webComponent:
        modulePath: "webcomponents/storyline/storyline-stat.js"
        icon: "storyline-stat-icon"
      mimeTypes: ["x-ece/story", "x-ece/new-content; type=story"]
      order: 731
      capability: "storyline-stat"

You can add a capability property like this to any side panel or metadata panel configuration (but not to a custom field editor configuration). Your capability name must not clash with any of the built-in capability names. All the built-in capabilities have names that start with cue-, so just avoid this prefix in your names. If you have a group of extensions that are so closely related that they can be seen as a single piece of functionality, then you can give them all the same capability name: it will then be possible to enable/disable them as a group.

The management of user access to CUE capabilities is a Content Store responsibility, so once you have defined your custom capabilities in CUE, you will need to add some corresponding configurations to the Content Store and then grant selected users access to the capabilities using Web Studio. For information about how to do these things, see Capability Definitions and Capabilities.