Interface ServicePermission

All Known Subinterfaces:
ServicePermissionForHierarchy

public interface ServicePermission
Attached to a legacy user service definition, this interface specifies the conditions under which this service can be executed.

From release 5.8.0, it is strongly advised to use the new UserService API, which allows to use the more powerful ServicePermissionRule interface. Refer to the current documentation on user services for more information.

Data model definition

A service permission must be declared within a Legacy user services declaration, in the attribute class:

 <osd:service
    resourcePath="/myFirstPage.jsp"
    class="com.foo.MyPermission" />
 
where com.foo.MyPermission is the fully qualified name of a class implementing this interface. It is also possible to set additional JavaBean properties:
 <osd:service
    resourcePath="/myFirstPage.jsp"
    class="com.foo.MyPermission" >
         <param1>...</param1>
         <param2>...</param2>
 </osd:service>
 
where param1 and param2 are JavaBean properties of the class specified.

For more information, see the JavaBean specification.

Life cycle

  1. When the data model is loaded, on each node that declares a specific permission, the class specified is instantiated through its default constructor and the JavaBean property setters are called (in the example above, setParam1(...) and setParam2(...)).
  2. During the operational phase: the method getPermission(SchemaNode, Adaptation, Session) is called each time the associated service is potentially displayed in a user interface session.
See Also:
  • Method Details

    • getPermission

      ActionPermission getPermission(SchemaNode aNode, Adaptation aDataSetOrRecord, Session aSession)

      Returns a permission for the specified arguments.

      If this ServicePermission is defined for a user service on a record or record selection, this method is called in multiple contexts:

      1. To evaluate the permission to display in the table view toolbar; in this case, aDataSetOrRecord is the current dataset.
      2. To evaluate the permission to display in the record view, or as a button embedded in the row of a tabular view; in this case, aDataSetOrRecord is the current record.
      3. To evaluate the permission to execute, in any context; in this case, aDataSetOrRecord is the current record.

        If the service is invoked on a selection of records, it is evaluated for each of them and the evaluation will stop on the first 'disabled' result.

      Multi-threading

      For a single instance of this interface, this method can be called concurrently by several threads.

      Parameters:
      aNode - the current node on which the service is to be executed, null if the execution is at the whole dataset level.
      aDataSetOrRecord - the current dataset or record on which the service is to be executed.
      aSession - the current session in which the permission has to be resolved.