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