From acf16a96cd518e8c7362c509967b2104faf50f21 Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Sat, 28 Jan 2017 15:24:57 +0100 Subject: [PATCH 1/3] Escape folder names in JGitUtils to allow special characters. Fixes #999 --- src/main/java/com/gitblit/utils/JGitUtils.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/utils/JGitUtils.java b/src/main/java/com/gitblit/utils/JGitUtils.java index 0eea1d615..e70b4f996 100644 --- a/src/main/java/com/gitblit/utils/JGitUtils.java +++ b/src/main/java/com/gitblit/utils/JGitUtils.java @@ -954,9 +954,9 @@ public static List getFilesInPath2(Repository repository, String path List paths = new ArrayList<>(); while (tw.next()) { - String child = isPathEmpty ? tw.getPathString() - : tw.getPathString().replaceFirst(String.format("%s/", path), ""); - paths.add(child); + String pathString = tw.getPathString(); + String child = isPathEmpty ? pathString : pathString.replaceFirst(Pattern.quote(String.format("%s/", path)), ""); + paths.add(child); } for(String p: PathUtils.compressPaths(paths)) { From 9f73b67bcd8211fb0b7399091be16a37d228ba73 Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Sat, 28 Jan 2017 18:00:11 +0100 Subject: [PATCH 2/3] support special characters in teams administration. addresses #1135 --- .../gitblit/wicket/pages/EditUserPage.java | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java index 72dee6b6d..6e47b9697 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java +++ b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java @@ -27,6 +27,7 @@ import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; +import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.Model; @@ -43,7 +44,6 @@ import com.gitblit.utils.StringUtils; import com.gitblit.wicket.NonTrimmedPasswordTextField; import com.gitblit.wicket.RequiresAdminRole; -import com.gitblit.wicket.StringChoiceRenderer; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.RegistrantPermissionsPanel; @@ -106,8 +106,21 @@ protected void setupPage(final UserModel userModel) { final List permissions = app().repositories().getUserAccessPermissions(userModel); final Palette teams = new Palette("teams", new ListModel( - new ArrayList(userTeams)), new CollectionModel(app().users() - .getAllTeamNames()), new StringChoiceRenderer(), 10, false); + new ArrayList(userTeams)), new CollectionModel(app().users().getAllTeamNames()), + //use index based IChoiceRenderer to add support for special characters in team names (e.g. R&D) + new IChoiceRenderer() { + private static final long serialVersionUID = 1L; + + @Override + public Object getDisplayValue(String object) { + return object; + } + + @Override + public String getIdValue(String object, int index) { + return String.valueOf(index); + } + }, 10, false); Form form = new Form("editForm", model) { private static final long serialVersionUID = 1L; From 2196aff3fa7d51474ab56dbad4f66165ddce5832 Mon Sep 17 00:00:00 2001 From: Martin Spielmann Date: Fri, 24 Feb 2017 17:09:35 +0100 Subject: [PATCH 3/3] Revert "support special characters in teams administration. addresses #1135" This reverts commit 9f73b67bcd8211fb0b7399091be16a37d228ba73. --- .../gitblit/wicket/pages/EditUserPage.java | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java index 6e47b9697..72dee6b6d 100644 --- a/src/main/java/com/gitblit/wicket/pages/EditUserPage.java +++ b/src/main/java/com/gitblit/wicket/pages/EditUserPage.java @@ -27,7 +27,6 @@ import org.apache.wicket.markup.html.form.Button; import org.apache.wicket.markup.html.form.CheckBox; import org.apache.wicket.markup.html.form.Form; -import org.apache.wicket.markup.html.form.IChoiceRenderer; import org.apache.wicket.markup.html.form.TextField; import org.apache.wicket.model.CompoundPropertyModel; import org.apache.wicket.model.Model; @@ -44,6 +43,7 @@ import com.gitblit.utils.StringUtils; import com.gitblit.wicket.NonTrimmedPasswordTextField; import com.gitblit.wicket.RequiresAdminRole; +import com.gitblit.wicket.StringChoiceRenderer; import com.gitblit.wicket.WicketUtils; import com.gitblit.wicket.panels.RegistrantPermissionsPanel; @@ -106,21 +106,8 @@ protected void setupPage(final UserModel userModel) { final List permissions = app().repositories().getUserAccessPermissions(userModel); final Palette teams = new Palette("teams", new ListModel( - new ArrayList(userTeams)), new CollectionModel(app().users().getAllTeamNames()), - //use index based IChoiceRenderer to add support for special characters in team names (e.g. R&D) - new IChoiceRenderer() { - private static final long serialVersionUID = 1L; - - @Override - public Object getDisplayValue(String object) { - return object; - } - - @Override - public String getIdValue(String object, int index) { - return String.valueOf(index); - } - }, 10, false); + new ArrayList(userTeams)), new CollectionModel(app().users() + .getAllTeamNames()), new StringChoiceRenderer(), 10, false); Form form = new Form("editForm", model) { private static final long serialVersionUID = 1L;