📄 jahiausermanagerdbprovider.java
字号:
try { if ( siteID != -1 ){ query.append ("SELECT COUNT(*)"); query.append (" as nbItems FROM "); query.append (JAHIA_USERS); query.append (" WHERE siteid_jahia_users="); query.append (siteID); } else { query.append ("SELECT COUNT("); query.append (FIELD_USER_KEY_USERS); query.append (") as nbItems FROM "); query.append (JAHIA_USERS); } statement = dbConn.createStatement(); if (statement != null) { ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery (statement,query.toString()); //JahiaConsole.println("JahiaUserManagerDBProvider.getNbUsers",query.toString()); if (rs != null) { if (rs.next()) { counter = rs.getInt ("nbItems"); } } // Result set not needed anymore. rs = null; } } catch (SQLException ex) { throw new JahiaDatabaseException ("Database error.", ex, JahiaDatabaseException.ERROR); } finally { query = null; closeDBConnection (dbConn); closeStatement (statement); } } return counter; } //------------------------------------------------------------------------- /** * This method returns the list of this site's users' ids. * * @return Return a vector of strings holding the user ids . */ private Vector getUserIds (int siteID){ Vector result = new Vector(); // Get a database connection Connection dbConn = getDBConnection (1000); if (dbConn == null) { return result; } // execute the SELECT query Statement statement = null; try { statement = dbConn.createStatement(); if (statement != null) { // Get the basic user data String query = "SELECT id_jahia_users FROM jahia_users WHERE siteid_jahia_users=" + siteID; ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery(statement,query); if (rs != null) { while (rs.next()) { int id = rs.getInt ("id_jahia_users"); result.add (new Integer(id)); } } } } catch (SQLException ex) { toConsole ("SQL Exception occured!"); // FIXME -Fulco- : Don't know yet what to do with this exception. // It should be logged somewhere ! } finally { closeDBConnection (dbConn); closeStatement (statement); } return result; } //-------------------------------------------------------------------------- /** * return a DOM document of all users of a site * * @param int the site id * * @return JahiaDOMObject a DOM representation of this object * * @author NK */ public JahiaDOMObject getUsersAsDOM( int siteID ) throws JahiaException{ Connection dbConn = null; Statement statement = null; String output = null; JahiaDBDOMObject dom = null; try { String sqlQuery = "SELECT * FROM jahia_users where siteid_jahia_users="+siteID; dbConn = getDBConnection(0); statement = dbConn.createStatement(); if (statement != null) { ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,sqlQuery ); if (rs != null) { dom = new JahiaDBDOMObject(); dom.addTable("jahia_users",rs); return dom; } } } catch (SQLException se) { String errorMsg = "Error in getUsersAsDOM(int siteID) : " + se.getMessage(); JahiaConsole.println( "JahiaUserManagerDBService", errorMsg ); throw new JahiaException( "Cannot load users from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } return dom; } //-------------------------------------------------------------------------- /** * return a DOM document of all user props of a site * * @param int the site id * * @return JahiaDOMObject a DOM representation of this object * * @author NK */ public JahiaDOMObject getUserPropsAsDOM( int siteID ) throws JahiaException{ Connection dbConn = null; Statement statement = null; String output = null; JahiaDBDOMObject dom = null; try { String sqlQuery = "SELECT DISTINCT jahia_user_prop.id_jahia_users,jahia_user_prop.name_jahia_user_prop,jahia_user_prop.value_jahia_user_prop FROM jahia_user_prop ,jahia_users WHERE jahia_user_prop.id_jahia_users=" +"jahia_users.id_jahia_users AND jahia_users.siteid_jahia_users="+siteID; dbConn = getDBConnection(0); statement = dbConn.createStatement(); if (statement != null) { ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,sqlQuery ); if (rs != null) { dom = new JahiaDBDOMObject(); dom.addTable("jahia_user_prop",rs); return dom; } } } catch (SQLException se) { String errorMsg = "Error in getUserPropsAsDOM(int siteID) : " + se.getMessage(); JahiaConsole.println( "JahiaUserManagerDBService", errorMsg ); throw new JahiaException( "Cannot load users props from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } return dom; } //-------------------------------------------------------------------------- /** * return a DOM document of all user group access for a site * * @param int the site id * * @return JahiaDOMObject a DOM representation of this object * * @author NK */ public JahiaDOMObject getUserGroupAccessAsDOM( int siteID ) throws JahiaException{ Connection dbConn = null; Statement statement = null; String output = null; JahiaDBDOMObject dom = null; try { String sqlQuery = "SELECT DISTINCT jahia_grp_access.id_jahia_member," +"jahia_grp_access.id_jahia_grps,jahia_grp_access.membertype_grp_access" +" FROM jahia_grp_access,jahia_users,jahia_grps " +"WHERE (jahia_grp_access.membertype_grp_access=1 " +"AND jahia_grp_access.id_jahia_member=" +"jahia_users.key_jahia_users AND jahia_users.siteid_jahia_users="+siteID+") " +"OR (jahia_grp_access.membertype_grp_access=2 AND jahia_grp_access.id_jahia_member=" +"jahia_grps.key_jahia_grps AND jahia_grps.siteid_jahia_grps="+siteID+")"; dbConn = getDBConnection(0); statement = dbConn.createStatement(); if (statement != null) { ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,sqlQuery ); if (rs != null) { dom = new JahiaDBDOMObject(); dom.addTable("jahia_grp_access",rs); return dom; } } } catch (SQLException se) { String errorMsg = "Error in getUserGroupAccessAsDOM(int siteID) : " + se.getMessage(); JahiaConsole.println( "JahiaGroupManagerDBService", errorMsg ); throw new JahiaException( "Cannot load groups from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } return dom; } //-------------------------------------------------------------------------- private void toConsole (String message) { JahiaConsole.println ("UserManager", message); } //------------------------------------------------------------------------- private boolean isNameValid (String name) { if (name == null) { return false; } if (name.length() == 0) { return false; } String authorizedCharacters = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ_0123456789{}"; char[] chars = authorizedCharacters.toCharArray(); char[] nameBuffer = name.toCharArray(); boolean badCharFound = false; int i = 0; while ((i < nameBuffer.length) && (!badCharFound)) { int j = 0; boolean ok = false; while ((j < chars.length) && (!ok)) { if (chars[j] == nameBuffer[i]) { ok = true; } j++; } badCharFound = (!ok); if (badCharFound) { JahiaConsole.println("JahiaUserManagerDBProvider.isNameValid", "Bad character found in user name [" + name + "] at position " + Integer.toString(i)); } i++; } return (!badCharFound); } //------------------------------------------------------------------------- private Connection getDBConnection (int debugInfo) { Connection dbConn = null; try { dbConn = mDBPoolService.getConnection (debugInfo); } catch (NullPointerException ex) { toConsole ("Null Pointer Exception, DB Pool Service instance might be null!"); } catch (SQLException ex) { toConsole ("SQL Exception: cannot get a connection."); } return dbConn; } //------------------------------------------------------------------------- private void closeDBConnection (Connection dbConn) { if ((mDBPoolService != null) && (dbConn != null)) { try { mDBPoolService.freeConnection (dbConn); } catch (SQLException sqlEx) { // FIXME -Fulco- : Don't know yet what to do with this exception. // It should be logged somewhere ! } } } //------------------------------------------------------------------------- private void closeStatement (Statement statement) { // Close the opened statement try { if (statement!=null) { statement.close(); } } catch (SQLException sqlEx) { // FIXME -Fulco- : Don't know yet what to do with this exception. // It should be logged somewhere ! } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -