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