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