From ec5a889c907af30afeba527def2d9f836eecbec4 Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Thu, 03 Nov 2011 08:50:47 -0400 Subject: [PATCH] Feeds and Manager must respect a server's web.mountParameters setting --- src/com/gitblit/client/GitblitClient.java | 31 +++++++++++++++++++++++++++++-- 1 files changed, 29 insertions(+), 2 deletions(-) diff --git a/src/com/gitblit/client/GitblitClient.java b/src/com/gitblit/client/GitblitClient.java index cc2b458..dcc7dfc 100644 --- a/src/com/gitblit/client/GitblitClient.java +++ b/src/com/gitblit/client/GitblitClient.java @@ -38,6 +38,7 @@ import com.gitblit.models.SyndicatedEntryModel; import com.gitblit.models.UserModel; import com.gitblit.utils.RpcUtils; +import com.gitblit.utils.StringUtils; import com.gitblit.utils.SyndicationUtils; /** @@ -96,6 +97,7 @@ } public void login() throws IOException { + refreshSettings(); refreshAvailableFeeds(); refreshRepositories(); @@ -110,7 +112,6 @@ // credentials may not have administrator access // or server may have disabled rpc management refreshUsers(); - refreshSettings(); allowManagement = true; } catch (UnauthorizedException e) { } catch (ForbiddenException e) { @@ -132,7 +133,6 @@ } catch (IOException e) { e.printStackTrace(); } - } public boolean allowManagement() { @@ -147,6 +147,33 @@ return account != null && account.equalsIgnoreCase(model.owner); } + public String getURL(String action, String repository, String objectId) { + boolean mounted = settings.get(Keys.web.mountParameters).getBoolean(true); + StringBuilder sb = new StringBuilder(); + sb.append(url); + sb.append('/'); + sb.append(action); + sb.append('/'); + if (mounted) { + // mounted url/action/repository/objectId + sb.append(StringUtils.encodeURL(repository)); + if (!StringUtils.isEmpty(objectId)) { + sb.append('/'); + sb.append(objectId); + } + return sb.toString(); + } else { + // parameterized url/action/&r=repository&h=objectId + sb.append("?r="); + sb.append(repository); + if (!StringUtils.isEmpty(objectId)) { + sb.append("&h="); + sb.append(objectId); + } + return sb.toString(); + } + } + public ServerSettings getSettings() { return settings; } -- Gitblit v1.9.1