From 18edd81951a034a2bda9459ff1ef2dcd686eb39b Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 29 Nov 2012 18:45:55 -0500
Subject: [PATCH] Hide some user links based on authentication type
---
src/com/gitblit/wicket/pages/RootPage.java | 44 +++++++++++++++++++++++++++++++++++++++++---
1 files changed, 41 insertions(+), 3 deletions(-)
diff --git a/src/com/gitblit/wicket/pages/RootPage.java b/src/com/gitblit/wicket/pages/RootPage.java
index eaa2542..adcd7b1 100644
--- a/src/com/gitblit/wicket/pages/RootPage.java
+++ b/src/com/gitblit/wicket/pages/RootPage.java
@@ -178,8 +178,14 @@
PageParameters pp = getPageParameters();
if (pp != null) {
PageParameters params = new PageParameters(pp);
+ // remove named project parameter
+ params.remove("p");
+
// remove named repository parameter
params.remove("r");
+
+ // remove named user parameter
+ params.remove("user");
// remove days back parameter if it is the default value
if (params.containsKey("db")
@@ -210,7 +216,7 @@
GitBlit.self().setCookie(response, user);
}
- if (!continueToOriginalDestination()) {
+ if (!session.continueRequest()) {
PageParameters params = getPageParameters();
if (params == null) {
// redirect to this page
@@ -230,6 +236,7 @@
final UserModel user = GitBlitWebSession.get().getUser();
List<RepositoryModel> repositories = GitBlit.self().getRepositoryModels(user);
repositoryModels.addAll(repositories);
+ Collections.sort(repositoryModels);
}
return repositoryModels;
}
@@ -322,6 +329,13 @@
}
boolean hasParameter = false;
+ String projectName = WicketUtils.getProjectName(params);
+ String userName = WicketUtils.getUsername(params);
+ if (StringUtils.isEmpty(projectName)) {
+ if (!StringUtils.isEmpty(userName)) {
+ projectName = "~" + userName;
+ }
+ }
String repositoryName = WicketUtils.getRepositoryName(params);
String set = WicketUtils.getSet(params);
String regex = WicketUtils.getRegEx(params);
@@ -338,6 +352,27 @@
if (model.name.equalsIgnoreCase(repositoryName)) {
models.add(model);
break;
+ }
+ }
+ }
+
+ if (!StringUtils.isEmpty(projectName)) {
+ // try named project
+ hasParameter = true;
+ if (projectName.equalsIgnoreCase(GitBlit.getString(Keys.web.repositoryRootGroupName, "main"))) {
+ // root project/group
+ for (RepositoryModel model : availableModels) {
+ if (model.name.indexOf('/') == -1) {
+ models.add(model);
+ }
+ }
+ } else {
+ // named project/group
+ String group = projectName.toLowerCase() + "/";
+ for (RepositoryModel model : availableModels) {
+ if (model.name.toLowerCase().startsWith(group)) {
+ models.add(model);
+ }
}
}
}
@@ -383,7 +418,7 @@
// brute-force our way through finding the matching models
for (RepositoryModel repositoryModel : availableModels) {
for (TeamModel teamModel : teamModels) {
- if (teamModel.hasRepository(repositoryModel.name)) {
+ if (teamModel.hasRepositoryPermission(repositoryModel.name)) {
models.add(repositoryModel);
}
}
@@ -411,6 +446,9 @@
}
models = timeFiltered;
}
- return new ArrayList<RepositoryModel>(models);
+
+ List<RepositoryModel> list = new ArrayList<RepositoryModel>(models);
+ Collections.sort(list);
+ return list;
}
}
--
Gitblit v1.9.1