Package com.iizix.server.db
Class GroupInfo
- java.lang.Object
- com.iizix.server.db.GroupInfo
 
- public class GroupInfo extends java.lang.ObjectClass holding information about user groups for the server.- The database table is created with: - CREATE TABLE IZS.GROUPS ( gid BIGINT NOT NULL PRIMARY KEY GENERATED BY DEFAULT AS IDENTITY, name VARCHAR(80) NOT NULL, descr VARCHAR(160) NOT NULL, disabled BOOLEAN NOT NULL DEFAULT FALSE, all_apps BOOLEAN NOT NULL DEFAULT FALSE, UNIQUE (name) ); - Author:
- Christopher Mindus
 
- Field Summary- Fields - Modifier and Type - Field - Description - static java.lang.String- ADMIN_GROUP_NAMEThe group name of the Administrators group: "Administrators".- static java.lang.String- DEFAULT_GROUP_NAMEThe group name of the Default normal user group: "Default".- long- gidThe unique group ID.
 - Method Summary- All Methods Static Methods Instance Methods Concrete Methods - Modifier and Type - Method - Description - boolean- areAllAppsAllowed()Returns if the group allows users to run all apps without further app checking.- static GroupInfo- createGroup(java.lang.String name, java.lang.String descr, boolean isDisabled, boolean areAllAppsAllowed)Creates a new group with the specified information.- static GroupInfo- createGroup(java.sql.Connection conn, java.lang.String name, java.lang.String descr, boolean isDisabled, boolean areAllAppsAllowed)Creates a new group with the specified information.- boolean- deleteGroup()Deletes the group from the database.- boolean- deleteGroup(java.sql.Connection conn)Deletes the group from the database.- static GroupInfo[]- getAllGroups(boolean reload)Gets all the groups from the database.- static GroupInfo[]- getAllGroups(java.sql.Connection conn)Gets all the groups from the database.- java.lang.String- getDescription()Gets the description of the group.- static GroupInfo- getGroup(java.lang.String name, boolean reload)Gets the group with the specified name.- static GroupInfo[]- getGroups(long[] groupIDs, boolean reload)Gets the groups for the group IDs.- static GroupInfo[]- getGroups(java.lang.String[] names, boolean reload)Gets the groups for the names.- static GroupInfo[]- getGroups(java.sql.Connection conn, java.lang.String[] names)Gets the groups for the names from the database.- java.lang.String- getName()Gets the name of the group.- boolean- isDisabled()Returns if the group is enabled or disabled.- static GroupInfo[]- loadGroups(java.sql.Connection conn, boolean returnGroupInfoArray)Loads all the groups.- void- refreshFromDB()Refreshes the DB information for the group.- boolean- setInformation(java.lang.String name, java.lang.String descr, java.lang.Boolean isDisabled, java.lang.Boolean areAllAppsAllowed)Updates the information of the group.- java.lang.String- toString()Outputs a debug string.
 
- Field Detail- DEFAULT_GROUP_NAME- public static final java.lang.String DEFAULT_GROUP_NAME The group name of the Default normal user group: "Default".- See Also:
- Constant Field Values
 
 - ADMIN_GROUP_NAME- public static final java.lang.String ADMIN_GROUP_NAME The group name of the Administrators group: "Administrators".- See Also:
- Constant Field Values
 
 - gid- public final long gid The unique group ID.
 
 - Method Detail- loadGroups- public static GroupInfo[] loadGroups(java.sql.Connection conn, boolean returnGroupInfoArray) throws java.sql.SQLException Loads all the groups. Previous groups are cleared.- Parameters:
- conn- The database connection.
- returnGroupInfoArray- Flag to return the array of all groups.
- Returns:
- The array of all groups if returnGroupInfoArray is true, null otherwise.
- Throws:
- java.sql.SQLException- For SQL errors.
 
 - getGroup- public static GroupInfo getGroup(java.lang.String name, boolean reload) throws java.sql.SQLException Gets the group with the specified name.- Parameters:
- name- The group name, wildcard "*" means all groups and will fail this call.
- reload- Flag to reload the group informations from the database.
- Returns:
- The group found, or null if not found.
- Throws:
- java.sql.SQLException- For SQL errors.
- NotFoundException- If the name is "*".
 
 - getAllGroups- public static GroupInfo[] getAllGroups(boolean reload) throws java.sql.SQLException Gets all the groups from the database.- Parameters:
- reload- Flag to reload the group informations from the database.
- Returns:
- The array of group informations.
- Throws:
- java.sql.SQLException- For SQL errors.
 
 - getAllGroups- public static GroupInfo[] getAllGroups(java.sql.Connection conn) throws java.sql.SQLException Gets all the groups from the database.- Parameters:
- conn- The JDBC connection.
- Returns:
- The array of group informations.
- Throws:
- java.sql.SQLException- For SQL errors.
 
 - getGroups- public static GroupInfo[] getGroups(java.lang.String[] names, boolean reload) throws NotFoundException, java.sql.SQLException Gets the groups for the names.- Parameters:
- names- The group names to find. The wildcard "*" group name means all groups.
- reload- Flag to reload the group informations from the database.
- Returns:
- The array of group informations.
- Throws:
- NotFoundException- If a group is not found.
- java.sql.SQLException- For SQL errors.
 
 - getGroups- public static GroupInfo[] getGroups(java.sql.Connection conn, java.lang.String[] names) throws NotFoundException, java.sql.SQLException Gets the groups for the names from the database.- Parameters:
- names- The group names to find. The wildcard "*" group name means all groups.
- Returns:
- The array of group informations.
- Throws:
- NotFoundException- If a group is not found.
- java.sql.SQLException- For SQL errors.
 
 - getGroups- public static GroupInfo[] getGroups(long[] groupIDs, boolean reload) throws NotFoundException, java.sql.SQLException Gets the groups for the group IDs.- Parameters:
- groupIDs- The groupIDs to find.
- reload- Flag to reload the group informations from the database.
- Returns:
- The array of group informations.
- Throws:
- NotFoundException- If a group is not found.
- java.sql.SQLException- For SQL errors.
 
 - createGroup- public static GroupInfo createGroup(java.lang.String name, java.lang.String descr, boolean isDisabled, boolean areAllAppsAllowed) throws java.sql.SQLException Creates a new group with the specified information.- Note that the name AND the lower case name of the group should not exist, otherwise you will get an SQLException of a duplicate entry. - Parameters:
- name- The group name (min 3 characters, max 80 characters).
- descr- The group description (max 160 characters, cannot be null).
- isDisabled- The group is initially disabled if true, enabled if false.
- areAllAppsAllowed- Enable group to access all apps (be careful with this one, it is primarily used for Administrator groups).
- Returns:
- The GroupInfo of the new group created.
- Throws:
- java.lang.IllegalArgumentException- If name or descr lengths are invalid.
- java.sql.SQLException- For SQL errors.
- java.lang.NullPointerException- If name or descr parameters are null.
 
 - createGroup- public static GroupInfo createGroup(java.sql.Connection conn, java.lang.String name, java.lang.String descr, boolean isDisabled, boolean areAllAppsAllowed) throws java.sql.SQLException Creates a new group with the specified information.- Note that the name AND the lower case name of the group should not exist, otherwise you will get an SQLException of a duplicate entry. - Parameters:
- conn- The JDBC connection.
- name- The group name (min 3 characters, max 80 characters).
- descr- The group description (max 160 characters, cannot be null).
- isDisabled- The group is initially disabled if true, enabled if false.
- areAllAppsAllowed- Enable group to access all apps (be careful with this one, it is primarily used for Administrator groups).
- Returns:
- The GroupInfo of the new group created.
- Throws:
- java.lang.IllegalArgumentException- If name or descr lengths are invalid.
- java.sql.SQLException- For SQL errors.
- java.lang.NullPointerException- If conn, name or descr parameters are null.
 
 - getName- public java.lang.String getName() Gets the name of the group.- Returns:
- The user name.
 
 - getDescription- public java.lang.String getDescription() Gets the description of the group.- Returns:
- A descriptive text.
 
 - isDisabled- public boolean isDisabled() Returns if the group is enabled or disabled.- Returns:
- true if disabled, false for enabled (default).
 
 - areAllAppsAllowed- public boolean areAllAppsAllowed() Returns if the group allows users to run all apps without further app checking.- Returns:
- true to allow all apps (typically for administrators), false to perform default checking with the defined apps.
 
 - toString- public java.lang.String toString() Outputs a debug string.- Overrides:
- toStringin class- java.lang.Object
- Returns:
- String for debugging.
 
 - refreshFromDB- public void refreshFromDB() throws java.sql.SQLExceptionRefreshes the DB information for the group.- Throws:
- java.sql.SQLException- For SQL errors.
 
 - setInformation- public boolean setInformation(java.lang.String name, java.lang.String descr, java.lang.Boolean isDisabled, java.lang.Boolean areAllAppsAllowed) throws NotFoundException, java.sql.SQLExceptionUpdates the information of the group.- Parameters:
- name- The new name (min 3 characters, max 80 characters), null for same name.
- descr- The new description (max 160 characters), null for same description.
- isDisabled- Flag for group disabled, null for no change.
- areAllAppsAllowed- Flag for all apps are allowed, null for no change.
- Throws:
- java.lang.IllegalArgumentException- If name or descr lengths are invalid.
- NotFoundException- If the group is not found (has been removed).
- java.sql.SQLException- For SQL errors.
 
 - deleteGroup- public boolean deleteGroup(java.sql.Connection conn) throws java.sql.SQLExceptionDeletes the group from the database. No commit operation is done on the connection if you wish to perform multiple operations as a unit of operation.- Parameters:
- conn- The SQL connection.
- Returns:
- true if successfully deleted, false if already deleted.
- Throws:
- java.sql.SQLException- For SQL errors.
 
 - deleteGroup- public boolean deleteGroup() throws java.sql.SQLExceptionDeletes the group from the database. If you wish to delete multiple groups, use the- deleteGroup(Connection)call instead and grab a connection from the pool.- Returns:
- true if successfully deleted, false if already deleted.
- Throws:
- java.sql.SQLException- For SQL errors.