summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorunknown <jcrygier@JCrygier-W520.int.aonesolutions.us>2012-04-24 07:48:39 -0500
committerunknown <jcrygier@JCrygier-W520.int.aonesolutions.us>2012-04-24 07:48:39 -0500
commit3d699cb14d6c891338567c562f7fe8d81e318b1c (patch)
tree06c97f71d0e56ed4010695d39f58bd685d04d99f /src
parentf898a655a912ae76585339dfa04f018df552fb8a (diff)
downloadgitblit-3d699cb14d6c891338567c562f7fe8d81e318b1c.tar.gz
gitblit-3d699cb14d6c891338567c562f7fe8d81e318b1c.zip
Allow for admin teams with spaces in their name.
Diffstat (limited to 'src')
-rw-r--r--src/com/gitblit/LdapUserService.java22
-rw-r--r--src/com/gitblit/utils/StringUtils.java32
2 files changed, 29 insertions, 25 deletions
diff --git a/src/com/gitblit/LdapUserService.java b/src/com/gitblit/LdapUserService.java
index 9fcef9d6..86b61364 100644
--- a/src/com/gitblit/LdapUserService.java
+++ b/src/com/gitblit/LdapUserService.java
@@ -20,6 +20,7 @@ import java.io.File;
import java.net.URI;
import java.net.URISyntaxException;
import java.security.GeneralSecurityException;
+import java.util.List;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -174,17 +175,16 @@ public class LdapUserService extends GitblitUserService {
}
private void setAdminAttribute(UserModel user) {
- String adminString = settings.getString(Keys.realm.ldap_admins, "");
- String[] admins = adminString.split(" ");
- user.canAdmin = false;
- for (String admin : admins) {
- if (admin.startsWith("@")) { // Team
- if (user.getTeam(admin.substring(1)) != null)
- user.canAdmin = true;
- } else
- if (user.getName().equalsIgnoreCase(admin))
- user.canAdmin = true;
- }
+ user.canAdmin = false;
+ List<String> admins = settings.getStrings(Keys.realm.ldap_admins);
+ for (String admin : admins) {
+ if (admin.startsWith("@")) { // Team
+ if (user.getTeam(admin.substring(1)) != null)
+ user.canAdmin = true;
+ } else
+ if (user.getName().equalsIgnoreCase(admin))
+ user.canAdmin = true;
+ }
}
private void getTeamsFromLdap(LDAPConnection ldapConnection, String simpleUsername, SearchResultEntry loggingInUser, UserModel user) {
diff --git a/src/com/gitblit/utils/StringUtils.java b/src/com/gitblit/utils/StringUtils.java
index 0460ac9f..2c357241 100644
--- a/src/com/gitblit/utils/StringUtils.java
+++ b/src/com/gitblit/utils/StringUtils.java
@@ -327,20 +327,24 @@ public class StringUtils {
* @return list of strings
*/
public static List<String> getStringsFromValue(String value, String separator) {
- List<String> strings = new ArrayList<String>();
- try {
- String[] chunks = value.split(separator);
- for (String chunk : chunks) {
- chunk = chunk.trim();
- if (chunk.length() > 0) {
- strings.add(chunk);
- }
- }
- } catch (PatternSyntaxException e) {
- throw new RuntimeException(e);
- }
- return strings;
- }
+ List<String> strings = new ArrayList<String>();
+ try {
+ String[] chunks = value.split(separator + "(?=([^\"]*\"[^\"]*\")*[^\"]*$)");
+ for (String chunk : chunks) {
+ chunk = chunk.trim();
+ if (chunk.length() > 0) {
+ if (chunk.charAt(0) == '"' && chunk.charAt(chunk.length() - 1) == '"') {
+ // strip double quotes
+ chunk = chunk.substring(1, chunk.length() - 1).trim();
+ }
+ strings.add(chunk);
+ }
+ }
+ } catch (PatternSyntaxException e) {
+ throw new RuntimeException(e);
+ }
+ return strings;
+ }
/**
* Validates that a name is composed of letters, digits, or limited other