From 6b18b0761b726fd9aef1ebcc21b760378f7d4b5c Mon Sep 17 00:00:00 2001 From: James Moger <james.moger@gitblit.com> Date: Mon, 16 Jun 2014 17:36:12 -0400 Subject: [PATCH] Merge release 1.6.0 --- src/main/java/com/gitblit/transport/ssh/git/Upload.java | 12 +++++++++--- 1 files changed, 9 insertions(+), 3 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 5793c3e..3f93fe1 100644 --- a/src/main/java/com/gitblit/transport/ssh/git/Upload.java +++ b/src/main/java/com/gitblit/transport/ssh/git/Upload.java @@ -1,4 +1,5 @@ /* + * Copyright (C) 2009 The Android Open Source Project * Copyright 2014 gitblit.com. * * Licensed under the Apache License, Version 2.0 (the "License"); @@ -17,14 +18,19 @@ import org.eclipse.jgit.transport.UploadPack; -import com.gitblit.transport.ssh.CommandMetaData; +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") +@CommandMetaData(name = "git-upload-pack", description = "Sends packs to a client for clone and fetch", hidden = true) public class Upload extends BaseGitCommand { @Override protected void runImpl() throws Failure { try { - UploadPack up = uploadPackFactory.create(ctx.getClient(), repo); + 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) { throw new Failure(1, "fatal: Cannot upload pack: ", e); -- Gitblit v1.9.1