James Moger
2014-04-10 f5ca1655278d8b34a402120864a5a5c628b1c31d
Rename SSH key store on user rename
2 files modified
14 ■■■■■ changed files
src/main/java/com/gitblit/manager/GitblitManager.java 3 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/transport/ssh/IPublicKeyManager.java 11 ●●●●● patch | view | raw | blame | history
src/main/java/com/gitblit/manager/GitblitManager.java
@@ -338,6 +338,9 @@
                    repositoryManager.updateRepositoryModel(model.name, model, false);
                }
            }
            // rename the user's ssh public keystore
            getPublicKeyManager().renameUser(username, user.username);
        }
        if (!userManager.updateUserModel(username, user)) {
            throw new GitBlitException("Failed to update user!");
src/main/java/com/gitblit/transport/ssh/IPublicKeyManager.java
@@ -79,6 +79,17 @@
        return null;
    }
    public final void renameUser(String oldName, String newName) {
        List<SshKey> keys = getKeys(oldName);
        if (keys == null || keys.isEmpty()) {
            return;
        }
        removeAllKeys(oldName);
        for (SshKey key : keys) {
            addKey(newName, key);
        }
    }
    protected abstract boolean isStale(String username);
    protected abstract List<SshKey> getKeysImpl(String username);