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

📄 grpusrengineresourcebundle.java

📁 java 写的一个新闻发布系统
💻 JAVA
字号:
////                                   ____.//                       __/\ ______|    |__/\.     _______//            __   .____|    |       \   |    +----+       \//    _______|  /--|    |    |    -   \  _    |    :    -   \_________//   \\______: :---|    :    :           |    :    |         \________>//           |__\---\_____________:______:    :____|____:_____\//                                      /_____|////                 . . . i n   j a h i a   w e   t r u s t . . .//////// NK 18.02.2002 - added in Jahia//package org.jahia.resourcebundle;import java.util.Enumeration;import java.util.Hashtable;import java.util.Locale;import java.util.ResourceBundle;import java.security.acl.Group;import java.security.Principal;import javax.servlet.*;					            // ServletExceptionimport javax.servlet.http.*;			            // HttpServletRequest, HttpSerlvetResponseimport org.jahia.services.pages.JahiaPage;import org.jahia.utils.JahiaConsole;import org.jahia.params.ParamBean;import org.jahia.services.usermanager.*;import org.jahia.registries.ServicesRegistry;/** * Tools to handles Pages engine resource bundle for a given principal. *  * @author Khue Nguyen * @version 1.0 */public class GrpUsrEngineResourceBundle{    private static final String CLASS_NAME =                 GrpUsrEngineResourceBundle.class.getName();    	private static GrpUsrEngineResourceBundle mInstance ;		private Hashtable usrResources ;	private Hashtable grpResources ;		private GrpUsrEngineResourceBundle(){		usrResources = new Hashtable();		grpResources = new Hashtable();	}	public static synchronized GrpUsrEngineResourceBundle getInstance(){				if ( mInstance == null ){			mInstance = new GrpUsrEngineResourceBundle();		}			return mInstance;	} 		/**	 * Add a resource bundle	 * 	 * @param JahiaPage page	 * @param Principal p, a JahiaUser or JahiaGroup	 * @param ResourceBundle res	 */	public void addResourceBundle(JahiaPage page, Principal p, ResourceBundle res){				if ( page == null || res == null || p == null )			return;        boolean isGroup = ( p instanceof Group );        String key;        if ( isGroup ){            key = ((JahiaGroup)p).getGroupKey();                                JahiaConsole.println(CLASS_NAME+".addResourceBundle","Added grp res. bun. : " + key ) ;            grpResources.put( JahiaResourceBundle.ENGINE_DEFAULT_RESOURCE_BUNDLE + "_" + page.getID() + "_" + key , res );        } else {            key = ((JahiaUser)p).getUserKey();            JahiaConsole.println(CLASS_NAME+".addResourceBundle","Added user res. bun. : " + key ) ;            usrResources.put( JahiaResourceBundle.ENGINE_DEFAULT_RESOURCE_BUNDLE + "_" + page.getID() + "_" + key , res );        }	}	/**	 * Returns a resource bundle for a given page and a given principal	 *	 * @param JahiaPage page	 * @param Principal p, a JahiaUser or JahiaGroup	 * @return ResourceBundle res	 */	public ResourceBundle getResourceBundle(JahiaPage page, Principal p){		if ( page == null || p == null )			return null;        boolean isGroup = ( p instanceof Group );        String key;        if ( isGroup ){            key = ((JahiaGroup)p).getGroupKey();                                //JahiaConsole.println(CLASS_NAME+".getResourceBundle","For group : " + key ) ;        } else {            key = ((JahiaUser)p).getUserKey();            //JahiaConsole.println(CLASS_NAME+".getResourceBundle","For user : " + key ) ;        }		ResourceBundle res;		if ( !isGroup ){		    res = (ResourceBundle)usrResources.get( JahiaResourceBundle.ENGINE_DEFAULT_RESOURCE_BUNDLE 		                      + "_" + page.getID() + "_" + key );            if ( res == null )                res = getGrpResourceBundle(page,p);		} else {		    res = getGrpResourceBundle(page,p);		}		return res;	}	/**	 * Returns a resource bundle for a given JahiaUser looking at its group membership	 *	 * @param JahiaPage page	 * @param Principal p, a JahiaUser or JahiaGroup	 * @return ResourceBundle res	 */	private ResourceBundle getGrpResourceBundle(JahiaPage page, Principal p){				//JahiaConsole.println(CLASS_NAME+".getGrpResourceBundle()","Started looking for page :" + page.getID());				if ( page == null || p == null )			return null;	    JahiaGroup grp;        String grpKey;        String key ;        String resName = JahiaResourceBundle.ENGINE_DEFAULT_RESOURCE_BUNDLE + "_" + page.getID() + "_";        		ResourceBundle res = null;		Enumeration keys = grpResources.keys();		while (keys.hasMoreElements()){		    grpKey = "";		    key = (String)keys.nextElement();		    //JahiaConsole.println(CLASS_NAME+".getGrpResourceBundle()","res key found :" + key);		    if ( key.startsWith(resName) ){    		        grpKey = key.substring(resName.length(),key.length());		        //JahiaConsole.println(CLASS_NAME+".getGrpResourceBundle()","groupkey :" + grpKey);                grp = ServicesRegistry.getInstance().getJahiaGroupManagerService().lookupGroup(grpKey);                if ( grp != null && grp.isMember(p)){		            //JahiaConsole.println(CLASS_NAME+".getGrpResourceBundle()","user " + ((JahiaUser)p).getUsername() + " is member of group :" + grpKey);                    res = (ResourceBundle)grpResources.get(key);                       if ( res != null )                        return res;                                    }		    }        }                                   		return res;	}}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -