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
August 2011
- 5 participants
- 60 discussions
r214 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 12 Aug '11
by kcardineaud@users.nuiton.org 12 Aug '11
12 Aug '11
Author: kcardineaud
Date: 2011-08-12 16:29:54 +0200 (Fri, 12 Aug 2011)
New Revision: 214
Url: http://nuiton.org/repositories/revision/scmwebeditor/214
Log:
Remove java code, use for authentification, from jsp
Modified:
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/uploadForm.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-12 13:25:23 UTC (rev 213)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-12 14:29:54 UTC (rev 214)
@@ -133,8 +133,11 @@
return false;
}
}
-
+// public void prepare() {
+//
+// }
+
/**
* Methode principale de la classe
* @return
@@ -225,9 +228,6 @@
String originalText = "";
- String login = this.getUsername();
- String password = this.getPw();
-
//Si le repo n'est pas protege en ecriture on recupere sont UUID
String repositoryUUID = svnConn.getUUID();
if (repositoryUUID==null) {
@@ -235,25 +235,25 @@
}
if(log.isDebugEnabled()) {
- log.debug("Login : "+login);
+ log.debug("Login : "+username);
}
- if(login==null && password==null) {
+ if(username==null && pw==null) {
if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
- login = getScmSession().getUsername(repositoryUUID);
- password = getScmSession().getPassword(repositoryUUID);
+ username = getScmSession().getUsername(repositoryUUID);
+ pw = getScmSession().getPassword(repositoryUUID);
}
else {
- login = "anonymous";
- password = "anonymous";
+ username = null;
+ pw = null;
}
}
else {
- getScmSession().addScmUser(repositoryUUID, login , password);
+ getScmSession().addScmUser(repositoryUUID, username , pw);
}
- svnConn.updateAuthentication(login, password);
+ svnConn.updateAuthentication(username, pw);
try {
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-12 13:25:23 UTC (rev 213)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-12 14:29:54 UTC (rev 214)
@@ -106,6 +106,11 @@
}
+// public void prepare() {
+//
+// }
+
+
public String execute() {
SvnConnection svnConnection = new SvnConnection(address);
@@ -118,19 +123,7 @@
}
- if(upload==null) {
- return "redirect";
- }
- badLogin=false;
- error=false;
-
- if(log.isDebugEnabled()) {
- log.debug("FileName : "+uploadFileName);
- log.debug("ContentType : "+uploadContentType);
- }
-
-
SvnConnection svnConn = null;
try {
@@ -145,34 +138,50 @@
}
- String login = this.getUsername();
- String password = this.getPw();
-
+
//Si le repo n'est pas protege en ecriture on recupere sont UUID
String repositoryUUID = svnConn.getUUID();
if (repositoryUUID==null) {
repositoryUUID=address;
}
-
- if(login==null && password==null) {
+
+ if(username==null && pw==null) {
if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
- login = getScmSession().getUsername(repositoryUUID);
- password = getScmSession().getPassword(repositoryUUID);
+ username = getScmSession().getUsername(repositoryUUID);
+ pw = getScmSession().getPassword(repositoryUUID);
}
else {
- login = "anonymous";
- password = "anonymous";
+ username = null;
+ pw = null;
}
}
else {
- getScmSession().addScmUser(repositoryUUID, login , password);
+ getScmSession().addScmUser(repositoryUUID, username , pw);
}
+
- svnConn.updateAuthentication( login, password);
+ svnConn.updateAuthentication( username, pw);
+ //Si il n'y a pas de fichier à uploader on retourne sur le formulaire d'upload
+ if(upload==null) {
+ return "redirect";
+ }
+
+ badLogin=false;
+ error=false;
+
+ if(log.isDebugEnabled()) {
+ log.debug("FileName : "+uploadFileName);
+ log.debug("ContentType : "+uploadContentType);
+ }
+
+
+
+
+
/*
* Checkout process
*/
@@ -321,7 +330,7 @@
}
if(log.isInfoEnabled()) {
- log.info(login + " with IP "+request.getRemoteAddr()+" add the file "+this.getUploadFileName()+" on the repository.");
+ log.info(username + " with IP "+request.getRemoteAddr()+" add the file "+this.getUploadFileName()+" on the repository.");
}
return SUCCESS;
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-12 13:25:23 UTC (rev 213)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-12 14:29:54 UTC (rev 214)
@@ -157,31 +157,8 @@
<p>
-<%
-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();
- address = scmSession.getUUID(address);
-
- if(address==null) {
- address = request.getAttribute("address").toString();
- }
- usernameSvn = scmSession.getUsername(address);
- passwordSvn = scmSession.getPassword(address);
-
- }
-
-}
-%>
-<%
- if (usernameSvn==null || passwordSvn==null) {
-%>
+ <s:if test="username==null || pw==null" >
<s:set id="scm.username">
<s:text name="scm.username"/>
</s:set>
@@ -198,53 +175,12 @@
<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/>
+ </s:if>
+ <s:else >
+ <s:text name="scm.logAs" /> <s:property value="username" /> <br/>
+ </s:else>
-<% } %>
-
-
-
-<%-- <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")%>"/>
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-12 13:25:23 UTC (rev 213)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-12 14:29:54 UTC (rev 214)
@@ -49,36 +49,15 @@
</div>
-
- <%
- 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();
- address = scmSession.getUUID(address);
-
- if(address==null) {
- address = request.getParameter("address").toString();
- }
- usernameSvn = scmSession.getUsername(address);
- passwordSvn = scmSession.getPassword(address);
- }
- }
-
- if (usernameSvn==null || passwordSvn==null) {
- %>
+
+ <s:if test="username==null || pw==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" />
- <% } %>
+ </s:if>
+
+ <s:else>
+ <s:text name="scm.logAs" /> <s:property value="username" /> <br/>
+ </s:else>
<input type="hidden" name="address" value="<%=request.getParameter("address") %>" />
1
0
r213 - in trunk/src/main: java/org/nuiton/scmwebeditor java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 12 Aug '11
by kcardineaud@users.nuiton.org 12 Aug '11
12 Aug '11
Author: kcardineaud
Date: 2011-08-12 15:25:23 +0200 (Fri, 12 Aug 2011)
New Revision: 213
Url: http://nuiton.org/repositories/revision/scmwebeditor/213
Log:
Change upload system to a better one that use jquery tree
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-12 08:50:11 UTC (rev 212)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-12 13:25:23 UTC (rev 213)
@@ -110,6 +110,10 @@
setManager(SVNClientManager.newInstance(getSvnOption(), getAuthManager()));
}
+ /**
+ *
+ * @return
+ */
public String getUUID() {
String repositoryUUID = null;
try {
@@ -128,6 +132,29 @@
return repositoryUUID;
}
+
+ /**
+ *
+ * @return
+ */
+ public String getSvnRoot() {
+ String repositoryRoot = null;
+ try {
+ SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(addressSvn));
+ ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager();
+ repository.setAuthenticationManager(authManager);
+
+ repositoryRoot = repository.getRepositoryRoot(true).toString();
+ }
+ catch (SVNException e) {
+ if(log.isDebugEnabled()) {
+ log.debug("Can't get SvnRoot");
+ }
+ return null;
+ }
+
+ return repositoryRoot;
+ }
public ISVNAuthenticationManager getAuthManager() {
return authManager;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-12 08:50:11 UTC (rev 212)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-12 13:25:23 UTC (rev 213)
@@ -12,10 +12,10 @@
import org.apache.struts2.interceptor.ServletRequestAware;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
import org.nuiton.scmwebeditor.SvnConnection;
-import org.nuiton.util.FileUtil;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNURL;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNRevision;
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
@@ -36,6 +36,8 @@
protected String pw;
protected String svnPath;
protected String address;
+ protected String svnRoot;
+ protected String fileRoot;
protected boolean badLogin;
protected boolean error;
@@ -83,6 +85,10 @@
public void setAddress(String address) {
this.address = address;
}
+
+ public String getAddress() {
+ return this.address;
+ }
public boolean isBadLogin() {
return badLogin;
@@ -90,9 +96,28 @@
public boolean isError() {
return error;
}
-
+
+ public String getSvnRoot() {
+ return svnRoot;
+ }
+
+ public String getFileRoot() {
+ return fileRoot;
+ }
+
+
public String execute() {
+ SvnConnection svnConnection = new SvnConnection(address);
+ svnRoot = svnConnection.getSvnRoot();
+
+ fileRoot = svnConnection.getSvnPath();
+
+ if(svnRoot==null) {
+ svnRoot=fileRoot;
+ }
+
+
if(upload==null) {
return "redirect";
}
@@ -155,8 +180,8 @@
File checkoutDir = null;
try {
- checkoutDir = FileUtil.createTempDirectory("scm_", "");
svnConn.createCheckoutdir();
+ checkoutDir = svnConn.getCheckoutdir();
} catch (IOException e1) {
if(log.isErrorEnabled()) {
log.error("Can't create checkoutDir",e1);
@@ -171,9 +196,9 @@
try {
if (log.isDebugEnabled()) {
- log.debug("Do Checkout of " + svnConn.getRemoteUrl());
+ log.debug("Do Checkout of " + svnPath);
}
- upclient.doCheckout(svnConn.getRemoteUrl(), checkoutDir,
+ upclient.doCheckout(SVNURL.parseURIEncoded(svnPath), checkoutDir,
SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, false);
} catch (SVNAuthenticationException authexep) {
@@ -211,7 +236,8 @@
//Copy file in checkourdir
String checkoutPath = checkoutDir.getAbsolutePath();
- File file = new File(checkoutPath+svnPath,uploadFileName);
+// File file = new File(checkoutPath+svnPath,uploadFileName);
+ File file = new File(checkoutPath,uploadFileName);
try {
FileUtils.copyFile(upload, file);
@@ -234,7 +260,7 @@
try {
if(log.isDebugEnabled()) {
- log.debug("leSvnPath : "+checkoutPath+svnPath+uploadFileName);
+ log.debug("leSvnPath : "+checkoutPath+uploadFileName);
}
//On ajoute le repertoire
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-12 08:50:11 UTC (rev 212)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-12 13:25:23 UTC (rev 213)
@@ -1,19 +1,55 @@
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@page import="org.nuiton.scmwebeditor.ScmSession"%>
+ <%@page import="org.nuiton.scmwebeditor.SvnConnection"%>
+
<%@ taglib prefix="s" uri="/struts-tags"%>
+ <%@ taglib prefix="sj" uri="/struts-jquery-tags"%>
+ <%@ taglib prefix="sjt" uri="/struts-jquery-tree-tags" %>
+
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>UploadFile</title>
+<link rel="stylesheet" type="text/css" href="css/main.css">
</head>
<body>
+<sj:head debug="true" jquerytheme="default"/>
+
+<script>
+$.subscribe('treeClicked', function(event, data) {
+ var item = event.originalEvent.data.rslt.obj;
+
+ if(item.text().indexOf("/") != -1) {
+ window.document.getElementById("svnPath").value=item.attr("id");
+ }
+
+});
+
+</script>
+
+
+
<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.uploadPath" /> : <s:textfield size="50px" type="text" name="svnPath" id="svnPath" value="%{fileRoot}" /></label><br/>
+
+ <div id="searchTree">
+
+ <s:url id="searchTreeUrl" action="search?address=%{svnRoot}" />
+ <sjt:tree id="svnTree"
+ htmlTitles="true"
+ jstreetheme="classic"
+ href="%{searchTreeUrl}"
+ onClickTopics="treeClicked"
+ />
+
+ </div>
+
+
<%
Object obj = session.getAttribute("ScmSession");
String usernameSvn = null;
1
0
r212 - in trunk/src/main/java/org/nuiton/scmwebeditor: . actions
by kcardineaud@users.nuiton.org 12 Aug '11
by kcardineaud@users.nuiton.org 12 Aug '11
12 Aug '11
Author: kcardineaud
Date: 2011-08-12 10:50:11 +0200 (Fri, 12 Aug 2011)
New Revision: 212
Url: http://nuiton.org/repositories/revision/scmwebeditor/212
Log:
Add a method that get the last revision of a file, on the repository, in base action
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/ScmWebEditorMainAction.java
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-11 13:11:10 UTC (rev 211)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmWebEditorBaseAction.java 2011-08-12 08:50:11 UTC (rev 212)
@@ -36,8 +36,14 @@
import org.apache.tika.sax.BodyContentHandler;
import org.tmatesoft.svn.core.SVNDepth;
import org.tmatesoft.svn.core.SVNException;
+import org.tmatesoft.svn.core.SVNNodeKind;
+import org.tmatesoft.svn.core.SVNURL;
+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.SVNRevision;
import org.tmatesoft.svn.core.wc.SVNUpdateClient;
+import org.tmatesoft.svn.core.wc.SVNWCUtil;
import org.xml.sax.SAXException;
import com.opensymphony.xwork2.ActionContext;
@@ -190,7 +196,12 @@
}
}
-
+ /**
+ *
+ * @param svnSess
+ * @param checkoutdir
+ * @throws SVNException
+ */
public void checkout(SvnConnection svnSess, File checkoutdir) throws SVNException {
SVNUpdateClient upclient = new SVNUpdateClient(svnSess.getManager(), svnSess.getSvnOption());
@@ -204,6 +215,93 @@
}
+ /**
+ *
+ * @param svnFile
+ * @param username
+ * @param password
+ * @return
+ * @throws SVNException
+ * @throws IOException
+ */
+ public String getHeadRevision(String address, String login, String password) throws SVNException {
+
+ String lastRevision = "";
+
+ SvnConnection svnConn = null;
+
+ svnConn = new SvnConnection(address);
+
+
+ String url = svnConn.getSvnPath();
+ String file = svnConn.getFileName();
+
+ //Si le repo n'est pas protege en ecriture on recupere sont UUID
+ String repositoryUUID = svnConn.getUUID();
+ if (repositoryUUID==null) {
+ repositoryUUID=address;
+ }
+
+
+ if(login==null && password==null) {
+ if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
+ //On recupère les identifiants en session
+ login = getScmSession().getUsername(repositoryUUID);
+ password = getScmSession().getPassword(repositoryUUID);
+ }
+ else {
+ login = "anonymous";
+ password = "anonymous";
+ }
+ }
+ else {
+ getScmSession().addScmUser(repositoryUUID, login , password);
+ }
+
+
+
+ SVNRepository repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ));
+ ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , password );
+ repository.setAuthenticationManager( authManager );
+
+ SVNNodeKind nodeKind = repository.checkPath( file , -1 );
+
+
+ if ( nodeKind == SVNNodeKind.NONE ) {
+ if(log.isErrorEnabled()) {
+ log.error( "There is no entry at '" + url + "'." );
+ }
+ throw new IllegalArgumentException("There is no entry at '" + url + "'.");
+ } else if ( nodeKind == SVNNodeKind.DIR ) {
+ if(log.isErrorEnabled()) {
+ log.error( "The entry at '" + url + "' is a file while a directory was expected." );
+ }
+ throw new IllegalArgumentException("The entry at '" + url + "' is a file while a directory was expected.");
+ }
+
+
+ ByteArrayOutputStream baos = new ByteArrayOutputStream( );
+
+ repository.getFile( file , -1 , null , baos );
+
+ lastRevision = baos.toString();
+
+ try {
+ baos.close();
+ } catch (IOException e) {
+ if(log.isDebugEnabled()) {
+ log.debug("Can't close stream",e);
+ }
+ }
+
+ return lastRevision;
+ }
+
+
+ /**
+ * Use to delete the checkout temp directory
+ * @param checkoutdir The dir temp directory
+ */
public void delTempDirectory(File checkoutdir) {
try {
FileUtils.deleteDirectory(checkoutdir);
@@ -354,6 +452,8 @@
return getScmSession().getPassword(url);
}
+
+
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-11 13:11:10 UTC (rev 211)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-12 08:50:11 UTC (rev 212)
@@ -1,19 +1,10 @@
package org.nuiton.scmwebeditor.actions;
-import java.io.ByteArrayOutputStream;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.nuiton.scmwebeditor.ScmWebEditorBaseAction;
-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;
-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;
@@ -59,94 +50,39 @@
public String execute() {
- SvnConnection svnConn = null;
-
try {
- svnConn = new SvnConnection(address);
- } catch (StringIndexOutOfBoundsException e) {
- if(log.isErrorEnabled()) {
- log.error("Can't reach the svn repository");
- }
- error = "errorPath";
- return "errorPath";
- }
+
+ lastRevision = getHeadRevision(address, username, pw);
- String url = svnConn.getSvnPath();
- String file = svnConn.getFileName();
-
- String login = this.username;
- String password = this.pw;
-
- //Si le repo n'est pas protege en ecriture on recupere sont UUID
- String repositoryUUID = svnConn.getUUID();
- if (repositoryUUID==null) {
- repositoryUUID=address;
- }
-
-
- if(login==null && password==null) {
- if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
- //On recupère les identifiants en session
- login = getScmSession().getUsername(repositoryUUID);
- password = getScmSession().getPassword(repositoryUUID);
- }
- else {
- login = "anonymous";
- password = "anonymous";
- }
- }
- else {
- getScmSession().addScmUser(repositoryUUID, login , password);
- }
-
-
- try {
- SVNRepository repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
- ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , password );
- repository.setAuthenticationManager( authManager );
-
- SVNNodeKind nodeKind = repository.checkPath( file , -1 );
-
-
- if ( nodeKind == SVNNodeKind.NONE ) {
+ } catch (SVNAuthenticationException authexep) {
if(log.isErrorEnabled()) {
- log.error( "There is no entry at '" + url + "'." );
- }
- return Action.SUCCESS;
- } else if ( nodeKind == SVNNodeKind.DIR ) {
- if(log.isErrorEnabled()) {
- log.error( "The entry at '" + url + "' is a file while a directory was expected." );
- }
- return Action.SUCCESS;
- }
-
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream( );
-
- repository.getFile( file , -1 , null , baos );
-
- lastRevision=baos.toString();
-
-
- }
- catch (SVNAuthenticationException authexep) {
- if(log.isErrorEnabled()) {
log.error("AUTH FAIL");
}
error = "authError";
return "authError";
- }
- catch (SVNException e) {
+ } catch (SVNException e1) {
if(log.isErrorEnabled()) {
log.error("Can't reach the svn repository");
}
error = "errorPath";
return "errorPath";
- }
+ } catch (StringIndexOutOfBoundsException e) {
+ if(log.isErrorEnabled()) {
+ log.error("Can't reach the svn repository");
+ }
+ error = "errorPath";
+ return "errorPath";
+ } catch (IllegalArgumentException e) {
+ if(log.isErrorEnabled()) {
+ log.error("Problem with file path",e);
+ }
+ error = "errorPath";
+ return "errorPath";
+ }
return Action.SUCCESS;
-
+
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-11 13:11:10 UTC (rev 211)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-12 08:50:11 UTC (rev 212)
@@ -1,6 +1,5 @@
package org.nuiton.scmwebeditor.actions;
-import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
import java.util.HashMap;
@@ -20,11 +19,6 @@
import org.nuiton.scmwebeditor.urlResolver.ScmUrlResolverEngine;
import org.tmatesoft.svn.core.SVNAuthenticationException;
import org.tmatesoft.svn.core.SVNException;
-import org.tmatesoft.svn.core.SVNNodeKind;
-import org.tmatesoft.svn.core.SVNURL;
-import org.tmatesoft.svn.core.auth.ISVNAuthenticationManager;
-import org.tmatesoft.svn.core.io.SVNRepository;
-import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import com.opensymphony.xwork2.Action;
@@ -233,8 +227,6 @@
String login = this.getUsername();
String password = this.getPw();
- String url = svnConn.getSvnPath();
- String file = svnConn.getFileName();
//Si le repo n'est pas protege en ecriture on recupere sont UUID
String repositoryUUID = svnConn.getUUID();
@@ -263,44 +255,9 @@
svnConn.updateAuthentication(login, password);
- SVNRepository repository = null;
try {
- repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
- ISVNAuthenticationManager authManager = svnConn.getAuthManager();
- repository.setAuthenticationManager( authManager );
-
- SVNNodeKind nodeKind = repository.checkPath( file , -1 );
-
-
-
-
- if ( nodeKind == SVNNodeKind.NONE ) {
- if(log.isErrorEnabled()) {
- log.error( "There is no entry at '" + url + "'." );
- }
- request.setAttribute("projectUrl", projectUrl);
- return "errorPath";
-
- } else if ( nodeKind == SVNNodeKind.DIR ) {
- if(log.isErrorEnabled()) {
- log.error( "The entry at '" + url + "' is a file while a directory was expected." );
- }
- request.setAttribute("projectUrl", projectUrl);
- if(log.isErrorEnabled()) {
- log.error("Error with svn path or file ");
- }
- return "errorPath";
- }
-
-
- ByteArrayOutputStream baos = new ByteArrayOutputStream( );
-
- //On récupere le contenu du fichier, et on le met dans un outputStream
- repository.getFile( file , -1 , null , baos );
-
- originalText=baos.toString();
- baos.close();
+ originalText = getHeadRevision(address, username, pw);
} catch (SVNAuthenticationException authexep) {
@@ -308,8 +265,10 @@
// if svn authentication failed user is redirected on login page
if(log.isDebugEnabled()) {
- log.debug("Private SCM on reading " + svnConn.getRemoteUrl());
+ log.debug("Auth Fail " ,authexep);
}
+
+ getScmSession().delScmUser(repositoryUUID);
//redirect to a login page
return Action.LOGIN;
@@ -320,12 +279,7 @@
log.error("SVN error ",e);
}
return "errorPath";
- } catch (IOException e) {
- if(log.isErrorEnabled()) {
- log.error("IO error ",e);
- }
- return "errorPath";
- }
+ }
@@ -342,22 +296,6 @@
}
- /*
- String[] mimeTypes =null;
- try {
- mimeTypes = getMimeTypes(originalText, svnConn.getFileName());
-
- log.info("size : "+mimeTypes.length);
-
- for (String element : mimeTypes){
- log.info("Type : "+element);
- }
- } catch (Exception e) {
- log.error("tika error",e);
- }
- */
-
-
Properties properties=null;
String[] editableFiles=null;
1
0
r211 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions resources resources/i18n webapp/WEB-INF/content webapp/css
by kcardineaud@users.nuiton.org 11 Aug '11
by kcardineaud@users.nuiton.org 11 Aug '11
11 Aug '11
Author: kcardineaud
Date: 2011-08-11 15:11:10 +0200 (Thu, 11 Aug 2011)
New Revision: 211
Url: http://nuiton.org/repositories/revision/scmwebeditor/211
Log:
Add a confirmation message when rst is not valid, before commit and quit
Added:
trunk/src/main/webapp/WEB-INF/content/badRstFile.jsp
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties
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/privateSvnRedirect.jsp
trunk/src/main/webapp/WEB-INF/content/save.jsp
trunk/src/main/webapp/css/main.css
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-11 13:11:10 UTC (rev 211)
@@ -130,7 +130,7 @@
- protected boolean testRstParsing(String newText) {
+ protected boolean isRstValid(String newText) {
try {
JRST.generate(JRST.TYPE_HTML, newText);
if(log.isDebugEnabled()) {
@@ -153,7 +153,7 @@
if(!force) {
if(format.equals("rst")) {
- if(!testRstParsing(newText)) {
+ if(!isRstValid(newText)) {
return "errorRst";
}
}
@@ -184,7 +184,7 @@
log.info("username : |"+login+"|");
- if( ( login==null ) && ( password==null ) ) {
+ if( ( login==null || login.equals("") ) && ( password==null || password.equals("") ) ) {
if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
login = getScmSession().getUsername(repositoryUUID);
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-11 13:11:10 UTC (rev 211)
@@ -9,10 +9,8 @@
import java.util.Map.Entry;
import java.util.Properties;
-
import javax.servlet.http.HttpServletRequest;
-
import org.apache.commons.lang.StringEscapeUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
@@ -28,6 +26,7 @@
import org.tmatesoft.svn.core.io.SVNRepository;
import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
+
import com.opensymphony.xwork2.Action;
@@ -61,7 +60,7 @@
protected String repositoryId;
-
+ protected boolean fromLoginPage;
@@ -123,8 +122,11 @@
}
-
+ public void setFromLoginPage(boolean fromLoginPage) {
+ this.fromLoginPage = fromLoginPage;
+ }
+
/**
* On test si les parametres ne sont pas vide
* @return
@@ -160,8 +162,11 @@
// }
- projectUrl=request.getHeader("referer");
+ if(!this.fromLoginPage) {
+ projectUrl=request.getHeader("referer");
+ }
+
if(log.isDebugEnabled()) {
log.debug("ProjectUrl= "+projectUrl);
}
@@ -409,7 +414,7 @@
}
-
+
return "editPage";
@@ -422,10 +427,5 @@
}
-
-
-
-
-
}
Modified: trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties
===================================================================
--- trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/resources/i18n/scmwebeditor_en_GB.properties 2011-08-11 13:11:10 UTC (rev 211)
@@ -18,6 +18,7 @@
scm.modificationViewer.betterUseJavascript=For a better use of SCMWebEditor please activate JavaScript.
scm.modificationViewer.noJavascript=Javascript is not activated. You can't only use Save and Quit or upload button.
scm.mustBeLog=You must be login to see this repository.
+scm.no=No
scm.outConnection.enterRepo=Please enter your repository address.
scm.outConnection.noJavascript=Javascript is not activated. Please activate it for a fully use of ScmWebEditor.
scm.outConnection.scmPath=SCM path \:
@@ -29,6 +30,7 @@
scm.redirection=Redirection...
scm.reset=Reset
scm.resetTitle=Go back to the last revision of the file
+scm.rstNotValidMessage=The rst is not valid, do you still want to continue ?
scm.saveAndContinue=Save and Continue Editing
scm.saveAndContinueTitle=Commit modifications and continue editing the file.
scm.saveAndQuit=Save and quit
@@ -43,3 +45,4 @@
scm.username=Username
scm.usernameTitle=Repository username
scm.welcome=Welcome on SCMWebEditor
+scm.yes=Yes
Modified: trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties
===================================================================
--- trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/resources/i18n/scmwebeditor_fr_FR.properties 2011-08-11 13:11:10 UTC (rev 211)
@@ -18,6 +18,7 @@
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.
+scm.no=Non
scm.outConnection.enterRepo=Entrez l''adresse de votre depot.
scm.outConnection.noJavascript=Javascript n''est pas active. Certaines fonctions ne serons pas accessible.
scm.outConnection.scmPath=Repertoire SCM \:
@@ -29,6 +30,7 @@
scm.redirection=Redirection...
scm.reset=Reinitialiser
scm.resetTitle=Retour a la derniere revision du fichier
+scm.rstNotValidMessage=The Rst n''est pas valide, voulez-vous continuer ?
scm.saveAndContinue=Sauvegarder et continuer
scm.saveAndContinueTitle=Enregister les modifications sur le depot et continuer d''editer le fichier
scm.saveAndQuit=Sauvegarder et quitter
@@ -43,3 +45,4 @@
scm.username=Identifiant
scm.usernameTitle=Identifiant du depot
scm.welcome=Bienvenue sur SCMWebEditor
+scm.yes=Oui
Modified: trunk/src/main/resources/struts.xml
===================================================================
--- trunk/src/main/resources/struts.xml 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/resources/struts.xml 2011-08-11 13:11:10 UTC (rev 211)
@@ -21,7 +21,7 @@
<result name="login" >/WEB-INF/content/modificationViewer.jsp</result>
<result name="error">/WEB-INF/content/badFileRedirect.jsp</result>
<result name="errorPath">/WEB-INF/content/badFileRedirect.jsp</result>
- <result name="errorRst">/WEB-INF/content/badFileRedirect.jsp</result>
+ <result name="errorRst">/WEB-INF/content/badRstFile.jsp</result>
</action>
<action name="save" class="org.nuiton.scmwebeditor.actions.SaveAction" method="save">
Added: trunk/src/main/webapp/WEB-INF/content/badRstFile.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/badRstFile.jsp (rev 0)
+++ trunk/src/main/webapp/WEB-INF/content/badRstFile.jsp 2011-08-11 13:11:10 UTC (rev 211)
@@ -0,0 +1,50 @@
+<%@ page language="java" contentType="text/html; charset=UTF-8"
+ pageEncoding="UTF-8"%>
+<%@ 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>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+<title>RST is not valid</title>
+<link rel="icon" href="img/ScmWebEditor_little.png" type="image/png">
+<link rel="stylesheet" type="text/css" href="css/main.css">
+</head>
+<body>
+ <form id="forceCommitForm" method="POST" action="commit.action" >
+ <h4><s:text name="scm.rstNotValidMessage" /></h4>
+
+ <input type="hidden" name="force" value="true"/>
+ <s:hidden name="address" value="%{address}" />
+ <s:hidden name="commitMessage" value="%{commitMessage}" />
+ <s:hidden name="newText" value="%{newText}" />
+ <s:hidden name="lastText" value="%{lastText}" />
+ <s:hidden name="fileType" value="%{fileType}" />
+ <s:hidden name="projectUrl" value="%{projectUrl}" />
+ <s:hidden name="format" value="%{format}" />
+
+ <s:hidden name="username" value="%{username}" />
+ <s:hidden name="pw" value="%{pw}" />
+
+
+ <s:set id="scm.yes">
+ <s:text name="scm.yes"/>
+ </s:set>
+
+ <s:submit
+ id="ajaxForceCommitButton"
+ formIds="forceCommitForm"
+ indicator="indicator"
+ button="true"
+ buttonIcon="ui-icon-refresh"
+ value="%{scm.yes}"
+ >
+ </s:submit>
+
+ <s:set id="scm.no">
+ <s:text name="scm.no"/>
+ </s:set>
+ <s:submit type="button" value="%{scm.no}" onclick="history.back();return false;" />
+
+ </form>
+</body>
+</html>
\ No newline at end of file
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-11 13:11:10 UTC (rev 211)
@@ -65,7 +65,7 @@
</center>
- <form method="POST" action="commit.action?force=true" id="editForm">
+ <form method="POST" action="commit.action" id="editForm">
<%
if (request.getAttribute("format")!=null){
@@ -153,8 +153,6 @@
</s:set>
<s:textfield required="true" label="%{scm.commitMessage}" name="commitMessage" title="%{scm.commitMessageTitle}" />
-
-
<p>
@@ -204,7 +202,7 @@
} else {
%>
<s:text name="scm.logAs" /> <%=usernameSvn%> <br/>
-
+
<% } %>
Modified: trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/webapp/WEB-INF/content/privateSvnRedirect.jsp 2011-08-11 13:11:10 UTC (rev 211)
@@ -16,6 +16,7 @@
<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="fromLoginPage" value="true">
<% if(request.getAttribute("projectUrl")!=null) { %>
<input type="hidden" name="ProjectUrl" value="<%=request.getAttribute("projectUrl")%>"/>
Modified: trunk/src/main/webapp/WEB-INF/content/save.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-11 13:11:10 UTC (rev 211)
@@ -11,7 +11,7 @@
</s:elseif>
<s:elseif test="result=='errorRst'" >
- <h4> The rst is not valid, do you still want to continue ? </h4>
+ <h4> <s:text name="scm.rstNotValidMessage" /> </h4>
<s:url id="ajaxForceSave" action="save" />
<input type="hidden" name="force" value="true"/>
<sj:submit onclick="loadChange()"
Modified: trunk/src/main/webapp/css/main.css
===================================================================
--- trunk/src/main/webapp/css/main.css 2011-08-10 13:01:51 UTC (rev 210)
+++ trunk/src/main/webapp/css/main.css 2011-08-11 13:11:10 UTC (rev 211)
@@ -8,15 +8,15 @@
img {
- border:none;
- }
+ border:none;
+ }
.wwlbl , .wwctrl {
display:inline;
}
.ui-icon-document {
- background-image:url("../img/file.png") !important;
+ background-image:url("../img/file.png") !important;
background-position: 0 1px !important ;
}
@@ -28,6 +28,15 @@
text-align:center;
}
+#forceCommitForm {
+ width:70%;
+ margin:auto;
+ display:block;
+ padding:1%;
+ text-align:center;
+ width:30%
+}
+
#wwctrl_Save, #wwctrl_Cancel, #wwctrl_uploadButton {
text-align:center;
}
1
0
r210 - in trunk/src/main: java/org/nuiton/scmwebeditor java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 10 Aug '11
by kcardineaud@users.nuiton.org 10 Aug '11
10 Aug '11
Author: kcardineaud
Date: 2011-08-10 15:01:51 +0200 (Wed, 10 Aug 2011)
New Revision: 210
Url: http://nuiton.org/repositories/revision/scmwebeditor/210
Log:
Fix an issue when login fail
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java 2011-08-09 13:56:44 UTC (rev 209)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java 2011-08-10 13:01:51 UTC (rev 210)
@@ -20,6 +20,10 @@
scmUsers.put(address, new ScmUser(login,password));
}
+ public void delScmUser(String address) {
+ scmUsers.remove(address);
+ }
+
public String getUsername(String url) {
if(scmUsers.containsKey(url)) {
return scmUsers.get(url).getUsername();
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-09 13:56:44 UTC (rev 209)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-10 13:01:51 UTC (rev 210)
@@ -40,7 +40,7 @@
protected String pw;
protected String address;
protected String lastText;
- protected String fileType;
+ protected String format;
protected String projectUrl;
protected boolean force;
@@ -63,12 +63,12 @@
return newText;
}
- public String getFileType() {
- return fileType;
+ public String getFormat() {
+ return format;
}
- public void setFileType(String fileType) {
- this.fileType = fileType;
+ public void setFormat(String format) {
+ this.format = format;
}
public void setNewText(String newText) {
@@ -152,7 +152,7 @@
public String execute() {
if(!force) {
- if(fileType.equals("rst")) {
+ if(format.equals("rst")) {
if(!testRstParsing(newText)) {
return "errorRst";
}
@@ -226,8 +226,11 @@
//On supprime le repertoire temporaire
delTempDirectory(checkoutdir);
//redirect to a login page
- return Action.LOGIN;
+ getScmSession().delScmUser(repositoryUUID);
+
+ return Action.LOGIN;
+
} catch (SVNException e) {
//Suppression du repertoire temporaire
delTempDirectory(checkoutdir);
@@ -304,6 +307,9 @@
request.setAttribute(ATTRIBUTE_BAD_LOGIN, true);
//Suppression du repertoire temporaire
delTempDirectory(checkoutdir);
+
+ //on supprime la valeur stocke en session
+ getScmSession().delScmUser(repositoryUUID);
return Action.LOGIN;
} catch (SVNException e) {
if(log.isErrorEnabled()) {
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-09 13:56:44 UTC (rev 209)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-10 13:01:51 UTC (rev 210)
@@ -66,16 +66,14 @@
<form method="POST" action="commit.action?force=true" id="editForm">
- <%
- if (request.getAttribute("format")!=null && request.getAttribute("format").equals("rst")){
+
+ <%
+ if (request.getAttribute("format")!=null){
%>
- <input type="hidden" name="fileType" value="rst" />
- <% } else { %>
- <input type="hidden" name="fileType" value="other" />
+ <input type="hidden" name="format" value="<%=request.getAttribute("format")%>" />
<% } %>
-
<%
String valueTextarea;
if(request.getAttribute("lastText")!=null) {
@@ -137,7 +135,15 @@
<div id="form">
- <div id="htmlcontentCommit"></div>
+ <div id="htmlcontentCommit">
+ <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %>
+ <p>
+ <font color="red">
+ Bad username or password
+ </font>
+ </p>
+ <%} %>
+ </div>
<s:set id="scm.commitMessage">
<s:text name="scm.commitMessage"/>
@@ -149,13 +155,7 @@
<s:textfield required="true" label="%{scm.commitMessage}" name="commitMessage" title="%{scm.commitMessageTitle}" />
- <%if (request.getAttribute("badLogin")!=null && request.getAttribute("badLogin").equals(true)) { %>
- <p>
- <font color="red">
- Bad username or password
- </font>
- </p>
- <% } %>
+
<p>
1
0
r209 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 09 Aug '11
by kcardineaud@users.nuiton.org 09 Aug '11
09 Aug '11
Author: kcardineaud
Date: 2011-08-09 15:56:44 +0200 (Tue, 09 Aug 2011)
New Revision: 209
Url: http://nuiton.org/repositories/revision/scmwebeditor/209
Log:
Add a confirmation message if the rst is not valid when we save the file
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
trunk/src/main/webapp/WEB-INF/content/save.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-09 09:22:24 UTC (rev 208)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-09 13:56:44 UTC (rev 209)
@@ -42,8 +42,13 @@
protected String lastText;
protected String fileType;
protected String projectUrl;
+ protected boolean force;
+
+
+
+
protected HttpServletRequest request;
public String getCommitMessage() {
@@ -119,7 +124,11 @@
this.projectUrl = projectUrl;
}
+ public void setForce(boolean force) {
+ this.force = force;
+ }
+
protected boolean testRstParsing(String newText) {
try {
@@ -142,14 +151,15 @@
public String execute() {
- if(fileType.equals("rst")) {
- if(!testRstParsing(newText)) {
- return "error";
- }
- }
+ if(!force) {
+ if(fileType.equals("rst")) {
+ if(!testRstParsing(newText)) {
+ return "errorRst";
+ }
+ }
+ }
-
SvnConnection svnConn = null;
@@ -172,8 +182,9 @@
repositoryUUID=address;
}
+ log.info("username : |"+login+"|");
- if(login==null && password==null) {
+ if( ( login==null ) && ( password==null ) ) {
if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
login = getScmSession().getUsername(repositoryUUID);
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-09 09:22:24 UTC (rev 208)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-09 13:56:44 UTC (rev 209)
@@ -65,7 +65,7 @@
</center>
- <form method="POST" action=commit.action id="editForm">
+ <form method="POST" action="commit.action?force=true" id="editForm">
<%
if (request.getAttribute("format")!=null && request.getAttribute("format").equals("rst")){
%>
Modified: trunk/src/main/webapp/WEB-INF/content/save.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-09 09:22:24 UTC (rev 208)
+++ trunk/src/main/webapp/WEB-INF/content/save.jsp 2011-08-09 13:56:44 UTC (rev 209)
@@ -9,6 +9,24 @@
<s:elseif test="result=='error'" >
<h4> Can't save modification </h4>
</s:elseif>
+ <s:elseif test="result=='errorRst'" >
+
+ <h4> The rst is not valid, do you still want to continue ? </h4>
+ <s:url id="ajaxForceSave" action="save" />
+ <input type="hidden" name="force" value="true"/>
+ <sj:submit onclick="loadChange()"
+ id="ajaxForceSaveButton"
+ formIds="editForm"
+ targets="htmlcontentCommit"
+ href="%{ajaxForceSave}"
+ indicator="indicator"
+ button="true"
+ buttonIcon="ui-icon-refresh"
+ value="YES"
+ >
+ </sj:submit>
+
+ </s:elseif>
<s:elseif test="result=='errorPath'" >
<h4> Can't save modification, RST is not valid</h4>
</s:elseif>
1
0
r208 - in trunk/src/main: java/org/nuiton/scmwebeditor java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
by kcardineaud@users.nuiton.org 09 Aug '11
by kcardineaud@users.nuiton.org 09 Aug '11
09 Aug '11
Author: kcardineaud
Date: 2011-08-09 11:22:24 +0200 (Tue, 09 Aug 2011)
New Revision: 208
Url: http://nuiton.org/repositories/revision/scmwebeditor/208
Log:
Authentification is required only one time for each repository (only if the repository is not read-protected)
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java
trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.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/uploadForm.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/ScmSession.java 2011-08-09 09:22:24 UTC (rev 208)
@@ -39,5 +39,10 @@
}
}
+ public String getUUID(String address) {
+ SvnConnection svnConnection = new SvnConnection(address);
+ return svnConnection.getUUID();
+ }
+
}
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/SvnConnection.java 2011-08-09 09:22:24 UTC (rev 208)
@@ -32,6 +32,8 @@
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.io.SVNRepository;
+import org.tmatesoft.svn.core.io.SVNRepositoryFactory;
import org.tmatesoft.svn.core.wc.SVNClientManager;
import org.tmatesoft.svn.core.wc.SVNWCUtil;
@@ -43,6 +45,10 @@
private static final Log log = LogFactory.getLog(SvnConnection.class);
/**
+ * full svn path
+ */
+ protected String addressSvn;
+ /**
* svn path without fileName
*/
protected String svnPath;
@@ -79,6 +85,8 @@
public SvnConnection (
String address) throws StringIndexOutOfBoundsException {
+ this.addressSvn = address;
+
this.svnPath = address.substring(0,address.lastIndexOf("/"));
this.fileName = address.substring(address.lastIndexOf("/")+1);
@@ -101,6 +109,25 @@
setAuthManager(SVNWCUtil.createDefaultAuthenticationManager(login, password));
setManager(SVNClientManager.newInstance(getSvnOption(), getAuthManager()));
}
+
+ public String getUUID() {
+ String repositoryUUID = null;
+ try {
+ SVNRepository repository = SVNRepositoryFactory.create(SVNURL.parseURIDecoded(addressSvn));
+ ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager();
+ repository.setAuthenticationManager(authManager);
+
+ repositoryUUID = repository.getRepositoryUUID(true);
+ }
+ catch (SVNException e) {
+ if(log.isDebugEnabled()) {
+ log.debug("Can't get UUID");
+ }
+ return null;
+ }
+
+ return repositoryUUID;
+ }
public ISVNAuthenticationManager getAuthManager() {
return authManager;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-09 09:22:24 UTC (rev 208)
@@ -59,10 +59,10 @@
public String execute() {
- SvnConnection svnSess = null;
+ SvnConnection svnConn = null;
try {
- svnSess = new SvnConnection(address);
+ svnConn = new SvnConnection(address);
} catch (StringIndexOutOfBoundsException e) {
if(log.isErrorEnabled()) {
log.error("Can't reach the svn repository");
@@ -71,17 +71,24 @@
return "errorPath";
}
- String url = svnSess.getSvnPath();
- String file = svnSess.getFileName();
+ String url = svnConn.getSvnPath();
+ String file = svnConn.getFileName();
String login = this.username;
String password = this.pw;
+ //Si le repo n'est pas protege en ecriture on recupere sont UUID
+ String repositoryUUID = svnConn.getUUID();
+ if (repositoryUUID==null) {
+ repositoryUUID=address;
+ }
+
+
if(login==null && password==null) {
- if(getScmSession().getUsername(address)!=null && getScmSession().getPassword(address)!=null) {
+ if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
- login = getScmSession().getUsername(address);
- password = getScmSession().getPassword(address);
+ login = getScmSession().getUsername(repositoryUUID);
+ password = getScmSession().getPassword(repositoryUUID);
}
else {
login = "anonymous";
@@ -89,13 +96,12 @@
}
}
else {
- getScmSession().addScmUser(address, login , password);
+ getScmSession().addScmUser(repositoryUUID, login , password);
}
+
- SVNRepository repository = null;
-
try {
- repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
+ SVNRepository repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , password );
repository.setAuthenticationManager( authManager );
@@ -138,10 +144,6 @@
return "errorPath";
}
- if(log.isInfoEnabled()) {
-
- }
-
return Action.SUCCESS;
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorCommitAction.java 2011-08-09 09:22:24 UTC (rev 208)
@@ -150,12 +150,11 @@
- SvnConnection svnSess = null;
+ SvnConnection svnConn = null;
- log.info("ADDRESS : "+address);
try {
- svnSess = new SvnConnection(address);
+ svnConn = new SvnConnection(address);
} catch (StringIndexOutOfBoundsException e) {
if(log.isDebugEnabled()) {
log.debug("Parameter is not valid ",e);
@@ -167,11 +166,18 @@
String login = this.getUsername();
String password = this.getPw();
+ //Si le repo n'est pas protege en ecriture on recupere sont UUID
+ String repositoryUUID = svnConn.getUUID();
+ if (repositoryUUID==null) {
+ repositoryUUID=address;
+ }
+
+
if(login==null && password==null) {
- if(getScmSession().getUsername(address)!=null && getScmSession().getPassword(address)!=null) {
+ if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
- login = getScmSession().getUsername(address);
- password = getScmSession().getPassword(address);
+ login = getScmSession().getUsername(repositoryUUID);
+ password = getScmSession().getPassword(repositoryUUID);
}
else {
login = "anonymous";
@@ -179,11 +185,11 @@
}
}
else {
- getScmSession().addScmUser(address, login , password);
+ getScmSession().addScmUser(repositoryUUID, login , password);
}
- svnSess.updateAuthentication( login, password);
+ svnConn.updateAuthentication( login, password);
File checkoutdir = null;
try {
@@ -198,13 +204,13 @@
// Avant le commit, il faut checkout le repertoire
try {
- checkout(svnSess, checkoutdir);
+ checkout(svnConn, checkoutdir);
} catch (SVNAuthenticationException authexep) {
request.setAttribute(PARAMETER_ADDRESS, address);
// 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());
}
//On supprime le repertoire temporaire
delTempDirectory(checkoutdir);
@@ -218,7 +224,7 @@
}
- File checkOutFile = new File(checkoutdir, svnSess.getFileName());
+ File checkOutFile = new File(checkoutdir, svnConn.getFileName());
lastText=newText;
@@ -248,9 +254,9 @@
/*
* Commit process
*/
- File pathToFile = new File(checkoutdir, svnSess.getFileName());
+ File pathToFile = new File(checkoutdir, svnConn.getFileName());
- SVNCommitClient commitClient = new SVNCommitClient(svnSess.getManager(), svnSess.getSvnOption());
+ SVNCommitClient commitClient = new SVNCommitClient(svnConn.getManager(), svnConn.getSvnOption());
try {
FileUtils.writeStringToFile(pathToFile, newText);
} catch (IOException e) {
@@ -310,7 +316,7 @@
delTempDirectory(checkoutdir);
if(log.isInfoEnabled()) {
- log.info(username + " with IP "+request.getRemoteAddr()+" commit the file "+address+" with message : "+commitMessage);
+ log.info(login + " with IP "+request.getRemoteAddr()+" commit the file "+address+" with message : "+commitMessage);
}
return "success";
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ScmWebEditorMainAction.java 2011-08-09 09:22:24 UTC (rev 208)
@@ -231,14 +231,21 @@
String url = svnConn.getSvnPath();
String file = svnConn.getFileName();
+ //Si le repo n'est pas protege en ecriture on recupere sont UUID
+ String repositoryUUID = svnConn.getUUID();
+ if (repositoryUUID==null) {
+ repositoryUUID=address;
+ }
- log.info("login : "+login+" password : "+password);
-
+ if(log.isDebugEnabled()) {
+ log.debug("Login : "+login);
+ }
+
if(login==null && password==null) {
- if(getScmSession().getUsername(address)!=null && getScmSession().getPassword(address)!=null) {
+ if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
- login = getScmSession().getUsername(address);
- password = getScmSession().getPassword(address);
+ login = getScmSession().getUsername(repositoryUUID);
+ password = getScmSession().getPassword(repositoryUUID);
}
else {
login = "anonymous";
@@ -246,7 +253,7 @@
}
}
else {
- getScmSession().addScmUser(address, login , password);
+ getScmSession().addScmUser(repositoryUUID, login , password);
}
svnConn.updateAuthentication(login, password);
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-09 09:22:24 UTC (rev 208)
@@ -106,10 +106,10 @@
}
- SvnConnection svnSess = null;
+ SvnConnection svnConn = null;
try {
- svnSess = new SvnConnection(address);
+ svnConn = new SvnConnection(address);
}
catch (StringIndexOutOfBoundsException e) {
if(log.isErrorEnabled()) {
@@ -123,11 +123,18 @@
String login = this.getUsername();
String password = this.getPw();
+ //Si le repo n'est pas protege en ecriture on recupere sont UUID
+ String repositoryUUID = svnConn.getUUID();
+ if (repositoryUUID==null) {
+ repositoryUUID=address;
+ }
+
+
if(login==null && password==null) {
- if(getScmSession().getUsername(address)!=null && getScmSession().getPassword(address)!=null) {
+ if(getScmSession().getUsername(repositoryUUID)!=null && getScmSession().getPassword(repositoryUUID)!=null) {
//On recupère les identifiants en session
- login = getScmSession().getUsername(address);
- password = getScmSession().getPassword(address);
+ login = getScmSession().getUsername(repositoryUUID);
+ password = getScmSession().getPassword(repositoryUUID);
}
else {
login = "anonymous";
@@ -135,21 +142,21 @@
}
}
else {
- getScmSession().addScmUser(address, login , password);
+ getScmSession().addScmUser(repositoryUUID, login , password);
}
- svnSess.updateAuthentication( login, password);
+ svnConn.updateAuthentication( login, password);
/*
* Checkout process
*/
- SVNUpdateClient upclient = new SVNUpdateClient(svnSess.getManager(), svnSess.getSvnOption());
+ SVNUpdateClient upclient = new SVNUpdateClient(svnConn.getManager(), svnConn.getSvnOption());
File checkoutDir = null;
try {
checkoutDir = FileUtil.createTempDirectory("scm_", "");
- svnSess.createCheckoutdir();
+ svnConn.createCheckoutdir();
} catch (IOException e1) {
if(log.isErrorEnabled()) {
log.error("Can't create checkoutDir",e1);
@@ -164,15 +171,15 @@
try {
if (log.isDebugEnabled()) {
- log.debug("Do Checkout of " + svnSess.getRemoteUrl());
+ log.debug("Do Checkout of " + svnConn.getRemoteUrl());
}
- upclient.doCheckout(svnSess.getRemoteUrl(), checkoutDir,
+ upclient.doCheckout(svnConn.getRemoteUrl(), checkoutDir,
SVNRevision.HEAD, SVNRevision.HEAD, SVNDepth.INFINITY, false);
} catch (SVNAuthenticationException authexep) {
// 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());
}
//On supprime le repertoire temporaire
delTempDirectory(checkoutDir);
@@ -221,7 +228,7 @@
//Commit process
- SVNClientManager manager = svnSess.getManager();
+ SVNClientManager manager = svnConn.getManager();
try {
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-09 09:22:24 UTC (rev 208)
@@ -165,11 +165,19 @@
String passwordSvn = null;
if(obj!=null) {
ScmSession scmSession = (ScmSession) obj;
+
if(request.getAttribute("address")!=null) {
String address = request.getAttribute("address").toString();
+ address = scmSession.getUUID(address);
+
+ if(address==null) {
+ address = request.getAttribute("address").toString();
+ }
usernameSvn = scmSession.getUsername(address);
passwordSvn = scmSession.getPassword(address);
+
}
+
}
%>
Modified: trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-08 14:58:50 UTC (rev 207)
+++ trunk/src/main/webapp/WEB-INF/content/uploadForm.jsp 2011-08-09 09:22:24 UTC (rev 208)
@@ -22,6 +22,11 @@
ScmSession scmSession = (ScmSession) obj;
if(request.getParameter("address")!=null) {
String address = request.getParameter("address").toString();
+ address = scmSession.getUUID(address);
+
+ if(address==null) {
+ address = request.getParameter("address").toString();
+ }
usernameSvn = scmSession.getUsername(address);
passwordSvn = scmSession.getPassword(address);
}
1
0
r207 - in trunk/src/main: java/org/nuiton/scmwebeditor/actions webapp/WEB-INF/content
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:58:50 +0200 (Mon, 08 Aug 2011)
New Revision: 207
Url: http://nuiton.org/repositories/revision/scmwebeditor/207
Log:
Authentification informations are now stock in session
Modified:
trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-08 14:13:39 UTC (rev 206)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/ResetAction.java 2011-08-08 14:58:50 UTC (rev 207)
@@ -74,17 +74,29 @@
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(username==null && pw==null) {
- username = "anonymous";
- pw = "anonymous";
+ String login = this.username;
+ String password = this.pw;
+
+ 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);
+ }
SVNRepository repository = null;
try {
repository = SVNRepositoryFactory.create( SVNURL.parseURIEncoded( url ) );
- ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( username , pw );
+ ISVNAuthenticationManager authManager = SVNWCUtil.createDefaultAuthenticationManager( login , password );
repository.setAuthenticationManager( authManager );
SVNNodeKind nodeKind = repository.checkPath( file , -1 );
Modified: trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java
===================================================================
--- trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-08 14:13:39 UTC (rev 206)
+++ trunk/src/main/java/org/nuiton/scmwebeditor/actions/UploadAction.java 2011-08-08 14:58:50 UTC (rev 207)
@@ -119,7 +119,28 @@
return "error";
}
- svnSess.updateAuthentication( username, pw);
+
+ 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( login, password);
+
+
/*
* Checkout process
*/
@@ -267,7 +288,7 @@
}
if(log.isInfoEnabled()) {
- log.info(username + " with IP "+request.getRemoteAddr()+" add the file "+this.getUploadFileName()+" on the repository.");
+ log.info(login + " with IP "+request.getRemoteAddr()+" add the file "+this.getUploadFileName()+" on the repository.");
}
return SUCCESS;
Modified: trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp
===================================================================
--- trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-08 14:13:39 UTC (rev 206)
+++ trunk/src/main/webapp/WEB-INF/content/modificationViewer.jsp 2011-08-08 14:58:50 UTC (rev 207)
@@ -197,8 +197,6 @@
%>
<s:text name="scm.logAs" /> <%=usernameSvn%> <br/>
- <input type="hidden" value="<%=usernameSvn%>" name="username" />
- <input type="hidden" value="<%=passwordSvn%>" name="pw" />
<% } %>
1
0
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