Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## jet.server.api.custom.security.role
Interface RolePrivilegeProvider

    public interface RolePrivilegeProvider

Among the interfaces of JReport security API, `RolePrivilegeProvider` is used to provide customized privilege setting of role. In addition to getting role privilege setting from customer's external security system, this interface also provides the ability to modify role privilege setting in customer's external security system.
Privilege is a credential that is a special operation on JReport server, this operation is not referred to any node in JReport server resource tree. Currently there are 2 types of privileges in JReport server: `jet.cs.util.APIConst.PRIVILEGE_PUBLISH_REPORT` indicating credential to deploy reports/catalogs to the server, `jet.cs.util.APIConst.PRIVILEGE_ACCESS_ADVANCED_PROPERTIES` indicating credential to access advanced information

Since:
  version 8

Method Summary
`java.util.Hashtable` | `getRolePrivileges(java.lang.String realmName)` Gets all roles' privilege settings from customer's external security system.
`boolean` | `isEnableEdit()` Indicates whether customer's external security system will be modified by invoking some methods in `RolePrivilegeProvider`. In common cases, invoking `setRolePrivileges()` 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` | `setRolePrivileges(java.lang.String realmName, java.lang.String roleName, java.lang.String[] privileges)` Sets a role's privileges in customer's external security system.

Method Detail

### getRolePrivileges

    java.util.Hashtable getRolePrivileges(java.lang.String realmName)
                                          throws JRCustomerException

  Gets all roles' privilege settings from customer's external security system.

  Parameters:
    `realmName` - the realm name.
  Returns:
    A `Hashtable` object to represent all roles' privilege settings. In the returned `Hashtable`, the key is role name, the value is a `String` array, which may contain below strings: `jet.cs.util.APIConst.PRIVILEGE_PUBLISH_REPORT` and `jet.cs.util.APIConst.PRIVILEGE_ACCESS_ADVANCED_PROPERTIES` `jet.cs.util.APIConst.PRIVILEGE_PUBLISH_REPORT` indicating credential to deploy reports/catalogs to the server, `jet.cs.util.APIConst.PRIVILEGE_ACCESS_ADVANCED_PROPERTIES` indicating credential to access advanced information
  Throws:
    `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.

### setRolePrivileges

    void setRolePrivileges(java.lang.String realmName,
                           java.lang.String roleName,
                           java.lang.String[] privileges)
                           throws NoSuchRoleException,
                                  JRCustomerException

  Sets a role's privileges in customer's external security system.

  Parameters:
    `realmName` - the realm name.
    `roleName` - the role name.
    `privileges` - A `String` array, which may contain below strings: `jet.cs.util.APIConst.PRIVILEGE_PUBLISH_REPORT` and `jet.cs.util.APIConst.PRIVILEGE_ACCESS_ADVANCED_PROPERTIES` `jet.cs.util.APIConst.PRIVILEGE_PUBLISH_REPORT` indicating credential to deploy reports/catalogs to the server, `jet.cs.util.APIConst.PRIVILEGE_ACCESS_ADVANCED_PROPERTIES` indicating credential to access advanced information
  Throws:
    `NoSuchRoleException` - If there is no role 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.

### isEnableEdit

    boolean isEnableEdit()

  Indicates whether customer's external security system will be modified by invoking some methods in `RolePrivilegeProvider`.
  In common cases, invoking `setRolePrivileges()` 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 `setRolePrivileges()`, this method should return `false`.
  Returned value of the method `isEditing()` with parameter `SecurityWebAdaptor.ACTION_EDIT_ROLE_PRIVILEGES` in `jet.server.api.SecurityWebAdaptor` is the same as this method's return value.

  Returns:
    `true` if external security system will be affected by invoking `setRolePrivileges()`, otherwise return `false`.
  See Also:
    `SecurityWebAdaptor`

Overview | Package | Class | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD