r1358 - in xwiki/trunk/src/main/java/com/xpn/xwiki: . api

Marta Girdea marta_girdea at users.forge.objectweb.org
Wed Oct 4 12:42:27 CEST 2006


Author: marta_girdea
Date: 2006-10-04 12:42:26 +0200 (Wed, 04 Oct 2006)
New Revision: 1358

Modified:
   xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java
   xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java
Log:
Revert the language selection code.
Add getUser(username) function
Add getWebPreferenceFor(space)


Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java	2006-10-04 10:29:14 UTC (rev 1357)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/XWiki.java	2006-10-04 10:42:26 UTC (rev 1358)
@@ -1283,9 +1283,13 @@
     }
 
     public String getWebPreference(String prefname, String default_value, XWikiContext context) {
+        XWikiDocument currentdoc = (XWikiDocument) context.get("doc");
+        return getWebPreference(prefname, currentdoc.getWeb(), default_value, context);
+    }
+
+    public String getWebPreference(String prefname, String space, String default_value, XWikiContext context) {
         try {
-            XWikiDocument currentdoc = (XWikiDocument) context.get("doc");
-            XWikiDocument doc = getDocument(currentdoc.getWeb() + ".WebPreferences", context);
+            XWikiDocument doc = getDocument(space + ".WebPreferences", context);
 
             // First we try to get a translated preference object
             BaseObject object = doc.getObject("XWiki.XWikiPreferences", "language", context.getLanguage(), true);
@@ -1301,7 +1305,6 @@
         }
         return getXWikiPreference(prefname, default_value, context);
     }
-
     public String getUserPreference(String prefname, XWikiContext context) {
         try {
             String user = context.getUser();
@@ -1347,7 +1350,9 @@
 
     public String getLanguagePreference(XWikiContext context) {
     	return getDocLanguagePreference(context);
-        /*
+    }
+    
+    public String getDocLanguagePreference(XWikiContext context) {
         // First we get the language from the request
         String language;
 
@@ -1429,11 +1434,17 @@
 
         context.setLanguage("");
         return "";
-        */
     }
 
-    public String getDocLanguagePreference(XWikiContext context) {
-        String language = "", requestLanguage = "", userPreferenceLanguage = "", navigatorLanguage = "", cookieLanguage = "", contextLanguage = "";
+    public String getDocLanguagePreferenceNew(XWikiContext context) {
+        // Get context language
+    	String contextLanguage = context.getLanguage();
+        // If the language exists in the context, it was previously set by another call
+        if(contextLanguage != null && contextLanguage != ""){
+        	return contextLanguage;
+        }
+
+        String language = "", requestLanguage = "", userPreferenceLanguage = "", navigatorLanguage = "", cookieLanguage = "";
         boolean setCookie = false;
 
         if (!context.getWiki().isMultiLingual(context)) {
@@ -1449,9 +1460,6 @@
         catch (Exception ex){
         }
 
-        // Get context language
-       	contextLanguage = context.getLanguage();
-
         // Get user preference
         try {
             String user = context.getUser();
@@ -1495,12 +1503,8 @@
                 return language;
             }
         }
-        // Next we get the language from the context
-        if(contextLanguage != null && contextLanguage != ""){
-        	language = contextLanguage;
-        }
         // Next we get the language from the cookie
-        else if(cookieLanguage != null && cookieLanguage != ""){
+        if(cookieLanguage != null && cookieLanguage != ""){
         	language = cookieLanguage;
         }
         // Next from the default user preference
@@ -2292,6 +2296,9 @@
                 // TODO: throws Exception
                 return -3;
             }
+            if(!this.checkAccess("register", doc, context)){
+                return -1;
+            }
 
             BaseObject newobject = (BaseObject) baseclass.fromMap(map, context);
             newobject.setName(fullwikiname);
@@ -2393,12 +2400,19 @@
         return user;
     }
 
+    public User getUser(String username, XWikiContext context) {
+        XWikiUser xwikiUser = new XWikiUser(username);
+        User user = new User(xwikiUser, context);
+        return user;
+    }
+
     public void prepareResources(XWikiContext context) {
         if (context.get("msg") == null) {
-            String language = getInterfaceLanguagePreference(context);
+            //String ilanguage = getInterfaceLanguagePreference(context);
+            String dlanguage = getDocLanguagePreference(context);
             if (context.getResponse() != null)
-                context.getResponse().setLocale(new Locale(language));
-            ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources", new Locale(language));
+                context.getResponse().setLocale(new Locale(dlanguage));
+            ResourceBundle bundle = ResourceBundle.getBundle("ApplicationResources", new Locale(dlanguage));
             if (bundle == null)
                 bundle = ResourceBundle.getBundle("ApplicationResources");
             XWikiMessageTool msg = new XWikiMessageTool(bundle);

Modified: xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java
===================================================================
--- xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java	2006-10-04 10:29:14 UTC (rev 1357)
+++ xwiki/trunk/src/main/java/com/xpn/xwiki/api/XWiki.java	2006-10-04 10:42:26 UTC (rev 1358)
@@ -544,6 +544,19 @@
      * This function will find the right preference object associated to the current active language
      * If no preference is found it will look in the XWiki Preferences
      * @param prefname Preference name
+     * @param space The space for which this preference is requested
+     * @return The preference for this wiki and the current language
+     */
+    public String getWebPreferenceFor(String prefname, String space) {
+        return xwiki.getWebPreference(prefname, space, "", context);
+    }
+
+    /**
+     * API to access an Space Preference
+     * There can be one preference object per language
+     * This function will find the right preference object associated to the current active language
+     * If no preference is found it will look in the XWiki Preferences
+     * @param prefname Preference name
      * @param default_value  default value to return if the prefenrece does not exist or is empty
      * @return The preference for this wiki and the current language
      */
@@ -556,9 +569,22 @@
      * There can be one preference object per language
      * This function will find the right preference object associated to the current active language
      * @param prefname Preference name
+     * @param space The space for which this preference is requested
      * @param default_value  default value to return if the prefenrece does not exist or is empty
      * @return The preference for this wiki and the current language in long format
      */
+    public String getWebPreferenceFor(String prefname, String space, String default_value) {
+        return xwiki.getWebPreference(prefname, space, default_value, context);
+    }
+
+    /**
+     * API to access an XWiki Preference as a long number
+     * There can be one preference object per language
+     * This function will find the right preference object associated to the current active language
+     * @param prefname Preference name
+     * @param default_value  default value to return if the prefenrece does not exist or is empty
+     * @return The preference for this wiki and the current language in long format
+     */
     public long getXWikiPreferenceAsLong(String prefname, long default_value) {
         return xwiki.getXWikiPreferenceAsLong(prefname, default_value, context);
     }
@@ -781,9 +807,12 @@
     public int createUser(boolean withValidation, String userRights) throws XWikiException {
         boolean registerRight;
         try {
+	    // So, what's the register right for? This says that if the creator of the page
+	    // (Admin) has programming rights, anybody can register. Is this OK?
             if (checkProgrammingRights()) {
                 registerRight = true;
-            } else {
+            } else
+            {
                 registerRight = xwiki.getRightService().hasAccessLevel("register", context.getUser(),
                         "XWiki.XWikiPreferences", context);
             }
@@ -1554,6 +1583,14 @@
             return xwiki.getUserName(user, format, link, context);
         }
     }
+    
+    public User getUser(){
+    	return xwiki.getUser(context);
+    }
+    
+    public User getUser(String username){
+    	return xwiki.getUser(username, context);
+    }
 
     /**
      * API allowing to format a date according to the default Wiki setting





More information about the Xwiki-notifications mailing list