Scmwebeditor-commits
Threads by month
- ----- 2026 -----
- June
- May
- April
- March
- February
- January
- ----- 2025 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2024 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2023 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2022 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2021 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2020 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2019 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2018 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2017 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2016 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2015 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2014 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2013 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2012 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2011 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2010 -----
- December
- November
- October
- September
- August
- July
- June
- May
- April
- March
- February
- January
- ----- 2009 -----
- December
- November
- 436 discussions
r206 - in trunk/src: main/java/org/nuiton/scmwebeditor main/java/org/nuiton/scmwebeditor/actions main/resources main/resources/i18n main/webapp/WEB-INF/content test/java/org/nuiton/scmwebeditor
by kcardineaud@users.nuiton.org 08 Aug '11
by kcardineaud@users.nuiton.org 08 Aug '11
08 Aug '11
Author: kcardineaud
Date: 2011-08-08 16:13:39 +0200 (Mon, 08 Aug 2011)
New Revision: 206
Url: http://nuiton.org/repositories/revision/scmwebeditor/206
Log:
Save authentification in session for main en commit action
Added:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java
trunk/src/main/java/org/nuiton/scmwebeditor/ScmUser.java
trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
Removed:
trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
trunk/src/main/resources/struts.xml
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/reset.jsp
trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
Added: trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java (rev 0)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -0,0 +1,43 @@
+package org.nuiton.scmwebeditor;
+
+import java.util.HashMap;
+import java.util.Map;
+
+public class ScmSession {
+
+ protected Map<String, ScmUser> scmUsers;
+
+
+ public ScmSession() {
+ scmUsers = new HashMap<String,ScmUser>();
+ }
+
+ public Map<String, ScmUser> getScmUsers() {
+ return scmUsers;
+ }
+
+ public void addScmUser(String address , String login, String password) {
+ scmUsers.put(address, new ScmUser(login,password));
+ }
+
+ public String getUsername(String url) {
+ if(scmUsers.containsKey(url)) {
+ return scmUsers.get(url).getUsername();
+ }
+ else {
+ return null;
+ }
+
+ }
+
+ public String getPassword(String url) {
+ if(scmUsers.containsKey(url)) {
+ return scmUsers.get(url).getPassword();
+ }
+ else {
+ return null;
+ }
+ }
+
+
+}
Added: trunk/src/main/java/org/nuiton/scmwebeditor/ScmUser.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmUser.java (rev 0)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmUser.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -0,0 +1,28 @@
+package org.nuiton.scmwebeditor;
+
+public class ScmUser {
+
+ protected String username;
+ protected String password;
+
+ public ScmUser(String username, String password) {
+ this.setUsername(username);
+ this.setPassword(password);
+ }
+
+ public void setUsername(String username) {
+ this.username = username;
+ }
+
+ public String getUsername() {
+ return username;
+ }
+
+ public void setPassword(String password) {
+ this.password = password;
+ }
+
+ public String getPassword() {
+ return password;
+ }
+}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -40,12 +40,14 @@
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
import org.xml.sax.SAXException;
+import com.opensymphony.xwork2.ActionContext;
import com.opensymphony.xwork2.ActionSupport;
import javax.servlet.http.HttpSession;
import java.io.*;
import java.net.MalformedURLException;
import java.nio.charset.Charset;
+import java.util.Map;
import java.util.Properties;
/**
@@ -53,8 +55,11 @@
* Date: 24 nov. 2009
* Time: 21:24:39
*/
-public class ScmWebEditorBaseAction extends ActionSupport {
+public class ScmWebEditorBaseAction extends ActionSupport {
+
+ protected Map<String, Object> session;
+
private static final long serialVersionUID = 1L;
final static protected String CONTEXT_ACTION_KEY = "action";
@@ -186,7 +191,7 @@
}
- public void checkout(SvnSession svnSess, File checkoutdir) throws SVNException {
+ public void checkout(SvnConnection svnSess, File checkoutdir) throws SVNException {
SVNUpdateClient upclient = new SVNUpdateClient(svnSess.getManager(), svnSess.getSvnOption());
@@ -210,12 +215,12 @@
}
- protected SvnSession getSvnSession(HttpSession httpSession) {
- SvnSession svnSess = (SvnSession) httpSession.getAttribute(ATTRIBUTE_SVN_SESSION);
+ protected SvnConnection getSvnSession(HttpSession httpSession) {
+ SvnConnection svnSess = (SvnConnection) httpSession.getAttribute(ATTRIBUTE_SVN_SESSION);
return svnSess;
}
- protected void setSvnSession(HttpSession httpSession, SvnSession svnSess) {
+ protected void setSvnSession(HttpSession httpSession, SvnConnection svnSess) {
httpSession.setAttribute(ATTRIBUTE_SVN_SESSION, svnSess);
}
@@ -324,6 +329,33 @@
}
}
+
+ public ScmSession getScmSession() {
+ session = ActionContext.getContext().getSession();
+ Object obj = session.get("ScmSession");
+
+ ScmSession scmSession = null;
+ if(obj==null) {
+ scmSession = new ScmSession();
+ session.put("ScmSession", scmSession);
+ }
+ else {
+ scmSession = (ScmSession) obj;
+ }
+ return scmSession;
+ }
+ public String getUsername(String url) {
+ return getScmSession().getUsername(url);
+ }
+
+ public String getPassword(String url) {
+ return getScmSession().getPassword(url);
+ }
+
+
+
+
+
}
Added: trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java (rev 0)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -0,0 +1,175 @@
+/*
+ * #%L
+ * Nuiton-ScmWebEditor
+ *
+ * $Id: SvnSession.java 199 2011-08-03 15:54:19Z kcardineaud $
+ * $HeadURL: http://svn.nuiton.org/svn/scmwebeditor/trunk/src/main/java/org/nuiton/scmwe… $
+ * %%
+ * Copyright (C) 2009 - 2010 CodeLutin
+ * %%
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation, either version 3 of the
+ * License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Lesser Public License for more details.
+ *
+ * You should have received a copy of the GNU General Lesser Public
+ * License along with this program. If not, see
+ * <http://www.gnu.org/licenses/lgpl-3.0.html>.
+ * #L%
+ */
+package org.nuiton.scmwebeditor;
+
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.nuiton.util.FileUtil;
+import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNProperty;
+import org.tmatesoft.svn.core.SVNURL;
+import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
+import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
+import org.tmatesoft.svn.core.wc.SVNClientManager;
+import org.tmatesoft.svn.core.wc.SVNWCUtil;
+
+import java.io.File;
+import java.io.IOException;
+
+public class SvnConnection {
+
+
+ private static final Log log = LogFactory.getLog(SvnConnection.class);
+ /**
+ * svn path without fileName
+ */
+ protected String svnPath;
+ /**
+ * fileName of modif file
+ */
+ protected String fileName;
+ /**
+ * Temp directory for checkout
+ */
+ protected File checkoutdir;
+ /**
+ * url of svn path
+ */
+ protected SVNURL remoteUrl;
+ /**
+ * AuthenticationManager with login and password
+ */
+ protected ISVNAuthenticationManager authManager;
+ /**
+ * svn default option
+ */
+ protected DefaultSVNOptions svnOption;
+ /**
+ *
+ */
+ protected SVNClientManager manager;
+
+
+ protected String repositoryId;
+
+
+
+ public SvnConnection (
+ String address) throws StringIndexOutOfBoundsException {
+
+ this.svnPath = address.substring(0,address.lastIndexOf("/"));
+
+ this.fileName = address.substring(address.lastIndexOf("/")+1);
+
+ try {
+ this.remoteUrl = SVNURL.parseURIEncoded(svnPath);
+ } catch (SVNException e) {
+ if(log.isErrorEnabled()) {
+ log.error("Can't parse svnPath", e);
+ }
+ }
+
+ this.authManager = SVNWCUtil.createDefaultAuthenticationManager();
+ this.svnOption = SVNWCUtil.createDefaultOptions(false);
+ this.svnOption.setPropertyValue(SVNProperty.EOL_STYLE, SVNProperty.EOL_STYLE_LF);
+ this.manager = SVNClientManager.newInstance(this.svnOption, this.authManager);
+ }
+
+ public void updateAuthentication(String login, String password) {
+ setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(login, password));
+ setManager(SVNClientManager.newInstance(getSvnOption(), getAuthManager()));
+ }
+
+ public ISVNAuthenticationManager getAuthManager() {
+ return authManager;
+ }
+
+ public void setAuthManager(ISVNAuthenticationManager authManager) {
+ this.authManager = authManager;
+ }
+
+ public File getCheckoutdir() {
+ return checkoutdir;
+ }
+
+ public void createCheckoutdir() throws IOException {
+ this.checkoutdir = FileUtil.createTempDirectory("scm_", "");
+ }
+
+ public void setCheckoutdir(File checkoutdir) {
+ this.checkoutdir = checkoutdir;
+ }
+
+ public String getFileName() {
+ return fileName;
+ }
+
+ public void setFileName(String fileName) {
+ this.fileName = fileName;
+ }
+
+ public SVNClientManager getManager() {
+ return manager;
+ }
+
+ public void setManager(SVNClientManager manager) {
+ this.manager = manager;
+ }
+
+ public SVNURL getRemoteUrl() {
+ return remoteUrl;
+ }
+
+ public void setRemoteUrl(SVNURL remoteUrl) {
+ this.remoteUrl = remoteUrl;
+ }
+
+ public DefaultSVNOptions getSvnOption() {
+ return svnOption;
+ }
+
+ public void setSvnOption(DefaultSVNOptions svnOption) {
+ this.svnOption = svnOption;
+ }
+
+ public String getSvnPath() {
+ return svnPath;
+ }
+
+ public void setSvnPath(String svnPath) {
+ this.svnPath = svnPath;
+ }
+
+ public String getRepositoryId() {
+ return repositoryId;
+ }
+
+ public void setRepositoryId(String repositoryId) {
+ this.repositoryId = repositoryId;
+ }
+
+
+
+}
Deleted: trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -1,161 +0,0 @@
-/*
- * #%L
- * Nuiton-ScmWebEditor
- *
- * $Id$
- * $HeadURL$
- * %%
- * Copyright (C) 2009 - 2010 CodeLutin
- * %%
- * This program is free software: you can redistribute it and/or modify
- * it under the terms of the GNU Lesser General Public License as
- * published by the Free Software Foundation, either version 3 of the
- * License, or (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Lesser Public License for more details.
- *
- * You should have received a copy of the GNU General Lesser Public
- * License along with this program. If not, see
- * <http://www.gnu.org/licenses/lgpl-3.0.html>.
- * #L%
- */
-package org.nuiton.scmwebeditor;
-
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
-import org.nuiton.util.FileUtil;
-import org.tmatesoft.svn.core.SVNException;
-import org.tmatesoft.svn.core.SVNProperty;
-import org.tmatesoft.svn.core.SVNURL;
-import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
-import org.tmatesoft.svn.core.internal.wc.DefaultSVNOptions;
-import org.tmatesoft.svn.core.wc.SVNClientManager;
-import org.tmatesoft.svn.core.wc.SVNWCUtil;
-
-import java.io.File;
-import java.io.IOException;
-
-public class SvnSession {
-
-
- private static final Log log = LogFactory.getLog(SvnSession.class);
- /**
- * svn path without fileName
- */
- protected String svnPath;
- /**
- * fileName of modif file
- */
- protected String fileName;
- /**
- * Temp directory for checkout
- */
- protected File checkoutdir;
- /**
- * url of svn path
- */
- protected SVNURL remoteUrl;
- /**
- * AuthenticationManager with login and password
- */
- protected ISVNAuthenticationManager authManager;
- /**
- * svn default option
- */
- protected DefaultSVNOptions svnOption;
- /**
- *
- */
- protected SVNClientManager manager;
-
-
- public SvnSession (
- String address) throws StringIndexOutOfBoundsException {
-
- this.svnPath = address.substring(0,address.lastIndexOf("/"));
-
- this.fileName = address.substring(address.lastIndexOf("/")+1);
-
-
- try {
- this.remoteUrl = SVNURL.parseURIEncoded(svnPath);
- } catch (SVNException e) {
- log.debug("SVNSESS NULL");
- }
- this.authManager = SVNWCUtil.createDefaultAuthenticationManager();
- this.svnOption = SVNWCUtil.createDefaultOptions(false);
- this.svnOption.setPropertyValue(SVNProperty.EOL_STYLE, SVNProperty.EOL_STYLE_LF);
- this.manager = SVNClientManager.newInstance(this.svnOption, this.authManager);
- }
-
- public void updateAuthentication(String login, String password) {
- setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(login, password));
- setManager(SVNClientManager.newInstance(getSvnOption(), getAuthManager()));
- }
-
- public ISVNAuthenticationManager getAuthManager() {
- return authManager;
- }
-
- public void setAuthManager(ISVNAuthenticationManager authManager) {
- this.authManager = authManager;
- }
-
- public File getCheckoutdir() {
- return checkoutdir;
- }
-
- public void createCheckoutdir() throws IOException {
- this.checkoutdir = FileUtil.createTempDirectory("scm_", "");
- }
-
- public void setCheckoutdir(File checkoutdir) {
- this.checkoutdir = checkoutdir;
- }
-
- public String getFileName() {
- return fileName;
- }
-
- public void setFileName(String fileName) {
- this.fileName = fileName;
- }
-
- public SVNClientManager getManager() {
- return manager;
- }
-
- public void setManager(SVNClientManager manager) {
- this.manager = manager;
- }
-
- public SVNURL getRemoteUrl() {
- return remoteUrl;
- }
-
- public void setRemoteUrl(SVNURL remoteUrl) {
- this.remoteUrl = remoteUrl;
- }
-
- public DefaultSVNOptions getSvnOption() {
- return svnOption;
- }
-
- public void setSvnOption(DefaultSVNOptions svnOption) {
- this.svnOption = svnOption;
- }
-
- public String getSvnPath() {
- return svnPath;
- }
-
- public void setSvnPath(String svnPath) {
- this.svnPath = svnPath;
- }
-
-
-
-}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -5,7 +5,8 @@
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
-import org.nuiton.scmwebeditor.SvnSession;
+import org.nuiton.scmwebeditor.SvnConnection;
+import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNException;
import org.tmatesoft.svn.core.SVNNodeKind;
import org.tmatesoft.svn.core.SVNURL;
@@ -30,6 +31,8 @@
protected String username;
protected String pw;
+
+ protected String error;
public String getLastRevision() {
@@ -47,19 +50,24 @@
public void setPw(String pw) {
this.pw = pw;
}
+
+ public void getErreur(String error) {
+ this.error = error;
+ }
public String execute() {
- SvnSession svnSess = null;
+ SvnConnection svnSess = null;
try {
- svnSess = new SvnSession(address);
+ svnSess = new SvnConnection(address);
} catch (StringIndexOutOfBoundsException e) {
if(log.isErrorEnabled()) {
log.error("Can't reach the svn repository");
}
+ error = "errorPath";
return "errorPath";
}
@@ -103,10 +111,18 @@
}
+ catch (SVNAuthenticationException authexep) {
+ if(log.isErrorEnabled()) {
+ log.error("AUTH FAIL");
+ }
+ error = "authError";
+ return "authError";
+ }
catch (SVNException e) {
if(log.isErrorEnabled()) {
log.error("Can't reach the svn repository");
}
+ error = "errorPath";
return "errorPath";
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -5,7 +5,6 @@
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
import org.apache.commons.io.FileUtils;
import org.apache.commons.lang.StringEscapeUtils;
@@ -14,7 +13,7 @@
import org.apache.struts2.interceptor.ServletRequestAware;
import org.nuiton.jrst.JRST;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
-import org.nuiton.scmwebeditor.SvnSession;
+import org.nuiton.scmwebeditor.SvnConnection;
import org.nuiton.util.FileUtil;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNDepth;
@@ -145,19 +144,18 @@
if(fileType.equals("rst")) {
if(!testRstParsing(newText)) {
- return "errorRst";
+ return "error";
}
}
- HttpSession httpSession = request.getSession(true);
- SvnSession svnSess = null;
+ SvnConnection svnSess = null;
log.info("ADDRESS : "+address);
try {
- svnSess = new SvnSession(address);
+ svnSess = new SvnConnection(address);
} catch (StringIndexOutOfBoundsException e) {
if(log.isDebugEnabled()) {
log.debug("Parameter is not valid ",e);
@@ -165,8 +163,27 @@
return "error";
}
+
+ String login = this.getUsername();
+ String password = this.getPw();
+
+ if(login==null && password==null) {
+ if(getScmSession().getUsername(address)!=null && getScmSession().getPassword(address)!=null) {
+ //On recupère les identifiants en session
+ login = getScmSession().getUsername(address);
+ password = getScmSession().getPassword(address);
+ }
+ else {
+ login = "anonymous";
+ password = "anonymous";
+ }
+ }
+ else {
+ getScmSession().addScmUser(address, login , password);
+ }
+
- svnSess.updateAuthentication( username, pw);
+ svnSess.updateAuthentication( login, password);
File checkoutdir = null;
try {
@@ -211,8 +228,6 @@
request.setAttribute("lastText", lastText);
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText));
- request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60));
- request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI());
// End on first part
@@ -267,9 +282,7 @@
request.setAttribute("address", address);
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(newText));
- request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60));
- request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI());
- request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet");
+
request.setAttribute(ATTRIBUTE_BAD_LOGIN, true);
//Suppression du repertoire temporaire
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -18,7 +18,7 @@
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
-import org.nuiton.scmwebeditor.SvnSession;
+import org.nuiton.scmwebeditor.SvnConnection;
import org.nuiton.scmwebeditor.urlResolver.ScmUrlResolverEngine;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNException;
@@ -27,15 +27,13 @@
import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
-import org.tmatesoft.svn.core.wc.SVNWCUtil;
+import com.opensymphony.xwork2.Action;
-import com.opensymphony.xwork2.Action;
+public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements ServletRequestAware {
-public class ScmWebEditorMainAction extends ScmWebEditorBaseAction implements ServletRequestAware {
-
private static final long serialVersionUID = 8361035067228171624L;
private static final Log log = LogFactory.getLog(ScmWebEditorMainAction.class);
@@ -44,12 +42,39 @@
protected String projectUrl;
protected String format;
+ protected String addressSvn;
+
+ public String getAddressSvn() {
+ return addressSvn;
+ }
+
+
+ public void setAddressSvn(String addressSvn) {
+ this.addressSvn = addressSvn;
+ }
+
+
protected String username;
protected String pw;
protected HttpServletRequest request;
+
+ protected String repositoryId;
+
+
+
+ public String getRepositoryId() {
+ return repositoryId;
+ }
+
+
+ public void setRepositoryId(String repositoryId) {
+ this.repositoryId = repositoryId;
+ }
+
+
public String getUsername() {
return username;
}
@@ -183,11 +208,11 @@
}
- SvnSession svnSess = null;
+ SvnConnection svnConn = null;
try {
- svnSess = new SvnSession(address);
+ svnConn = new SvnConnection(address);
}
catch (StringIndexOutOfBoundsException e) {
if(log.isDebugEnabled()) {
@@ -197,26 +222,40 @@
}
- format = svnSess.getFileName().substring(svnSess.getFileName().lastIndexOf(".")+1);
+ format = svnConn.getFileName().substring(svnConn.getFileName().lastIndexOf(".")+1);
String originalText = "";
String login = this.getUsername();
- String pw = this.getPw();
- String url = svnSess.getSvnPath();
- String file = svnSess.getFileName();
+ String password = this.getPw();
+ String url = svnConn.getSvnPath();
+ String file = svnConn.getFileName();
- if(login==null && pw==null) {
- login = "anonymous";
- pw = "anonymous";
+
+ log.info("login : "+login+" password : "+password);
+
+ if(login==null && password==null) {
+ if(getScmSession().getUsername(address)!=null && getScmSession().getPassword(address)!=null) {
+ //On recupère les identifiants en session
+ login = getScmSession().getUsername(address);
+ password = getScmSession().getPassword(address);
+ }
+ else {
+ login = "anonymous";
+ password = "anonymous";
+ }
}
+ else {
+ getScmSession().addScmUser(address, login , password);
+ }
+
+ svnConn.updateAuthentication(login, password);
-
SVNRepository repository = null;
try {
repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
- ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , pw );
+ ISVNAuthenticationManager authManager = svnConn.getAuthManager();
repository.setAuthenticationManager( authManager );
SVNNodeKind nodeKind = repository.checkPath( file , -1 );
@@ -257,7 +296,7 @@
// if svn authentication failed user is redirected on login page
if(log.isDebugEnabled()) {
- log.debug("Private SCM on reading " + svnSess.getRemoteUrl());
+ log.debug("Private SCM on reading " + svnConn.getRemoteUrl());
}
//redirect to a login page
return Action.LOGIN;
@@ -283,7 +322,7 @@
String mimeType =null;
try {
- mimeType = getMimeType(originalText, svnSess.getFileName());
+ mimeType = getMimeType(originalText, svnConn.getFileName());
} catch (IOException e) {
if(log.isErrorEnabled()) {
log.error("Can't get MimeType, problem when reading file",e);
@@ -294,7 +333,7 @@
/*
String[] mimeTypes =null;
try {
- mimeTypes = getMimeTypes(originalText, svnSess.getFileName());
+ mimeTypes = getMimeTypes(originalText, svnConn.getFileName());
log.info("size : "+mimeTypes.length);
@@ -362,6 +401,8 @@
log.info("IP client : "+request.getRemoteAddr() + " , get file : "+address+ ". File's mimetype : "+mimeType);
}
+
+
return "editPage";
@@ -372,6 +413,9 @@
public void setServletRequest(HttpServletRequest request) {
this.request = request;
}
+
+
+
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/SearchAction.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -201,8 +201,8 @@
repository.setAuthenticationManager( authManager );
if(log.isDebugEnabled()) {
- log.debug( "Repository Root: " + repository.getRepositoryRoot( true ) );
- log.debug( "Repository UUID: " + repository.getRepositoryUUID( true ) );
+ log.debug( "Repository Root: " + repository.getRepositoryRoot( true ) );
+ log.debug( "Repository UUID: " + repository.getRepositoryUUID( true ) );
}
SVNNodeKind nodeKind = repository.checkPath( "" , -1 );
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -5,14 +5,13 @@
import java.io.IOException;
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
import org.apache.commons.io.FileUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.struts2.interceptor.ServletRequestAware;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
-import org.nuiton.scmwebeditor.SvnSession;
+import org.nuiton.scmwebeditor.SvnConnection;
import org.nuiton.util.FileUtil;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNDepth;
@@ -107,10 +106,10 @@
}
- SvnSession svnSess = null;
+ SvnConnection svnSess = null;
try {
- svnSess = new SvnSession(address);
+ svnSess = new SvnConnection(address);
}
catch (StringIndexOutOfBoundsException e) {
if(log.isErrorEnabled()) {
Modified: trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
===================================================================
--- trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-08 14:13:39 UTC (rev 206)
@@ -13,8 +13,8 @@
scm.info.ProblemWithRst=Si vous rencontrez des problemes avec RestruturedText, visitez le
scm.info.rstWebsite=site de la documentation RST
scm.language=Langage
-scm.logAs=Connecte en tant que
-scm.loginButton=Connection
+scm.logAs=Connecte en tant que \:
+scm.loginButton=Connexion
scm.modificationViewer.betterUseJavascript=
scm.modificationViewer.noJavascript=Javascript est desactive. Vous pouvais seulement utiliser les boutons sauvegarder et quitter, quitter ou upload.
scm.mustBeLog=Vous devez vous identifier pour parcourir ce depot.
Modified: trunk/src/main/resources/struts.xml
===================================================================
--- trunk/src/main/resources/struts.xml 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/resources/struts.xml 2011-08-08 14:13:39 UTC (rev 206)
@@ -30,6 +30,8 @@
<action name="reset" class="org.nuiton.scmwebeditor.actions.ResetAction" >
<result>/WEB-INF/content/reset.jsp</result>
+ <result name="authError">/WEB-INF/content/reset.jsp</result>
+ <result name="errorPath">/WEB-INF/content/reset.jsp</result>
</action>
<action name="doUpload" class="org.nuiton.scmwebeditor.actions.UploadAction" >
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-08 14:13:39 UTC (rev 206)
@@ -1,5 +1,8 @@
<%-- Document : ModificationViewer Created on : 10 sept. 2009, 13:43:11 Author : glorieux --%>
<%@page import="org.apache.commons.lang.StringEscapeUtils"%>
+ <%@page import="java.util.Map"%>
+ <%@page import="org.nuiton.scmwebeditor.ScmSession"%>
+
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
@@ -127,7 +130,6 @@
- <script src="js/gereSession.js" type="text/javascript"></script>
<script src="js/cancelRedirect.js" type="text/javascript"></script>
<script src="js/pictureUpload.js" type="text/javascript"></script>
<noscript><h4><s:text name="scm.modificationViewer.noJavascript"/></h4></noscript>
@@ -157,24 +159,89 @@
<p>
- <s:set id="scm.username">
- <s:text name="scm.username"/>
- </s:set>
- <s:set id="scm.usernameTitle">
- <s:text name="scm.usernameTitle"/>
- </s:set>
- <s:set id="scm.password">
- <s:text name="scm.password"/>
- </s:set>
- <s:set id="scm.passwordTitle">
- <s:text name="scm.passwordTitle"/>
- </s:set>
- <div id="loginDiv">
- <s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" />
- <s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
- </div>
+<%
+Object obj = session.getAttribute("ScmSession");
+String usernameSvn = null;
+String passwordSvn = null;
+if(obj!=null) {
+ ScmSession scmSession = (ScmSession) obj;
+ if(request.getAttribute("address")!=null) {
+ String address = request.getAttribute("address").toString();
+ usernameSvn = scmSession.getUsername(address);
+ passwordSvn = scmSession.getPassword(address);
+ }
+}
+%>
+<%
+ if (usernameSvn==null || passwordSvn==null) {
+%>
+ <s:set id="scm.username">
+ <s:text name="scm.username"/>
+ </s:set>
+ <s:set id="scm.usernameTitle">
+ <s:text name="scm.usernameTitle"/>
+ </s:set>
+ <s:set id="scm.password">
+ <s:text name="scm.password"/>
+ </s:set>
+ <s:set id="scm.passwordTitle">
+ <s:text name="scm.passwordTitle"/>
+ </s:set>
+ <div id="loginDiv">
+ <s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" />
+ <s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
+ </div>
+ <%
+ } else {
+%>
+ <s:text name="scm.logAs" /> <%=usernameSvn%> <br/>
+
+ <input type="hidden" value="<%=usernameSvn%>" name="username" />
+ <input type="hidden" value="<%=passwordSvn%>" name="pw" />
+<% } %>
+
+
+<%-- <s:set name="addressSvn"> --%>
+<%-- <s:property value="address" /> --%>
+<%-- </s:set> --%>
+<%-- <s:set name="usernameSvn"> --%>
+<%-- <s:property value="#session.ScmSession"/> --%>
+<%-- </s:set> --%>
+<%-- <s:set name="passwordSvn"> --%>
+<%-- <s:property value="#session.ScmSession"/> --%>
+<%-- </s:set> --%>
+
+<%-- <h1><s:property value="%{usernameSvn}" /></h1> --%>
+<%-- <h1><s:property value="%{passwordSvn}" /></h1> --%>
+
+<%-- <s:if test="%{username}==null"> --%>
+<%-- <s:set id="scm.username"> --%>
+<%-- <s:text name="scm.username"/> --%>
+<%-- </s:set> --%>
+<%-- <s:set id="scm.usernameTitle"> --%>
+<%-- <s:text name="scm.usernameTitle"/> --%>
+<%-- </s:set> --%>
+<%-- <s:set id="scm.password"> --%>
+<%-- <s:text name="scm.password"/> --%>
+<%-- </s:set> --%>
+<%-- <s:set id="scm.passwordTitle"> --%>
+<%-- <s:text name="scm.passwordTitle"/> --%>
+<%-- </s:set> --%>
+<!-- <div id="loginDiv"> -->
+<%-- <s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" /> --%>
+<%-- <s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" /> --%>
+<!-- </div> -->
+<%-- </s:if> --%>
+<%-- <s:else> --%>
+<%-- Login as : <s:property value="%{username}" /><br/> --%>
+
+<%-- <s:hidden value="%{username}" label="%{scm.username}" name="username" /> --%>
+<%-- <s:hidden value="%{tototo}" label="%{scm.password}" name="pw" /> --%>
+<%-- </s:else> --%>
+
+
<input type="hidden" name="address" value="<%=request.getAttribute("address")%>"/>
<input type="hidden" id="origText" name="origText" value="<%=request.getAttribute("OrigText")%>"/>
<% if(request.getAttribute("lastText")!=null) { %>
@@ -286,9 +353,8 @@
<s:text name="scm.uploadTitle"/>
</s:set>
-
<s:set name="address">
- <s:property value="address"/>
+ <s:property value="address" />
</s:set>
<s:hidden id="fileaddress" value="%{address}" />
<center>
Modified: trunk/src/main/webapp/WEB-INF/content/reset.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/reset.jsp 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/webapp/WEB-INF/content/reset.jsp 2011-08-08 14:13:39 UTC (rev 206)
@@ -5,8 +5,16 @@
</s:set>
<s:hidden id="valueOfLastRevision" value="%{lastRevision}" />
- <script type="text/javascript">
-
- editor.mirror.setValue(document.getElementById('valueOfLastRevision').value);
-
- </script>
\ No newline at end of file
+ <s:if test="error=='authError'">
+ <p><font color="red"><s:text name="scm.badUsernameOrPassword"/></font></p>
+ </s:if>
+ <s:elseif test="error=='errorPath'">
+ <p><font color="red"><s:text name="scm.erreurRepo"/></font></p>
+ </s:elseif>
+ <s:else>
+ <script type="text/javascript">
+
+ editor.mirror.setValue(document.getElementById('valueOfLastRevision').value);
+
+ </script>
+ </s:else>
\ No newline at end of file
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-08 14:13:39 UTC (rev 206)
@@ -1,5 +1,6 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
+ <%@page import="org.nuiton.scmwebeditor.ScmSession"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
@@ -9,20 +10,45 @@
</head>
<body>
- <form method="POST" id="uploadForm" action="doUpload.action" enctype="multipart/form-data">
- <label><s:text name="scm.uploadFile" /> : <input type="file" name="upload"/></label><br/>
- <label><s:text name="scm.uploadPath" /> : <input type="text" name="svnPath" /></label><br/>
- <label><s:text name="scm.username" /> : <input type="text" name="username" /></label><br/>
- <label><s:text name="scm.password" /> : <input type="password" name="pw" /></label><br/>
- <input type="hidden" name="address" value="<%=request.getParameter("address") %>" />
+ <form method="POST" id="uploadForm" action="doUpload.action" enctype="multipart/form-data">
+ <label><s:text name="scm.uploadFile" /> : <input type="file" name="upload"/></label><br/>
+ <label><s:text name="scm.uploadPath" /> : <input type="text" name="svnPath" /></label><br/>
+
+ <%
+ Object obj = session.getAttribute("ScmSession");
+ String usernameSvn = null;
+ String passwordSvn = null;
+ if(obj!=null) {
+ ScmSession scmSession = (ScmSession) obj;
+ if(request.getParameter("address")!=null) {
+ String address = request.getParameter("address").toString();
+ usernameSvn = scmSession.getUsername(address);
+ passwordSvn = scmSession.getPassword(address);
+ }
+ }
+
+ if (usernameSvn==null || passwordSvn==null) {
+ %>
+ <label><s:text name="scm.username" /> : <input type="text" name="username" /></label><br/>
+ <label><s:text name="scm.password" /> : <input type="password" name="pw" /></label><br/>
+ <%
+ } else {
+ %>
+ <s:text name="scm.logAs" /> <%=usernameSvn%> <br/>
+ <input type="hidden" value="<%=usernameSvn%>" name="username" />
+ <input type="hidden" value="<%=passwordSvn%>" name="pw" />
+ <% } %>
+
+
+ <input type="hidden" name="address" value="<%=request.getParameter("address") %>" />
<s:if test="badLogin">
<p><font color="red"><s:text name="scm.badUsernameOrPassword"/></font></p>
</s:if>
<s:elseif test="error">
<p><font color="red"><s:text name="scm.erreurRepo"/></font></p>
</s:elseif>
- <input type="submit"/>
- </form>
+ <input type="submit"/>
+ </form>
</body>
</html>
\ No newline at end of file
Modified: trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
===================================================================
--- trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-04 12:17:49 UTC (rev 205)
+++ trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-08 14:13:39 UTC (rev 206)
@@ -94,7 +94,7 @@
public void testCheckout() {
File checkoutdirTest = null;
try {
- SvnSession svnSess = new SvnSession(tgtURL.toString()+"/testFile");
+ SvnConnection svnSess = new SvnConnection(tgtURL.toString()+"/testFile");
checkoutdirTest = FileUtil.createTempDirectory("scmCheckOutTest_", "");
1
0
04 Aug '11
Author: kcardineaud
Date: 2011-08-04 14:17:49 +0200 (Thu, 04 Aug 2011)
New Revision: 205
Url: http://nuiton.org/repositories/revision/scmwebeditor/205
Log:
Fix a test in BaseActionTest
Modified:
trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
Modified: trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
===================================================================
--- trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-04 10:24:51 UTC (rev 204)
+++ trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-04 12:17:49 UTC (rev 205)
@@ -94,7 +94,7 @@
public void testCheckout() {
File checkoutdirTest = null;
try {
- SvnSession svnSess = new SvnSession(tgtURL.toString());
+ SvnSession svnSess = new SvnSession(tgtURL.toString()+"/testFile");
checkoutdirTest = FileUtil.createTempDirectory("scmCheckOutTest_", "");
@@ -125,8 +125,6 @@
searchAction.listEntries(repository , "");
files = new LinkedList<String>();
files.addAll(searchAction.getFiles());
- System.out.println(files.get(0));
-
} catch (SVNException e) {
log.error("Erreur SVN in test",e);
}
1
0
r204 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 04 Aug '11
by kcardineaud@users.nuiton.org 04 Aug '11
04 Aug '11
Author: kcardineaud
Date: 2011-08-04 12:24:51 +0200 (Thu, 04 Aug 2011)
New Revision: 204
Url: http://nuiton.org/repositories/revision/scmwebeditor/204
Log:
Remove the creation of the session in Main Action
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-04 10:06:54 UTC (rev 203)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-04 10:24:51 UTC (rev 204)
@@ -11,7 +11,6 @@
import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
import org.apache.commons.lang.StringEscapeUtils;
@@ -135,13 +134,14 @@
// return "noParameter";
// }
+
+ projectUrl=request.getHeader("referer");
+
if(log.isDebugEnabled()) {
- log.debug("ProjectUrl= "+request.getHeader("referer"));
+ log.debug("ProjectUrl= "+projectUrl);
}
- projectUrl=request.getHeader("referer");
- HttpSession httpSession = request.getSession(true);
Map<?,?> map =(Map<?,?>) request.getParameterMap();
@@ -182,12 +182,9 @@
}
-
- //SvnSession object creation if doesn't already exist
- SvnSession svnSess = getSvnSession(httpSession);
+
+ SvnSession svnSess = null;
-
-
try {
svnSess = new SvnSession(address);
@@ -359,9 +356,7 @@
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText));
- request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60));
request.setAttribute(ATTRIBUTE_PROJECT_URL, projectUrl);
- request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI());
if(log.isInfoEnabled()) {
log.info("IP client : "+request.getRemoteAddr() + " , get file : "+address+ ". File's mimetype : "+mimeType);
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-04 10:06:54 UTC (rev 203)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-04 10:24:51 UTC (rev 204)
@@ -48,7 +48,7 @@
</head>
-<body onload="geresession(<%=request.getAttribute("InvalidateMaxTime")%>, 5);">
+<body>
<a title="ScmWebEditor Project Website" target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="ScmWebEditor logo"/></a>
<center>
1
0
Author: kcardineaud
Date: 2011-08-04 12:06:54 +0200 (Thu, 04 Aug 2011)
New Revision: 203
Url: http://nuiton.org/repositories/revision/scmwebeditor/203
Log:
Remove properties in pom.xml
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-04 10:03:03 UTC (rev 202)
+++ trunk/pom.xml 2011-08-04 10:06:54 UTC (rev 203)
@@ -195,7 +195,7 @@
<strutsxworksVersion>2.2.3</strutsxworksVersion>
<nuitonI18nVersion>2.4</nuitonI18nVersion>
- <scmwebeditorUrl>http://localhost:8080/scmwebeditor/checkout.action</scmwebeditorUrl>
+<!-- <scmwebeditorUrl>http://localhost:8080/scmwebeditor/checkout.action</scmwebeditorUrl> -->
<i18n.bundles>fr_FR,en_GB</i18n.bundles>
<i18n.silent>true</i18n.silent>
@@ -207,7 +207,7 @@
<!-- extra files to include in release -->
<redmine.releaseFiles>${redmine.libReleaseFiles}</redmine.releaseFiles>
- <nuitonSkinVersion>1.0.6-SNAPSHOT</nuitonSkinVersion>
+<!-- <nuitonSkinVersion>1.0.6-SNAPSHOT</nuitonSkinVersion> -->
</properties>
1
0
r202 - in trunk: . src/main/java/org/nuiton/scmwebeditor/actions src/main/webapp/WEB-INF/content src/main/webapp/js
by kcardineaud@users.nuiton.org 04 Aug '11
by kcardineaud@users.nuiton.org 04 Aug '11
04 Aug '11
Author: kcardineaud
Date: 2011-08-04 12:03:03 +0200 (Thu, 04 Aug 2011)
New Revision: 202
Url: http://nuiton.org/repositories/revision/scmwebeditor/202
Log:
Fix somme issues with upload to use it without session
Modified:
trunk/pom.xml
trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
trunk/src/main/webapp/js/pictureUpload.js
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-04 09:52:16 UTC (rev 201)
+++ trunk/pom.xml 2011-08-04 10:03:03 UTC (rev 202)
@@ -195,7 +195,7 @@
<strutsxworksVersion>2.2.3</strutsxworksVersion>
<nuitonI18nVersion>2.4</nuitonI18nVersion>
- <!-- <scmwebeditorUrl>http://localhost:8080/scmwebeditor/checkout.action</scmwebeditorUrl> -->
+ <scmwebeditorUrl>http://localhost:8080/scmwebeditor/checkout.action</scmwebeditorUrl>
<i18n.bundles>fr_FR,en_GB</i18n.bundles>
<i18n.silent>true</i18n.silent>
@@ -207,7 +207,7 @@
<!-- extra files to include in release -->
<redmine.releaseFiles>${redmine.libReleaseFiles}</redmine.releaseFiles>
-<!-- <nuitonSkinVersion>1.0.6-SNAPSHOT</nuitonSkinVersion> -->
+ <nuitonSkinVersion>1.0.6-SNAPSHOT</nuitonSkinVersion>
</properties>
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-04 09:52:16 UTC (rev 201)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-04 10:03:03 UTC (rev 202)
@@ -36,6 +36,7 @@
protected String username;
protected String pw;
protected String svnPath;
+ protected String address;
protected boolean badLogin;
protected boolean error;
@@ -79,6 +80,10 @@
public void setPw(String pw) {
this.pw = pw;
}
+
+ public void setAddress(String address) {
+ this.address = address;
+ }
public boolean isBadLogin() {
return badLogin;
@@ -102,11 +107,20 @@
}
- HttpSession httpSession = request.getSession(true);
- SvnSession svnSess = getSvnSession(httpSession);
+ SvnSession svnSess = null;
+ try {
+ svnSess = new SvnSession(address);
+ }
+ catch (StringIndexOutOfBoundsException e) {
+ if(log.isErrorEnabled()) {
+ log.error("error when creating SvnSession in UploadAction",e);
+ }
+ error=true;
+ return "error";
+ }
-
+ svnSess.updateAuthentication( username, pw);
/*
* Checkout process
*/
@@ -125,6 +139,9 @@
}
+
+
+
try {
if (log.isDebugEnabled()) {
log.debug("Do Checkout of " + svnSess.getRemoteUrl());
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-04 09:52:16 UTC (rev 201)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-04 10:03:03 UTC (rev 202)
@@ -268,6 +268,8 @@
<s:set id="scm.exitJavascript">
<s:text name="scm.exitJavascript"/>
</s:set>
+
+
<s:submit title="%{scm.exitTitle}" type="button" value="%{scm.exit}" name="Cancel" onclick="return cancelRedirect('%{scm.exitJavascript}',this.form.ProjectUrl);"/>
@@ -283,8 +285,14 @@
<s:set id="scm.uploadTitle">
<s:text name="scm.uploadTitle"/>
</s:set>
+
+
+ <s:set name="address">
+ <s:property value="address"/>
+ </s:set>
+ <s:hidden id="fileaddress" value="%{address}" />
<center>
- <s:submit name="uploadButton" value="%{scm.upload}" title="%{scm.uploadTitle}" onClick="javascript:upload_popup('doUpload.action','upload');" />
+ <s:submit name="uploadButton" value="%{scm.upload}" title="%{scm.uploadTitle}" onClick="javascript:upload_popup('doUpload.action', 'upload' , getElementById('fileaddress') );" />
</center>
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-04 09:52:16 UTC (rev 201)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-04 10:03:03 UTC (rev 202)
@@ -14,7 +14,7 @@
<label><s:text name="scm.uploadPath" /> : <input type="text" name="svnPath" /></label><br/>
<label><s:text name="scm.username" /> : <input type="text" name="username" /></label><br/>
<label><s:text name="scm.password" /> : <input type="password" name="pw" /></label><br/>
-
+ <input type="hidden" name="address" value="<%=request.getParameter("address") %>" />
<s:if test="badLogin">
<p><font color="red"><s:text name="scm.badUsernameOrPassword"/></font></p>
</s:if>
Modified: trunk/src/main/webapp/js/pictureUpload.js
===================================================================
--- trunk/src/main/webapp/js/pictureUpload.js 2011-08-04 09:52:16 UTC (rev 201)
+++ trunk/src/main/webapp/js/pictureUpload.js 2011-08-04 10:03:03 UTC (rev 202)
@@ -1,4 +1,5 @@
-function upload_popup(page, name)
+function upload_popup(page, name, fileAddress)
{
-window.open (page, name, config='top=300, left=300, height=300, width=500, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no')
+ var address = fileAddress.value;
+ window.open (page+'?address='+address, name, config='top=300, left=300, height=300, width=500, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no')
}
\ No newline at end of file
1
0
Author: tchemit
Date: 2011-08-04 11:52:16 +0200 (Thu, 04 Aug 2011)
New Revision: 201
Url: http://nuiton.org/repositories/revision/scmwebeditor/201
Log:
Update mavenpom4redmine to 3.0.
Modified:
trunk/pom.xml
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-03 15:55:15 UTC (rev 200)
+++ trunk/pom.xml 2011-08-04 09:52:16 UTC (rev 201)
@@ -10,7 +10,7 @@
<parent>
<groupId>org.nuiton</groupId>
<artifactId>mavenpom4redmine</artifactId>
- <version>2.5.5</version>
+ <version>3.0</version>
</parent>
<artifactId>scmwebeditor</artifactId>
1
0
03 Aug '11
Author: kcardineaud
Date: 2011-08-03 17:55:15 +0200 (Wed, 03 Aug 2011)
New Revision: 200
Url: http://nuiton.org/repositories/revision/scmwebeditor/200
Log:
Fix a test
Modified:
trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
Modified: trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
===================================================================
--- trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-03 15:54:19 UTC (rev 199)
+++ trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-03 15:55:15 UTC (rev 200)
@@ -94,10 +94,7 @@
public void testCheckout() {
File checkoutdirTest = null;
try {
- SvnSession svnSess = new SvnSession(
- tgtURL.toString(),
- "testFile",
- null);
+ SvnSession svnSess = new SvnSession(tgtURL.toString());
checkoutdirTest = FileUtil.createTempDirectory("scmCheckOutTest_", "");
1
0
r199 - in trunk/src: main/java/org/nuiton/scmwebeditor main/java/org/nuiton/scmwebeditor/actions main/webapp/WEB-INF/content main/webapp/js test/java/org/nuiton/scmwebeditor
by kcardineaud@users.nuiton.org 03 Aug '11
by kcardineaud@users.nuiton.org 03 Aug '11
03 Aug '11
Author: kcardineaud
Date: 2011-08-03 17:54:19 +0200 (Wed, 03 Aug 2011)
New Revision: 199
Url: http://nuiton.org/repositories/revision/scmwebeditor/199
Log:
Remove all informations stock in session
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/save.jsp
trunk/src/main/webapp/js/cancelRedirect.js
trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -225,17 +225,6 @@
}
- protected String getRedirectUrl(SvnSession svnSess) {
- StringBuilder buffer = new StringBuilder();
- buffer.append(svnSess.getScmEditorUrl());
- buffer.append('?').append(PARAMETER_ADDRESS).append('=').append(svnSess.getSvnPath()+svnSess.getFileName());
-
-
- String url = buffer.toString();
- return url;
- }
-
-
protected String getMimeType(File file) throws IOException, SAXException, TikaException {
InputStream is = new FileInputStream(file);
String result = null;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnSession.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -43,10 +43,6 @@
private static final Log log = LogFactory.getLog(SvnSession.class);
/**
- * Url of scm editor
- */
- protected StringBuffer scmEditorUrl;
- /**
* svn path without fileName
*/
protected String svnPath;
@@ -55,18 +51,6 @@
*/
protected String fileName;
/**
- * Projectname
- */
- protected String projectUrl;
- /**
- * user's login
- */
- protected String login;
- /**
- * user's password
- */
- protected String password;
- /**
* Temp directory for checkout
*/
protected File checkoutdir;
@@ -88,15 +72,14 @@
protected SVNClientManager manager;
- public SvnSession(
- String svnPath,
- String fileName,
- String projectUrl,
- StringBuffer scmEditorUrl) {
- this.scmEditorUrl = scmEditorUrl;
- this.svnPath = svnPath;
- this.fileName = fileName;
- this.projectUrl = projectUrl;
+ public SvnSession (
+ String address) throws StringIndexOutOfBoundsException {
+
+ this.svnPath = address.substring(0,address.lastIndexOf("/"));
+
+ this.fileName = address.substring(address.lastIndexOf("/")+1);
+
+
try {
this.remoteUrl = SVNURL.parseURIEncoded(svnPath);
} catch (SVNException e) {
@@ -109,9 +92,7 @@
}
public void updateAuthentication(String login, String password) {
- setLogin(login);
- setPassword(password);
- setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(getLogin(), getPassword()));
+ setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(login, password));
setManager(SVNClientManager.newInstance(getSvnOption(), getAuthManager()));
}
@@ -143,14 +124,6 @@
this.fileName = fileName;
}
- public String getLogin() {
- return login;
- }
-
- public void setLogin(String login) {
- this.login = login;
- }
-
public SVNClientManager getManager() {
return manager;
}
@@ -159,22 +132,6 @@
this.manager = manager;
}
- public String getPassword() {
- return password;
- }
-
- public void setPassword(String password) {
- this.password = password;
- }
-
- public String getProjectUrl() {
- return projectUrl;
- }
-
- public void setProjectUrl(String projectUrl) {
- this.projectUrl = projectUrl;
- }
-
public SVNURL getRemoteUrl() {
return remoteUrl;
}
@@ -199,13 +156,6 @@
this.svnPath = svnPath;
}
- public StringBuffer getScmEditorUrl() {
- return scmEditorUrl;
- }
- public void setScmEditorUrl(StringBuffer scmEditorUrl) {
- this.scmEditorUrl = scmEditorUrl;
- }
-
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -2,12 +2,8 @@
import java.io.ByteArrayOutputStream;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
-import org.apache.struts2.interceptor.ServletRequestAware;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
import org.nuiton.scmwebeditor.SvnSession;
import org.tmatesoft.svn.core.SVNException;
@@ -20,39 +16,59 @@
import com.opensymphony.xwork2.Action;
-public class ResetAction extends ScmWebEditorBaseAction implements ServletRequestAware {
+public class ResetAction extends ScmWebEditorBaseAction {
private static final long serialVersionUID = -1154924826535371319L;
private static final Log log = LogFactory.getLog(ResetAction.class);
- protected HttpServletRequest request;
+ protected String lastRevision;
- protected String lastRevision;
+ protected String address;
+
+ protected String username;
+
+ protected String pw;
public String getLastRevision() {
return lastRevision;
}
+ public void setAddress(String address) {
+ this.address = address;
+ }
+ public void setUsername(String username) {
+ this.username = username;
+ }
+ public void setPw(String pw) {
+ this.pw = pw;
+ }
+
+
public String execute() {
- HttpSession httpSession = request.getSession(true);
+
+ SvnSession svnSess = null;
- SvnSession svnSess = getSvnSession(httpSession);
+ try {
+ svnSess = new SvnSession(address);
+ } catch (StringIndexOutOfBoundsException e) {
+ if(log.isErrorEnabled()) {
+ log.error("Can't reach the svn repository");
+ }
+ return "errorPath";
+ }
-
- String login = svnSess.getLogin();
- String pw = svnSess.getPassword();
String url = svnSess.getSvnPath();
String file = svnSess.getFileName();
//Si le login ou le mot de passe ne sont pas renseignes, on tente de se connecter en anonyme
- if(login==null && pw==null) {
- login = "anonymous";
+ if(username==null && pw==null) {
+ username = "anonymous";
pw = "anonymous";
}
@@ -60,7 +76,7 @@
try {
repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
- ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , pw );
+ ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( username , pw );
repository.setAuthenticationManager( authManager );
SVNNodeKind nodeKind = repository.checkPath( file , -1 );
@@ -90,8 +106,8 @@
catch (SVNException e) {
if(log.isErrorEnabled()) {
log.error("Can't reach the svn repository");
- return "errorPath";
}
+ return "errorPath";
}
if(log.isInfoEnabled()) {
@@ -102,13 +118,6 @@
}
-
-
-
- @Override
- public void setServletRequest(HttpServletRequest request) {
- this.request = request;
- }
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -42,6 +42,7 @@
protected String address;
protected String lastText;
protected String fileType;
+ protected String projectUrl;
protected HttpServletRequest request;
@@ -109,7 +110,18 @@
public void setLastText(String lastText) {
this.lastText = lastText;
}
+
+ public String getProjectUrl() {
+ return projectUrl;
+ }
+
+ public void setProjectUrl(String projectUrl) {
+ this.projectUrl = projectUrl;
+ }
+
+
+
protected boolean testRstParsing(String newText) {
try {
JRST.generate(JRST.TYPE_HTML, newText);
@@ -140,13 +152,22 @@
HttpSession httpSession = request.getSession(true);
- SvnSession svnSess = getSvnSession(httpSession);
+ SvnSession svnSess = null;
-// Resetting authentification information and manager
- svnSess.updateAuthentication(
- svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : username,
- svnSess.getPassword() != null && !svnSess.getPassword().equalsIgnoreCase("") ? svnSess.getPassword() : pw);
+
+ log.info("ADDRESS : "+address);
+ try {
+ svnSess = new SvnSession(address);
+ } catch (StringIndexOutOfBoundsException e) {
+ if(log.isDebugEnabled()) {
+ log.debug("Parameter is not valid ",e);
+ }
+ return "error";
+ }
+
+ svnSess.updateAuthentication( username, pw);
+
File checkoutdir = null;
try {
checkoutdir = FileUtil.createTempDirectory("scm_", "");
@@ -191,15 +212,8 @@
request.setAttribute("lastText", lastText);
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText));
request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60));
- request.setAttribute(ATTRIBUTE_LOGIN, (svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : null));
- request.setAttribute(ATTRIBUTE_IS_LOGIN, (svnSess.getLogin() != null && svnSess.getPassword() != null && !svnSess.getLogin().equalsIgnoreCase("") && !svnSess.getPassword().equalsIgnoreCase("")));
- request.setAttribute(ATTRIBUTE_PROJECT_URL, svnSess.getProjectUrl());
- request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getScmEditorUrl());
- if (log.isDebugEnabled()) {
- log.debug("l'url est : " + svnSess.getScmEditorUrl());
- }
request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI());
- request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet");
+
// End on first part
@@ -208,7 +222,7 @@
* après avoir supprimé le repertoire temporaire
*/
delTempDirectory(checkoutdir);
- request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getProjectUrl());
+
return "error";
} catch (IOException e) {
log.error("Can't find the checkout file",e);
@@ -248,17 +262,12 @@
if(log.isErrorEnabled()) {
log.error("AUTH FAIL");
}
- svnSess.setLogin(null);
- svnSess.setPassword(null);
+
// if authentication failed edition page is reload form user's relogin
request.setAttribute("address", address);
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(newText));
request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60));
- request.setAttribute(ATTRIBUTE_LOGIN, (svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : null));
- request.setAttribute(ATTRIBUTE_IS_LOGIN, false);
- request.setAttribute(ATTRIBUTE_PROJECT_URL, svnSess.getProjectUrl());
- request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getScmEditorUrl());
request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI());
request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet");
@@ -272,7 +281,6 @@
}
//Suppression du repertoire temporaire
delTempDirectory(checkoutdir);
- request.setAttribute(ATTRIBUTE_REDIRECT_URL, getRedirectUrl(svnSess));
return "error";
}
@@ -281,8 +289,6 @@
//Suppression du repertoire temporaire
delTempDirectory(checkoutdir);
}
- //if commit success user is redirect on the project page
- request.setAttribute(ATTRIBUTE_REDIRECTION_URL, svnSess.getProjectUrl());
if(log.isDebugEnabled()) {
log.debug("End of commit");
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -79,7 +79,16 @@
this.address = address;
}
-
+ public String getFormat() {
+ return format;
+ }
+
+
+ public void setFormat(String format) {
+ this.format = format;
+ }
+
+
public String getProjectUrl() {
return projectUrl;
}
@@ -177,38 +186,24 @@
//SvnSession object creation if doesn't already exist
SvnSession svnSess = getSvnSession(httpSession);
- String relativePath;
- String scmFileName;
- try {
- relativePath = address.substring(0,address.lastIndexOf("/"));
- scmFileName = address.substring(address.lastIndexOf("/")+1);
+
+
+ try {
+ svnSess = new SvnSession(address);
}
catch (StringIndexOutOfBoundsException e) {
if(log.isDebugEnabled()) {
log.debug("Parameter is not valid ",e);
}
- return "errorPath";
+ return "errorPath";
}
- format = scmFileName.substring(scmFileName.lastIndexOf(".")+1);
+ format = svnSess.getFileName().substring(svnSess.getFileName().lastIndexOf(".")+1);
-
+ String originalText = "";
- svnSess = new SvnSession(
- relativePath,
- scmFileName,
- projectUrl,
- request.getRequestURL());
-
-
- setSvnSession(httpSession, svnSess);
-
-
- String originalText ="";
-
-
String login = this.getUsername();
String pw = this.getPw();
String url = svnSess.getSvnPath();
@@ -218,10 +213,7 @@
login = "anonymous";
pw = "anonymous";
}
- else {
- svnSess.setLogin(login);
- svnSess.setPassword(pw);
- }
+
SVNRepository repository = null;
@@ -366,18 +358,10 @@
- request.setAttribute(PARAMETER_FORMAT, format);
request.setAttribute(ATTRIBUTE_ORIG_TEXT, StringEscapeUtils.escapeHtml(originalText));
request.setAttribute(ATTRIBUTE_INVALIDATE_MAX_TIME, (httpSession.getMaxInactiveInterval() / 60));
- request.setAttribute(ATTRIBUTE_LOGIN, (svnSess.getLogin() != null && !svnSess.getLogin().equalsIgnoreCase("") ? svnSess.getLogin() : null));
- request.setAttribute(ATTRIBUTE_IS_LOGIN, (svnSess.getLogin() != null && svnSess.getPassword() != null && !svnSess.getLogin().equalsIgnoreCase("") && !svnSess.getPassword().equalsIgnoreCase("")));
- request.setAttribute(ATTRIBUTE_PROJECT_URL, svnSess.getProjectUrl());
- request.setAttribute(PARAMETER_SCM_EDITOR_URL, svnSess.getScmEditorUrl());
- if (log.isDebugEnabled()) {
- log.debug("l'url est : " + svnSess.getScmEditorUrl());
- }
+ request.setAttribute(ATTRIBUTE_PROJECT_URL, projectUrl);
request.setAttribute(ATTRIBUTE_SCM_EDITOR_URI, request.getRequestURI());
- request.setAttribute(ATTRIBUTE_PREVIEW_SERVLET_URL, request.getContextPath() + "/previewservlet");
if(log.isInfoEnabled()) {
log.info("IP client : "+request.getRemoteAddr() + " , get file : "+address+ ". File's mimetype : "+mimeType);
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -106,10 +106,7 @@
SvnSession svnSess = getSvnSession(httpSession);
-// Resetting authentification information and manager
- svnSess.updateAuthentication(username,pw);
-
-
+
/*
* Checkout process
*/
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-03 15:54:19 UTC (rev 199)
@@ -62,7 +62,7 @@
</center>
- <form method="post" action=commit.action id="editForm">
+ <form method="POST" action=commit.action id="editForm">
<%
if (request.getAttribute("format")!=null && request.getAttribute("format").equals("rst")){
%>
@@ -80,7 +80,6 @@
} else {
valueTextarea = (String) request.getAttribute("OrigText");
}
-
%>
@@ -148,15 +147,13 @@
<s:textfield required="true" label="%{scm.commitMessage}" name="commitMessage" title="%{scm.commitMessageTitle}" />
- <%if (request.getAttribute("IsLogin").equals(false) == true){
- %>
- <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %>
+ <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %>
<p>
<font color="red">
Bad username or password
</font>
</p>
- <% } %>
+ <% } %>
<p>
@@ -177,12 +174,7 @@
<s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
</div>
- <%
- } else {
- %><p><s:text name="scm.logAs"/> <%=request.getAttribute("Login")%></p>
- <input type="hidden" NAME=username />
- <input type="hidden" NAME=pw /><%
- }%>
+
<input type="hidden" name="address" value="<%=request.getAttribute("address")%>"/>
<input type="hidden" id="origText" name="origText" value="<%=request.getAttribute("OrigText")%>"/>
<% if(request.getAttribute("lastText")!=null) { %>
@@ -247,15 +239,17 @@
</s:set>
<s:set id="scm.resetTitle">
<s:text name="scm.resetTitle"/>
- </s:set>
- <sj:submit
+ </s:set>
+ <sj:submit
title="%{scm.resetTitle}"
+ formIds="editForm"
id="resetButton"
targets="resetResult"
value="%{scm.reset}"
button="true"
href="reset.action"
- />
+ >
+ </sj:submit>
<div id="resetResult"></div>
Modified: trunk/src/main/webapp/WEB-INF/content/save.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-03 15:54:19 UTC (rev 199)
@@ -3,7 +3,7 @@
- <s:if test="result=='authError'" >
+ <s:if test="result=='login'" >
<h4> <font color="red"> Bad username or password, can't save modification</font> </h4>
</s:if>
<s:elseif test="result=='error'" >
Modified: trunk/src/main/webapp/js/cancelRedirect.js
===================================================================
--- trunk/src/main/webapp/js/cancelRedirect.js 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/main/webapp/js/cancelRedirect.js 2011-08-03 15:54:19 UTC (rev 199)
@@ -6,8 +6,8 @@
function cancelRedirect(text, url)
{
if (confirm(text)){
- document.location.href(url.value);
- return false;
+ document.location.href=url.value;
+ return false;
}
else {return false};
}
\ No newline at end of file
Modified: trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java
===================================================================
--- trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-03 10:23:29 UTC (rev 198)
+++ trunk/src/test/java/org/nuiton/scmwebeditor/BaseActionTest.java 2011-08-03 15:54:19 UTC (rev 199)
@@ -97,7 +97,6 @@
SvnSession svnSess = new SvnSession(
tgtURL.toString(),
"testFile",
- null,
null);
checkoutdirTest = FileUtil.createTempDirectory("scmCheckOutTest_", "");
1
0
r198 - in trunk/src/main: java/org/nuiton/scmwebeditor/urlResolver/impl webapp/WEB-INF/content webapp/js
by kcardineaud@users.nuiton.org 03 Aug '11
by kcardineaud@users.nuiton.org 03 Aug '11
03 Aug '11
Author: kcardineaud
Date: 2011-08-03 12:23:29 +0200 (Wed, 03 Aug 2011)
New Revision: 198
Url: http://nuiton.org/repositories/revision/scmwebeditor/198
Log:
Fix an issue with redirection and change some constantes names
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java
trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java
trunk/src/main/webapp/WEB-INF/content/badFileRedirect.jsp
trunk/src/main/webapp/WEB-INF/content/badUseRedirect.jsp
trunk/src/main/webapp/WEB-INF/content/error.jsp
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp
trunk/src/main/webapp/WEB-INF/content/recall.jsp
trunk/src/main/webapp/WEB-INF/content/redirect.jsp
trunk/src/main/webapp/js/cancelRedirect.js
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java 2011-08-03 10:23:29 UTC (rev 198)
@@ -11,8 +11,8 @@
public static final String MAVEN_SITE_DOCUMENT_NAME = "maven-site-document";
- public static final String PARAMETER_DEFAULT_LOCAL = "svndefaultLocale";
- public static final String PARAMETER_LOCAL = "svnlocale";
+ public static final String PARAMETER_DEFAULT_LOCALE = "svndefaultLocale";
+ public static final String PARAMETER_LOCALE = "svnlocale";
public static final String PARAMETER_SVN_ROOT = "svnroot";
public static final String PARAMETER_SVN_FILE = "svnfile";
public static final String PARAMETER_FILE_FORMAT = "svnformat";
@@ -26,8 +26,8 @@
@Override
public URL resolv(Map<String, String> parameters) throws IOException, IllegalArgumentException {
- String defaultLocale = parameters.get(PARAMETER_DEFAULT_LOCAL);
- String locale = parameters.get(PARAMETER_LOCAL);
+ String defaultLocale = parameters.get(PARAMETER_DEFAULT_LOCALE);
+ String locale = parameters.get(PARAMETER_LOCALE);
String svnRoot = parameters.get(PARAMETER_SVN_ROOT);
String svnFile = parameters.get(PARAMETER_SVN_FILE);
String svnFormat = parameters.get(PARAMETER_FILE_FORMAT);
@@ -36,7 +36,7 @@
|| StringUtils.isEmpty(svnFile) || StringUtils.isEmpty(svnFormat) ) {
throw new IllegalArgumentException(
"Layout " + MAVEN_SITE_DOCUMENT_NAME + " requires five parameters '" +
- PARAMETER_DEFAULT_LOCAL + "', '"+PARAMETER_LOCAL+"' , '"+PARAMETER_SVN_ROOT+"' , '"+PARAMETER_SVN_FILE+"' , '"+PARAMETER_FILE_FORMAT+"'");
+ PARAMETER_DEFAULT_LOCALE + "', '"+PARAMETER_LOCALE+"' , '"+PARAMETER_SVN_ROOT+"' , '"+PARAMETER_SVN_FILE+"' , '"+PARAMETER_FILE_FORMAT+"'");
}
String result = "";
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java 2011-08-03 10:23:29 UTC (rev 198)
@@ -11,7 +11,7 @@
public static final String MAVEN_SITE_XML_NAME = "maven-site.xml";
- public static final String PARAMETER_LOCAL = "svnlocale";
+ public static final String PARAMETER_LOCALE = "svnlocale";
public static final String PARAMETER_SVN_ROOT = "svnroot";
@@ -23,13 +23,13 @@
@Override
public URL resolv(Map<String, String> parameters) throws IOException, IllegalArgumentException {
- String local = parameters.get(PARAMETER_LOCAL);
+ String local = parameters.get(PARAMETER_LOCALE);
String svnRoot = parameters.get(PARAMETER_SVN_ROOT);
if (StringUtils.isEmpty(svnRoot) || StringUtils.isEmpty(local) ) {
throw new IllegalArgumentException(
"Layout " + MAVEN_SITE_XML_NAME + " requires three parameters '" +
- PARAMETER_LOCAL + "', '"+PARAMETER_SVN_ROOT+"'");
+ PARAMETER_LOCALE + "', '"+PARAMETER_SVN_ROOT+"'");
}
String result = "";
Modified: trunk/src/main/webapp/WEB-INF/content/badFileRedirect.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/badFileRedirect.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/badFileRedirect.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -11,12 +11,22 @@
<title>Error...</title>
<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
<link rel="stylesheet" type="text/css" href="css/main.css">
+<% if(request.getAttribute("projectUrl")!=null) { %>
<meta http-equiv="Refresh" content="3; url=<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+<meta http-equiv="Refresh" content="3;URL=checkout.action">
+<% } %>
+
</head>
<body>
<a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="$alt" /></a>
<p><s:text name="scm.badPathOrFileName" /></p>
-<p><s:text name="scm.formTransferred" /> <a href="<%=request.getAttribute("projectUrl")%>">
+<p><s:text name="scm.formTransferred" />
+<% if(request.getAttribute("projectUrl")!=null) { %>
+ <a href="<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+ <a href="checkout.action">
+<% } %>
<s:text name="scm.clickHere" /></a>.</p>
<p>©2004-2009 CodeLutin</p>
</body>
Modified: trunk/src/main/webapp/WEB-INF/content/badUseRedirect.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/badUseRedirect.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/badUseRedirect.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -10,15 +10,23 @@
<title>Error...</title>
<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
<link rel="stylesheet" type="text/css" href="css/main.css">
-<meta http-equiv="Refresh" content="3; url=
-<%=request.getAttribute("scmEditorUrl")%>">
+<% if(request.getAttribute("projectUrl")!=null) { %>
+<meta http-equiv="Refresh" content="3; url=<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+<meta http-equiv="Refresh" content="3;URL=checkout.action">
+<% } %>
</head>
<body>
<a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="$alt" /></a>
<p>Bad Use of ScmWebEditor! Please try again.</p>
<p>You should be transferred automatically to the previous page. If not
-please <a href="<%=request.getAttribute("scmEditorUrl")%>">click
-this link</a>.</p>
+please
+<% if(request.getAttribute("projectUrl")!=null) { %>
+ <a href="<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+ <a href="checkout.action">
+<% } %>
+click this link</a>.</p>
<p>©2004-2009 CodeLutin</p>
</body>
</html>
Modified: trunk/src/main/webapp/WEB-INF/content/error.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/error.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/error.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -10,9 +10,11 @@
<title>Error</title>
<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
<link rel="stylesheet" type="text/css" href="css/main.css">
-<meta http-equiv="Refresh" content="2;
- url="
-<%=request.getAttribute("Redirect_url")%>">
+<% if(request.getAttribute("projectUrl")!=null) { %>
+<meta http-equiv="Refresh" content="3; url=<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+<meta http-equiv="Refresh" content="3;URL=checkout.action">
+<% } %>
<%--%=request.getAttribute("scmEditorUrl")%>?adresse=<%=request.getAttribute("Svnpath_url")%>&file_name=<%=request.getAttribute("Filename_url")%>&project_url=<%=request.getAttribute("Redirection_url")%>&lang=<%=request.getAttribute("Lang")%>&format=<%=request.getAttribute("Format")%>"--%>
</head>
<body>
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -57,7 +57,7 @@
String typeEditor="null";
if (request.getAttribute("format")!=null && request.getAttribute("format").equals("rst")) {
%>
- <h4><s:text name="scm.info.ProblemWithRst"/> <a href="http://docutils.sourceforge.net/docs/user/rst/quickref.html"><s:text name="scm.info.rstWebsite"/></a>.</h4>
+ <h4><s:text name="scm.info.ProblemWithRst"/> <a href="http://docutils.sourceforge.net/docs/user/rst/quickref.html"><s:text name="scm.info.rstWebsite"/></a>.</h4>
<% } %>
</center>
@@ -160,21 +160,21 @@
<p>
- <s:set id="scm.username">
- <s:text name="scm.username"/>
- </s:set>
- <s:set id="scm.usernameTitle">
+ <s:set id="scm.username">
+ <s:text name="scm.username"/>
+ </s:set>
+ <s:set id="scm.usernameTitle">
<s:text name="scm.usernameTitle"/>
</s:set>
- <s:set id="scm.password">
- <s:text name="scm.password"/>
- </s:set>
- <s:set id="scm.passwordTitle">
+ <s:set id="scm.password">
+ <s:text name="scm.password"/>
+ </s:set>
+ <s:set id="scm.passwordTitle">
<s:text name="scm.passwordTitle"/>
</s:set>
<div id="loginDiv">
- <s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" />
- <s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
+ <s:textfield accesskey="U" size="12" label="%{scm.username}" name="username" title="%{scm.usernameTitle}" />
+ <s:password accesskey="P" size="12" label="%{scm.password}" name="pw" title="%{scm.passwordTitle}" />
</div>
<%
@@ -259,7 +259,11 @@
<div id="resetResult"></div>
- <input type="hidden" value="<%=request.getAttribute("ProjectUrl")%>" name="ProjectUrl">
+ <% if(request.getAttribute("projectUrl")!=null) { %>
+ <input type="hidden" name="ProjectUrl" value="<%=request.getAttribute("projectUrl")%>" />
+ <% } else { %>
+ <input type="hidden" name="ProjectUrl" value="checkout.action" />
+ <% } %>
<s:set id="scm.exit">
<s:text name="scm.exit"/>
@@ -299,14 +303,14 @@
<!--
<div id="uploadFormId" >
- <s:form method="POST" id="uploadForm" action="uploadFile" enctype="multipart/form-data">
+ <s:form method="POST" id="uploadForm" action="uploadFile" enctype="multipart/form-data">
-
- <label>Upload a picture : <input type="file" name="upload"/></label><br/>
- <label>Path on svn : <input type="text" name="svnPath" /></label><br/>
+
+ <label>Upload a picture : <input type="file" name="upload"/></label><br/>
+ <label>Path on svn : <input type="text" name="svnPath" /></label><br/>
<label>username : <input type="text" name="username" /></label><br/>
<label>password : <input type="password" name="pw" /></label><br/>
-
+
<sj:submit
id="ajaxUploadButton"
targets="targetContentUpload"
@@ -315,7 +319,7 @@
>
</sj:submit>
- </s:form>
+ </s:form>
</div>
-->
Modified: trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -16,7 +16,13 @@
<a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="$alt" /></a>
<form method="post" action="checkout.action" >
<input type="hidden" name="address" value="<%=request.getAttribute("address")%>"/>
-<input type="hidden" name="projectUrl" value="<%=request.getAttribute("projectUrl")%>"/>
+
+<% if(request.getAttribute("projectUrl")!=null) { %>
+<input type="hidden" name="ProjectUrl" value="<%=request.getAttribute("projectUrl")%>"/>
+<% } else { %>
+<input type="hidden" name="ProjectUrl" value="checkout.action"/>
+<% } %>
+
<script src="cancelRedirect.js"></script>
<p><s:text name="scm.privateScmAccess" /></p>
<p><label ACCESSKEY=U><s:text name="scm.username" /> : <input TYPE=text
Modified: trunk/src/main/webapp/WEB-INF/content/recall.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/recall.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/recall.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -8,7 +8,11 @@
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title><s:text name="scm.redirection" /></title>
-<meta http-equiv="Refresh" content="0; url=
-<%=request.getAttribute("Redirect_url")%>">
+<% if(request.getAttribute("projectUrl")!=null) { %>
+<meta http-equiv="Refresh" content="3; url=<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+<meta http-equiv="Refresh" content="3;URL=checkout.action">
+<% } %>
+
</head>
</html>
Modified: trunk/src/main/webapp/WEB-INF/content/redirect.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/redirect.jsp 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/WEB-INF/content/redirect.jsp 2011-08-03 10:23:29 UTC (rev 198)
@@ -10,13 +10,22 @@
<title><s:text name="scm.redirection" /></title>
<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
<link rel="stylesheet" type="text/css" href="css/main.css">
-<meta http-equiv="Refresh" content="2; url=
-<%=request.getAttribute("Redirection_url")%>">
+<% if(request.getAttribute("projectUrl")!=null) { %>
+<meta http-equiv="Refresh" content="3; url=<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+<meta http-equiv="Refresh" content="3;URL=checkout.action">
+<% } %>
</head>
<body>
<a target="_blank" href="http://maven-site.nuiton.org/scmwebeditor/"><img src="img/ScmWebEditor_main.png" alt="$alt" /></a>
<p><s:text name="scm.thankUsing" /></p>
-<p><s:text name="scm.beTransferred" /> <a href="<%=request.getAttribute("Redirection_url")%>"><s:text name="scm.clickHere" /></a>.</p>
+<p><s:text name="scm.beTransferred" />
+<% if(request.getAttribute("projectUrl")!=null) { %>
+ <a href="<%=request.getAttribute("projectUrl")%>">
+<% } else { %>
+ <a href="checkout.action">
+<% } %>
+<s:text name="scm.clickHere" /></a>.</p>
<p>©2004-2009 CodeLutin</p>
</body>
</html>
Modified: trunk/src/main/webapp/js/cancelRedirect.js
===================================================================
--- trunk/src/main/webapp/js/cancelRedirect.js 2011-08-03 09:17:20 UTC (rev 197)
+++ trunk/src/main/webapp/js/cancelRedirect.js 2011-08-03 10:23:29 UTC (rev 198)
@@ -6,7 +6,7 @@
function cancelRedirect(text, url)
{
if (confirm(text)){
- window.location.replace(url.value);
+ document.location.href(url.value);
return false;
}
else {return false};
1
0
r197 - in trunk: . src/main/java/org/nuiton/scmwebeditor/actions src/main/java/org/nuiton/scmwebeditor/urlResolver src/main/java/org/nuiton/scmwebeditor/urlResolver/impl
by kcardineaud@users.nuiton.org 03 Aug '11
by kcardineaud@users.nuiton.org 03 Aug '11
03 Aug '11
Author: kcardineaud
Date: 2011-08-03 11:17:20 +0200 (Wed, 03 Aug 2011)
New Revision: 197
Url: http://nuiton.org/repositories/revision/scmwebeditor/197
Log:
Add url resolver
Modified:
trunk/pom.xml
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/ScmUrlResolverEngine.java
trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java
trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java
Modified: trunk/pom.xml
===================================================================
--- trunk/pom.xml 2011-08-01 16:07:34 UTC (rev 196)
+++ trunk/pom.xml 2011-08-03 09:17:20 UTC (rev 197)
@@ -194,6 +194,8 @@
<struts2jqueryVersion>3.1.0</struts2jqueryVersion>
<strutsxworksVersion>2.2.3</strutsxworksVersion>
<nuitonI18nVersion>2.4</nuitonI18nVersion>
+
+ <!-- <scmwebeditorUrl>http://localhost:8080/scmwebeditor/checkout.action</scmwebeditorUrl> -->
<i18n.bundles>fr_FR,en_GB</i18n.bundles>
<i18n.silent>true</i18n.silent>
@@ -205,6 +207,7 @@
<!-- extra files to include in release -->
<redmine.releaseFiles>${redmine.libReleaseFiles}</redmine.releaseFiles>
+<!-- <nuitonSkinVersion>1.0.6-SNAPSHOT</nuitonSkinVersion> -->
</properties>
@@ -222,11 +225,26 @@
</resource>
</resources>
+ <pluginManagement>
+
<plugins>
+ <plugin>
+ <artifactId>maven-site-plugin</artifactId>
+ <dependencies>
+ <dependency>
+ <groupId>org.nuiton.jrst</groupId>
+ <artifactId>doxia-module-jrst</artifactId>
+ <version>1.4-SNAPSHOT</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+
+ </pluginManagement>
+
+ <plugins>
+
-
-
-
<plugin>
<groupId>org.nuiton.i18n</groupId>
@@ -283,16 +301,7 @@
</configuration>
</plugin>
- <plugin>
- <artifactId>maven-site-plugin</artifactId>
- <dependencies>
- <dependency>
- <groupId>org.nuiton.jrst</groupId>
- <artifactId>doxia-module-jrst</artifactId>
- <version>1.4-SNAPSHOT</version>
- </dependency>
- </dependencies>
- </plugin>
+
</plugins>
</build>
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-01 16:07:34 UTC (rev 196)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-03 09:17:20 UTC (rev 197)
@@ -134,41 +134,45 @@
HttpSession httpSession = request.getSession(true);
-// Map<String, String> parameters = new HashMap<String, String>();
-// parameters.put("address", address);
+ Map<?,?> map =(Map<?,?>) request.getParameterMap();
+ if(map.size()==0 && testParameters()) {
+ return "noParameter";
+ }
- request.getParameterMap();
- Map<String,String> parameters = new HashMap<String,String>();
- Map<?,?> map =(Map<?,?>) request.getParameterMap();
- Iterator<?> iter = map.entrySet().iterator();
- while (iter.hasNext()) {
- Entry<?,?> n = (Entry<?,?>)iter.next();
- String key = n.getKey().toString();
- String values[] = (String[]) n.getValue();
- parameters.put(key,values[0].toString());
- }
-
+ if(testParameters()) {
- URL urlSvn = null;
- try {
- urlSvn = ScmUrlResolverEngine.resolver(parameters);
- } catch (IOException e1) {
- log.error("erreur", e1);
- return "noParameter";
- } catch (IllegalArgumentException e1) {
- if(log.isErrorEnabled()) {
- log.error(e1.getMessage());
+ Map<String,String> parameters = new HashMap<String,String>();
+
+ Iterator<?> iter = map.entrySet().iterator();
+ while (iter.hasNext()) {
+ Entry<?,?> n = (Entry<?,?>)iter.next();
+ String key = n.getKey().toString();
+ String values[] = (String[]) n.getValue();
+ parameters.put(key,values[0].toString());
}
+
- return "noParameter";
+ URL urlSvn = null;
+ try {
+ urlSvn = ScmUrlResolverEngine.resolver(parameters);
+ } catch (IOException e1) {
+ if(log.isErrorEnabled()) {
+ log.error("erreur", e1);
+ }
+ return "errorPath";
+ } catch (IllegalArgumentException e1) {
+ if(log.isErrorEnabled()) {
+ log.error(e1.getMessage());
+ }
+ return "errorPath";
+ }
+
+ address=urlSvn.toString();
+
}
-
- log.info(urlSvn.toString());
-
- address=urlSvn.toString();
//SvnSession object creation if doesn't already exist
SvnSession svnSess = getSvnSession(httpSession);
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/ScmUrlResolverEngine.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/ScmUrlResolverEngine.java 2011-08-01 16:07:34 UTC (rev 196)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/ScmUrlResolverEngine.java 2011-08-03 09:17:20 UTC (rev 197)
@@ -12,7 +12,7 @@
public class ScmUrlResolverEngine {
- public static final String PARAMETER_SCM_LAYOUT = "scm.layout";
+ public static final String PARAMETER_SCM_LAYOUT = "scmlayout";
static final ThreadLocal<ScmUrlResolverEngine> engine = new ThreadLocal<ScmUrlResolverEngine>() {
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java 2011-08-01 16:07:34 UTC (rev 196)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenDocImpl.java 2011-08-03 09:17:20 UTC (rev 197)
@@ -4,24 +4,54 @@
import java.net.URL;
import java.util.Map;
+import org.apache.commons.lang.StringUtils;
import org.nuiton.scmwebeditor.urlResolver.ScmUrlResolver;
public class ScmUrlResolverMavenDocImpl implements ScmUrlResolver {
+ public static final String MAVEN_SITE_DOCUMENT_NAME = "maven-site-document";
+
+ public static final String PARAMETER_DEFAULT_LOCAL = "svndefaultLocale";
+ public static final String PARAMETER_LOCAL = "svnlocale";
+ public static final String PARAMETER_SVN_ROOT = "svnroot";
+ public static final String PARAMETER_SVN_FILE = "svnfile";
+ public static final String PARAMETER_FILE_FORMAT = "svnformat";
+
+
@Override
public String getLayoutName() {
- // TODO Auto-generated method stub
- return null;
+ return MAVEN_SITE_DOCUMENT_NAME;
}
@Override
public URL resolv(Map<String, String> parameters) throws IOException, IllegalArgumentException {
- // TODO Auto-generated method stub
+
+ String defaultLocale = parameters.get(PARAMETER_DEFAULT_LOCAL);
+ String locale = parameters.get(PARAMETER_LOCAL);
+ String svnRoot = parameters.get(PARAMETER_SVN_ROOT);
+ String svnFile = parameters.get(PARAMETER_SVN_FILE);
+ String svnFormat = parameters.get(PARAMETER_FILE_FORMAT);
- //si local = defaultlocal > rien
- //si local != defaultlocal > local
+ if ( StringUtils.isEmpty(defaultLocale) || StringUtils.isEmpty(locale) || StringUtils.isEmpty(svnRoot)
+ || StringUtils.isEmpty(svnFile) || StringUtils.isEmpty(svnFormat) ) {
+ throw new IllegalArgumentException(
+ "Layout " + MAVEN_SITE_DOCUMENT_NAME + " requires five parameters '" +
+ PARAMETER_DEFAULT_LOCAL + "', '"+PARAMETER_LOCAL+"' , '"+PARAMETER_SVN_ROOT+"' , '"+PARAMETER_SVN_FILE+"' , '"+PARAMETER_FILE_FORMAT+"'");
+ }
- return null;
+ String result = "";
+
+ if(locale.equals(defaultLocale)) {
+ result = svnRoot+"/src/site/"+svnFormat+"/"+svnFile;
+ }
+ else {
+ result = svnRoot+"/src/site/"+locale+"/"+svnFormat+"/"+svnFile;
+ }
+
+
+
+ return new URL(result);
+
}
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java 2011-08-01 16:07:34 UTC (rev 196)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/urlResolver/impl/ScmUrlResolverMavenSiteXmlImpl.java 2011-08-03 09:17:20 UTC (rev 197)
@@ -11,9 +11,8 @@
public static final String MAVEN_SITE_XML_NAME = "maven-site.xml";
- public static final String PARAMETER_LOCAL = "svn.locale";
- public static final String PARAMETER_DEFAULT_LOCAL = "svn.default.local";
- public static final String PARAMETER_SVN_ROOT = "svn.root";
+ public static final String PARAMETER_LOCAL = "svnlocale";
+ public static final String PARAMETER_SVN_ROOT = "svnroot";
@@ -25,18 +24,21 @@
@Override
public URL resolv(Map<String, String> parameters) throws IOException, IllegalArgumentException {
String local = parameters.get(PARAMETER_LOCAL);
- String DefaultLocal = parameters.get(PARAMETER_DEFAULT_LOCAL);
String svnRoot = parameters.get(PARAMETER_SVN_ROOT);
- if (StringUtils.isEmpty(svnRoot) || StringUtils.isEmpty(local) || StringUtils.isEmpty(DefaultLocal) ) {
+ if (StringUtils.isEmpty(svnRoot) || StringUtils.isEmpty(local) ) {
throw new IllegalArgumentException(
"Layout " + MAVEN_SITE_XML_NAME + " requires three parameters '" +
- PARAMETER_LOCAL + "', '"+PARAMETER_DEFAULT_LOCAL+"', '"+PARAMETER_SVN_ROOT+"'");
+ PARAMETER_LOCAL + "', '"+PARAMETER_SVN_ROOT+"'");
}
+ String result = "";
+
+ result = svnRoot+"/src/site/site_"+local+".xml";
+
- return new URL(svnRoot+"/src/site/site_fr.xml");
+ return new URL(result);
}
}
1
0