diff options
author | James Moger <james.moger@gitblit.com> | 2014-04-02 09:41:23 -0400 |
---|---|---|
committer | James Moger <james.moger@gitblit.com> | 2014-04-10 19:00:52 -0400 |
commit | c78b25d102fe700617011a4c8acc0d35f9a9e6ca (patch) | |
tree | 17580cb0cedf9d889ce874b0a696bfeefbf34d2c /src/main/java/com/gitblit/transport/ssh/git/Upload.java | |
parent | e5d0bacbf746e09a9194822b231cb27090f58973 (diff) | |
download | gitblit-c78b25d102fe700617011a4c8acc0d35f9a9e6ca.tar.gz gitblit-c78b25d102fe700617011a4c8acc0d35f9a9e6ca.zip |
Support specifying permission levels for SSH public keys
Diffstat (limited to 'src/main/java/com/gitblit/transport/ssh/git/Upload.java')
-rw-r--r-- | 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 c4dfa808..11a33cef 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 @@ package com.gitblit.transport.ssh.git; 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 @@ public class Upload extends BaseGitCommand { @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) { |