⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jahiagroupmanagerdbservice.java

📁 java 写的一个新闻发布系统
💻 JAVA
📖 第 1 页 / 共 4 页
字号:
            CloseStatement (statement);        }        return dom;    }    //--------------------------------------------------------------------------    /**     * return a DOM document of all group props of a site     *     * @param int the site id     *     * @return JahiaDOMObject a DOM representation of this object     *     * @author NK     */    public JahiaDOMObject getGroupPropsAsDOM( int siteID )    throws JahiaException{        Connection dbConn = null;        Statement statement = null;        String output = null;        JahiaDBDOMObject dom = null;        try {            String sqlQuery = "SELECT DISTINCT jahia_grp_prop.id_jahia_grp,jahia_grp_prop.name_jahia_grp_prop,jahia_grp_prop.value_jahia_grp_prop FROM jahia_grp_prop ,jahia_grps WHERE jahia_grp_prop.id_jahia_grp="            +"jahia_grps.id_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_prop",rs);                    return dom;                }            }        } catch (SQLException se) {            String errorMsg = "Error in getGroupPropsAsDOM(int siteID) : " + se.getMessage();            JahiaConsole.println( "JahiaGroupManagerDBService", errorMsg );            throw new JahiaException(   "Cannot load groups props from the database",                                        errorMsg, JahiaException.DATABASE_ERROR,                                        JahiaException.CRITICAL );        } finally {            CloseDBConnection (dbConn);            CloseStatement (statement);        }        return dom;    }    //--------------------------------------------------------------------------    /**     * return a DOM document of all application role groups of a site     *     * @param int the site id     *     * @return JahiaDOMObject a DOM representation of this object     *     * @author NK     */    public JahiaDOMObject getAppRoleGroupsAsDOM( int siteID )    throws JahiaException{        Connection dbConn = null;        Statement statement = null;        String output = null;        JahiaDBDOMObject dom = null;        Vector grps = GroupsTools.getGroups( siteID, true);        try {            String sqlQuery = "";            int size = grps.size();            if ( size==0 ){                dom = new JahiaDBDOMObject();                dom.addTable("jahia_grps",null);                return dom;            } else {                StringBuffer buff = new StringBuffer("SELECT DISTINCT id_jahia_grps,name_jahia_grps,key_jahia_grps,siteid_jahia_grps FROM jahia_grps where key_jahia_grps IN(");                JahiaGroup grp = null;                for ( int i=0 ; i<size ; i++ ){                    grp = (JahiaGroup)grps.get(i);                    buff.append("'");                    buff.append(grp.getGroupKey ());                    buff.append("'");                    if (i<(size-1)){                        buff.append(",");                    }                }                buff.append(")");                sqlQuery = buff.toString();            }            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_grps",rs);                    return dom;                }            }        } catch (SQLException se) {            String errorMsg = "Error in getAppRoleGroupsAsDOM(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;    }    //--------------------------------------------------------------------------    /**     * 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{        class UsrGrpAccessFilter implements DBRowDataFilter {            private int siteID = -1;            public UsrGrpAccessFilter(int siteID){                this.siteID = siteID;            }            public boolean inValue(Hashtable vals){                if ( vals == null ){                    return false;                }                String val = null;                try {                    val = (String)vals.get("id_jahia_grps");                    return ( val.endsWith(":"+this.siteID) );                } catch ( Throwable t ){                    JahiaConsole.println("getUserGroupAccessAsDOM","Error parsing " + val);                    //t.printStackTrace();                }                return false;            }        }        Connection dbConn = null;        Statement statement = null;        String output = null;        JahiaDBDOMObject dom = null;        UsrGrpAccessFilter usrGrpAccessFilter = new UsrGrpAccessFilter(siteID);        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+")";            //String sqlQuery = "SELECT * FROM jahia_grp_access";            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,usrGrpAccessFilter);                    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;    }    //--------------------------------------------------------------------------    /**     * return a DOM document of all application group access for a site     * Here users and groups have access to application role groups ( not normal groups )     *     * @param int the site id     *     * @return JahiaDOMObject a DOM representation of this object     *     * @author NK     */    public JahiaDOMObject getAppGroupAccessAsDOM( int siteID )    throws JahiaException{        Connection dbConn = null;        Statement statement = null;        String output = null;        JahiaDBDOMObject dom = null;        Vector grps = GroupsTools.getGroups( siteID, true);        try {            String sqlQuery = "";            int size = grps.size();            if ( size==0 ){                dom = new JahiaDBDOMObject();                dom.addTable("jahia_grp_access",null);                return dom;            } else {                StringBuffer buff = new StringBuffer("SELECT DISTINCT id_jahia_member,id_jahia_grps,membertype_grp_access FROM jahia_grp_access where id_jahia_grps IN(");                JahiaGroup grp = null;                for ( int i=0 ; i<size ; i++ ){                    grp = (JahiaGroup)grps.get(i);                    buff.append("'");                    buff.append(grp.getGroupKey ());                    buff.append("'");                    if (i<(size-1)){                        buff.append(",");                    }                }                buff.append(")");                sqlQuery = buff.toString();            }            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 getAppGroupAccessAsDOM(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 ("GroupManager", message);    }    //-------------------------------------------------------------------------    private void toDebug (String message)    {        if (false) {            JahiaConsole.println("JahiaGroupManagerDBService.toDebug", 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) {                toDebug ("--/ Bad character found in group 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 + -