📄 jahiasiteusermanagerdbservice.java
字号:
} } catch (JahiaException je) { String errorMsg = "Error in dbRemoveMember(JahiaUser user) : " + je.getMessage(); JahiaConsole.println( "JahiaSiteUserManagerDBService", errorMsg + " -> BAILING OUT" ); throw new JahiaException( "Cannot get member from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } return members; } //------------------------------------------------------------------------- /** * Check if a user has or not access on a site. * * @param int siteID, the site identifier * @param String username, the site identifier * @return Return the user if not null. * @author Khue Ng */ public JahiaUser getMember (int siteID, String username) throws JahiaException { JahiaUser user = null; Connection dbConn = null; Statement statement = null; try { SiteUserBean suBean = null; dbConn = getDBConnection(); statement = dbConn.createStatement(); if (statement != null) { StringBuffer query = new StringBuffer("select * from jahia_sites_users where siteid_sites_users="); query.append(siteID); query.append(" and username_sites_users='"); query.append(username); query.append("'"); ResultSet rs = ServicesRegistry.getInstance().getDBPoolService().executeQuery( statement,query.toString() ); if (rs != null) { while (rs.next()) { suBean = getSiteUserBeanFromResultSet(rs); if ( suBean != null ){ user = ServicesRegistry.getInstance().getJahiaUserManagerService().lookupUser(suBean.userID); } } } } } catch (SQLException se) { String errorMsg = "Error in isMember : " + se.getMessage(); JahiaConsole.println( "JahiaSiteUserManagerDNService", errorMsg + " -> BAILING OUT" ); throw new JahiaException( "Cannot load sites from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } catch (JahiaException je) { String errorMsg = "Error in isMember(siteid, username) : " + je.getMessage(); JahiaConsole.println( "JahiaSiteUserManagerDBService", errorMsg + " -> BAILING OUT" ); throw new JahiaException( "Cannot get data from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } return user; } //------------------------------------------------------------------------- /** * Build a SiteUserBean from a resultset * * @return JahiaSite the site bean */ protected SiteUserBean getSiteUserBeanFromResultSet(ResultSet rs) throws JahiaException { SiteUserBean suBean = null; if ( rs != null ){ String username = null; int siteID = -1; String userID = null; try { username = rs.getString("username_sites_users"); siteID = rs.getInt("siteid_sites_users"); userID = rs.getString("userid_sites_users"); }catch ( SQLException se ){ String errorMsg = "Error in getSiteUserBeanFromResultSet(rs) : " + se.getMessage(); JahiaConsole.println( "JahiaSiteUserManagerDBService", errorMsg + " -> BAILING OUT" ); throw new JahiaException( "Cannot read data from resultset", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } suBean = new SiteUserBean( username, siteID, userID ); } return suBean; } //-------------------------------------------------------------------------- /** * return a DOM document of all users membership of a site * * @param int the site id * * @return JahiaDOMObject a DOM representation of this object * * @author NK */ public JahiaDOMObject getUserMembershipsAsDOM( int siteID ) throws JahiaException{ Connection dbConn = null; Statement statement = null; String output = null; JahiaDBDOMObject dom = null; try { String sqlQuery = "SELECT * FROM jahia_sites_users where siteid_sites_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_sites_users",rs); return dom; } } } catch (SQLException se) { String errorMsg = "Error in getUserMembershipsAsDOM(int siteID) : " + se.getMessage(); JahiaConsole.println( "JahiaSiteUsermanagerDBService", errorMsg ); throw new JahiaException( "Cannot load data from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } return dom; } //-------------------------------------------------------------------------- /** * return a DOM document of external users ( from other site except server admin ) * that have membership access on this site * * @param int the site id * * @return JahiaDOMObject a DOM representation of this object * * @author NK */ public JahiaDOMObject getAuthExternalUsersAsDOM( 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 <>0 AND siteid_jahia_users <>"+siteID +" AND name_jahia_users IN " +"(SELECT username_sites_users from jahia_sites_users where siteid_sites_users=" +siteID+") AND key_jahia_users IN " +"(SELECT userid_sites_users from jahia_sites_users where siteid_sites_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 getAuthExternalUsersAsDOM(int siteID) : " + se.getMessage(); JahiaConsole.println( "JahiaSiteUsermanagerDBService", errorMsg ); throw new JahiaException( "Cannot load data from the database", errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } return dom; } //------------------------------------------------------------------------- private void executeQueryNoResultSet(String queryStr) throws JahiaException { Connection dbConn = null; Statement statement = null; try { dbConn = getDBConnection(); statement = dbConn.createStatement(); if (statement != null) { ServicesRegistry.getInstance().getDBPoolService().executeUpdate(statement,queryStr); } } catch (SQLException se) { String errorMsg = "Error in executeQueryNoResultSet(String queryStr) : " + se.getMessage(); JahiaConsole.println( "JahiaSiteUserManagerDBService", errorMsg + " -> BAILING OUT" ); throw new JahiaException( "Cannot execute query" + queryStr, errorMsg, JahiaException.DATABASE_ERROR, JahiaException.CRITICAL ); } finally { closeDBConnection (dbConn); closeStatement (statement); } } //------------------------------------------------------------------------- private Connection getDBConnection () { Connection dbConn = null; try { dbConn = ServicesRegistry.getInstance().getDBPoolService().getConnection (); } catch (NullPointerException ex) { JahiaConsole.println ("JahiaSiteUserManagerDBService", "Null Pointer Exception, DB Pool Service instance might be null!"); } catch (SQLException ex) { JahiaConsole.println ("JahiaSiteUserManagerDBService", "SQL Exception: cannot get a connection."); } return dbConn; } //------------------------------------------------------------------------- private Connection getDBConnection (int debugInfo) { Connection dbConn = null; try { dbConn = ServicesRegistry.getInstance().getDBPoolService().getConnection (debugInfo); } catch (NullPointerException ex) { JahiaConsole.println ("JahiaSiteUserManagerDBService", "Null Pointer Exception, DB Pool Service instance might be null!"); } catch (SQLException ex) { JahiaConsole.println ("JahiaSiteUserManagerDBService", "SQL Exception: cannot get a connection."); } return dbConn; } //------------------------------------------------------------------------- private void closeDBConnection (Connection dbConn) { if (dbConn != null) { try { ServicesRegistry.getInstance().getDBPoolService().freeConnection (dbConn); } catch (SQLException sqlEx) { // just create an exception without raising it, just to notify it // in the logs. JahiaException je = new JahiaException ("Cannot free resources", "Cannot free resources", JahiaException.DATABASE_ERROR, JahiaException.WARNING); } catch (NullPointerException ex) { JahiaConsole.println ("JahiaSiteUserManagerDBService", "Null Pointer Exception, DB Pool Service instance might be null!"); } } } //------------------------------------------------------------------------- private void closeStatement (Statement statement) { // Close the opened statement try { if (statement!=null) { statement.close(); } } catch (SQLException sqlEx) { // just create an exception without raising it, just to notify it // in the logs. JahiaException je = new JahiaException ("Cannot close a statement", "Cannot close a statement", JahiaException.DATABASE_ERROR, JahiaException.WARNING); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -