Browse Source

Rename SSH key store on user rename

tags/v1.5.0
James Moger 10 years ago
parent
commit
f5ca165527

+ 3
- 0
src/main/java/com/gitblit/manager/GitblitManager.java View File

@@ -338,6 +338,9 @@ public class GitblitManager implements IGitblit {
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!");

+ 11
- 0
src/main/java/com/gitblit/transport/ssh/IPublicKeyManager.java View File

@@ -79,6 +79,17 @@ public abstract class IPublicKeyManager implements IManager {
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);

Loading…
Cancel
Save