AppSuite:Capabilities: Difference between revisions
From Open-Xchange
No edit summary |
|||
Line 5: | Line 5: | ||
== Set a capability == | == Set a capability == | ||
First, disable it for everyone as default. In <tt>/opt/open-xchange/[myproduct].properties</tt>: | First, disable it for everyone as default (or enable it for everyone, depending on what your aim is). In <tt>/opt/open-xchange/[myproduct].properties</tt>: | ||
com.openexchange.capability.[myproduct]=false # off for everyone | com.openexchange.capability.[myproduct]=false # off for everyone | ||
Line 16: | Line 16: | ||
Or capability to a context set: | Or give the capability to a context set: | ||
changecontext -c ... --taxonomy/types=premium | changecontext -c ... --taxonomy/types=premium |
Revision as of 14:21, 9 January 2014
Synopsis: How to use capabilities so that your new AppSuite plugin can be enabled or disabled.
Set a capability
First, disable it for everyone as default (or enable it for everyone, depending on what your aim is). In /opt/open-xchange/[myproduct].properties:
com.openexchange.capability.[myproduct]=false # off for everyone
Then enable it only for a specific user:
changeuser ... --config/com.openexchange.capability.[myproduct]=true
Or for a full context:
changecontext -c ... --config/com.openexchange.capability.[myproduct]=true
Or give the capability to a context set:
changecontext -c ... --taxonomy/types=premium
in /opt/open-xchange/etc/contextSets/premium.yml:
premium: com.openexchange.config.capability.[myproduct].properties: true withTags: premium
Query capabilities via the HTTP API
Query:
GET /appsuite/api/capabilities?action=all&session=991fd40f635b45...
Response:
{"data":[{"id":"oauth","attributes":{}},{"id":"webmail","attributes":{}},{"id":"document_preview","attributes":{}},{"id":"printing","attributes":{}},{"id":"spreadsheet","attributes":{}},{"id":"gab","attributes":{}},{"id":"multiple_mail_accounts","attributes":{}},{"id":"publication","attributes":{}},{"id":"rss_bookmarks","attributes":{}},{"id":"linkedin","attributes":{}},{"id":"filestore","attributes":{}},{"id":"ical","attributes":{}},{"id":"rt","attributes":{}},{"id":"olox20","attributes":{}},{"id":"forum","attributes":{}},{"id":"active_sync","attributes":{}},{"id":"conflict_handling","attributes":{}},{"id":"rss_portal","attributes":{}},{"id":"oxupdater","attributes":{}},{"id":"infostore","attributes":{}},{"id":"contacts","attributes":{}},{"id":"collect_email_addresses","attributes":{}},{"id":"facebook","attributes":{}},{"id":"drive","attributes":{}},{"id":"rss","attributes":{}},{"id":"pinboard_write_access","attributes":{}},{"id":"mobility","attributes":{}},{"id":"calendar","attributes":{}},{"id":"participants_dialog","attributes":{}},{"id":"edit_public_folders","attributes":{}},{"id":"text","attributes":{}},{"id":"groupware","attributes":{}},{"id":"msisdn","attributes":{}},{"id":"carddav","attributes":{}},{"id":"tasks","attributes":{}},{"id":"portal","attributes":{}},{"id":"mailfilter","attributes":{}},{"id":"read_create_shared_folders","attributes":{}},{"id":"vcard","attributes":{}},{"id":"pim","attributes":{}},{"id":"caldav","attributes":{}},{"id":"projects","attributes":{}},{"id":"usm","attributes":{}},{"id":"webdav","attributes":{}},{"id":"dev","attributes":{}},{"id":"delegate_tasks","attributes":{}},{"id":"freebusy","attributes":{}},{"id":"subscription","attributes":{}},{"id":"linkedinPlus","attributes":{}},{"id":"autologin","attributes":{}},{"id":"webdav_xml","attributes":{}},{"id":"twitter","attributes":{}}]}
Here id is the name of the capability.
Query capabilities in the UI
require(['io.ox/core/capabilities'], function (cap) { if cap.has('[myproduct]' { ... } );
Require capabilities in a manifest
{ namespace: ... requires: '[myproduct]' }
The plugin will only be loaded if the capability is set for the specific user.
Further notes
- For testing purposes, you can use the &cap=[myproduct] url parameter to enable a capability. Remember to refresh.
- If you want to know about existing capabilities and the way they are used for upsell, see AppSuite:Upsell#Capabilities_and_Upsell_triggers