From 27ae9095639bb228a1b7ff86a3ebe4264abf05be Mon Sep 17 00:00:00 2001
From: mschaefers <mschaefers@scoop-gmbh.de>
Date: Thu, 29 Nov 2012 12:33:09 -0500
Subject: [PATCH] feature: when using LdapUserService one can configure Gitblit to fetch all users from ldap that can possibly login. This allows to see newly generated LDAP users instantly in Gitblit. By now an LDAP user had to log in once to appear in GitBlit.
---
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