AdapTable enables developers to manage permissions, i.e. which Adaptable Functions are available in the UI for which users and in which form.
This is done through the Entitlements section of Predefined Config.
How Entitlements Work
Entitlements operate at the AdaptableFunction Level.
Full - Fully visible and editable
Hidden - Completely hidden from the user - does not appear in any menus, toolbars, tool panels etc.
Default Access Level
By default every AdaptableFunction has the Entitlement of Full.
However this behaviour can be changed through setting the
For instance, it can be set to 'Hidden' and then only AdaptableFunctions explicity permissioned in Entitlements will be available.
DefaultAccessLevel is set to 'Hidden', make sure to enable the Dashboard for access to Toolbars and Functions Dropdown.
There are 2 ways to provide Entitlements in Predefined Config:
This is the most straightforward way to set Entitlements - simply provide a list through the the
FunctionEntitlements property of Entitlements Predefined Config:
An alternative to a hardcoded list is to provide an implementation of the EntitlementLookUpFunction.
This function will be called each time an Entitlement is checked allowing developers to store entitlements on a remote permission server that can update in real time.
Provide a custom, named EntitlementLookUpFunction implementation in the User Functions section of Adaptable Options.
Reference that function by name in the Entitlements section of Predefined Config.
Some AdapTable Functions require additional conditions for it to be available in addition to setting the Entitlement.
These are usually supplied in Predefined Config or Adaptable Options. These include:
Team Sharing: the
enableTeamSharingproperty must be set to true in TeamSharingOptions
glue42: the glue42 Predefined Config must contain the glue42 object
ipushpull: the ipushpull Predefined Config must contain the ipushpull object
Entitlements work at the UI Level only.
This means that AdapTable will ensure that end users cannot see or access - throughout the AdapTable UI - elements like menus, toolbars, popups etc. in Functions to which they are not entitled.
However the Adaptable Api does not take notice of Entitlements, so anything that is managed programatically through code will ignore the User's entitlements.
To ensure that the Adaptable Api is not called for functions to which the user has no access, wrap those calls inside relevant EntitlementApi methods
Entitlements in AdapTable work at the Adaptable Function level.
However, sometimes a use case demands that while the Function has a 'Full' entitlement (i.e. it is editable), one particular object must be ReadOnly (i.e. cannot be deleted).
There is no property for the opposite use case - where the Function's Entitlement is 'ReadOnly' but one AdaptTable object should be 'Full'