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.group
Interface GroupPrivilegeProvider

    public interface GroupPrivilegeProvider

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

Since:
  version 8

Method Summary
`java.util.Hashtable` | `getGroupPrivileges(java.lang.String realmName)` Gets all groups' 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 `GroupPrivilegeProvider`. In common cases, invoking `setGroupPrivileges()` 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` | `setGroupPrivileges(java.lang.String realmName, java.lang.String groupName, java.lang.String[] privileges)` Sets a group's privileges in customer's external security system.

Method Detail

### getGroupPrivileges

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

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

  Parameters:
    `realmName` - the realm name.
  Returns:
    A `Hashtable` object to represent all groups' privilege settings. In the returned `Hashtable`, the key is group name, the value is a `String` array, which may contain the following strings:
    `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.

### setGroupPrivileges

    void setGroupPrivileges(java.lang.String realmName,
                            java.lang.String groupName,
                            java.lang.String[] privileges)
                            throws NoSuchGroupException,
                                   JRCustomerException

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

  Parameters:
    `realmName` - the realm name.
    `groupName` - the group name.
    `privileges` - A `String` array, which may contain below strings: `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:
    `NoSuchGroupException` - If there is no group 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 `GroupPrivilegeProvider`.
  In common cases, invoking `setGroupPrivileges()` 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 `setGroupPrivileges()`, this method should return `false`.
  Returned value of the method `isEditing()` with parameter `SecurityWebAdaptor.ACTION_EDIT_GROUP_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 `setGroupPrivileges()`, 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