public interface UserPermissionProvider
UserPermissionProvider is used to
 provide customized permission setting of user. In addition to getting user permission setting 
 from customer's external security system, this interface also provides the ability
 to modify user permission setting in customer's external security system.| Modifier and Type | Method and Description | 
|---|---|
java.util.Hashtable | 
getUserPermissions(java.lang.String realmName,
                  java.lang.String resourcePath,
                  int versionNumber)
Gets all users' permission settings attached to a specified resource or 
 version node from customer's external security system. 
 | 
boolean | 
isEnableEdit()
Indicates whether customer's external security system will be modified by
 invoking some methods in  
UserPermissionProvider.In common cases, invoking setUserPermissions() should take effect on
 customer's external security system, and cause modification of external security
 system, this method should return true in such cases. | 
void | 
setUserPermissions(java.lang.String realmName,
                  java.lang.String userName,
                  java.lang.String resourcePath,
                  int versionNumber,
                  java.lang.String permissionString)
Sets users' permission settings for a specified resource or version node
 in customer's external security system. 
 | 
java.util.Hashtable getUserPermissions(java.lang.String realmName,
                                       java.lang.String resourcePath,
                                       int versionNumber)
                                throws JRCustomerException
realmName - the realm name.resourcePath - the resource path to specify a resource.versionNumber - the version number of the resource, A valid version number
     should be a positive integer. If versionNumber is less than 1,
     it means to get permission setting attached to the resource
     specified by resourcePath.Hashtable containing several user/permissions pairs
     to represent permissions attached to the specified resource/version. 
     In this Hashtable object, the key is user name, the value is a String
     object to represent permission setting for this user. This string's length is 7,
     and each character represents status of a specified permission. The available values are 
     jet.cs.api.CSPermission.ALLOW and jet.cs.api.CSPermission.DENY.Hashtable is:
     <userPermissionHt> ::= NULL | {<userName>, <permissionString>}...
       <userName> ::= a string of user name
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission, the value of DENY is 0, the value of
     ALLOW is 1. A permissionString has 7 characters and it can be like: 0110100JRCustomerException - If an error occurs during JReport server security
     system invoking this method, and the implementation thinks this error should be thrown
     to JReport server security system.void setUserPermissions(java.lang.String realmName,
                        java.lang.String userName,
                        java.lang.String resourcePath,
                        int versionNumber,
                        java.lang.String permissionString)
                 throws NoSuchUserException,
                        JRCustomerException
realmName - the realm name.userName - the user name to specify a user to set permissions.resourcePath - the resource path to specify a resource.versionNumber - the version number of the resource, A valid version number
     should be a positive integer. If versionNumber is less than 1,
     it means to set user permission for the resource specified 
     by resourcePath.permissionString - permission string to represent permissions for 
     this user. This string's length is 7, and each character represents status
     of a specified permission. The available values are
     jet.cs.api.CSPermission.ALLOW and jet.cs.api.CSPermission.DENY.permissionString is:
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission.DENY | CSPermission.ALLOW
     CSPermission, the value of DENY is 0, the value of
     ALLOW is 1. A permissionString has 7 characters and it can be like: 0110100.permissionString is null, it means not to set the specified user's
     permission for the specified resource/version node.permissionString's length is 0, it means the status of all permissions 
     is CSPermission.DENYNoSuchUserException - If there is no user with the specified name in 
     customer's external security system.JRCustomerException - If an error occurs during JReport server security
     system invoking this method, and the implementation thinks this error should be thrown
     to JReport server security system.boolean isEnableEdit()
UserPermissionProvider.setUserPermissions() should take effect on
 customer's external security system, and cause modification of external security
 system, this method should return true in such cases. If customer's external
 security system will not be affected by invoking setUserPermissions(),
 this method should return false. isEditing() with parameter
 SecurityWebAdaptor.ACTION_EDIT_USER_PERMISSIONS in jet.server.api.SecurityWebAdaptor
 is the same as this method's return value.true if external security system will be affected by invoking
     setUserPermissions(), otherwise return false.SecurityWebAdaptor