From 01995873731e7efa517ca66246547b3084f8d529 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 01 May 2014 14:27:28 -0400
Subject: [PATCH] Allow milestone deletion within the edit milestone page
---
src/main/java/com/gitblit/transport/ssh/MemoryKeyManager.java | 20 +++++++++++++++++---
1 files changed, 17 insertions(+), 3 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/MemoryKeyManager.java b/src/main/java/com/gitblit/transport/ssh/MemoryKeyManager.java
index 18f9a4e..357b34a 100644
--- a/src/main/java/com/gitblit/transport/ssh/MemoryKeyManager.java
+++ b/src/main/java/com/gitblit/transport/ssh/MemoryKeyManager.java
@@ -28,7 +28,7 @@
*/
public class MemoryKeyManager extends IPublicKeyManager {
- Map<String, List<SshKey>> keys;
+ final Map<String, List<SshKey>> keys;
public MemoryKeyManager() {
keys = new HashMap<String, List<SshKey>>();
@@ -57,7 +57,8 @@
@Override
protected boolean isStale(String username) {
- return false;
+ // always return true so we gets keys from our hashmap
+ return true;
}
@Override
@@ -75,6 +76,7 @@
if (!keys.containsKey(id)) {
keys.put(id, new ArrayList<SshKey>());
}
+ log.info("added {} key {}", username, key.getFingerprint());
return keys.get(id).add(key);
}
@@ -82,15 +84,27 @@
public boolean removeKey(String username, SshKey key) {
String id = username.toLowerCase();
if (!keys.containsKey(id)) {
+ log.info("can't remove keys for {}", username);
return false;
}
- return keys.get(id).remove(key);
+ List<SshKey> list = keys.get(id);
+ boolean success = list.remove(key);
+ if (success) {
+ log.info("removed {} key {}", username, key.getFingerprint());
+ }
+
+ if (list.isEmpty()) {
+ keys.remove(id);
+ log.info("no {} keys left, removed {}", username, username);
+ }
+ return success;
}
@Override
public boolean removeAllKeys(String username) {
String id = username.toLowerCase();
keys.remove(id.toLowerCase());
+ log.info("removed all keys for {}", username);
return true;
}
}
--
Gitblit v1.9.1