From c78b25d102fe700617011a4c8acc0d35f9a9e6ca Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 19:00:52 -0400
Subject: [PATCH] Support specifying permission levels for SSH public keys
---
src/main/java/com/gitblit/transport/ssh/git/Upload.java | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/git/Upload.java b/src/main/java/com/gitblit/transport/ssh/git/Upload.java
index c4dfa80..11a33ce 100644
--- a/src/main/java/com/gitblit/transport/ssh/git/Upload.java
+++ b/src/main/java/com/gitblit/transport/ssh/git/Upload.java
@@ -17,6 +17,7 @@
import org.eclipse.jgit.transport.UploadPack;
+import com.gitblit.transport.ssh.SshKey;
import com.gitblit.transport.ssh.commands.CommandMetaData;
@CommandMetaData(name = "git-upload-pack", description = "Sends packs to a client for clone and fetch", hidden = true)
@@ -24,6 +25,10 @@
@Override
protected void runImpl() throws Failure {
try {
+ SshKey key = getContext().getClient().getKey();
+ if (key != null && !key.canClone()) {
+ throw new Failure(1, "Sorry, your SSH public key is not allowed to clone!");
+ }
UploadPack up = uploadPackFactory.create(getContext().getClient(), repo);
up.upload(in, out, null);
} catch (Exception e) {
--
Gitblit v1.9.1