From 22957a70fb7ba8a38564d6b6be15c661da0c3a20 Mon Sep 17 00:00:00 2001
From: James Moger <james.moger@gitblit.com>
Date: Thu, 10 Apr 2014 18:58:08 -0400
Subject: [PATCH] Start SSH usage documentation
---
src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java | 9 +++++++++
1 files changed, 9 insertions(+), 0 deletions(-)
diff --git a/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java b/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java
index 83707f7..5c02273 100644
--- a/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java
+++ b/src/main/java/com/gitblit/transport/ssh/commands/DispatchCommand.java
@@ -93,6 +93,12 @@
}
Command cmd = getCommand();
+ if (cmd.getClass().isAnnotationPresent(CommandMetaData.class)) {
+ CommandMetaData meta = cmd.getClass().getAnnotation(CommandMetaData.class);
+ if (meta.admin() && !ctx.getClient().getUser().canAdmin()) {
+ throw new UnloggedFailure(1, MessageFormat.format("{0} requires admin permissions", commandName));
+ }
+ }
if (cmd instanceof BaseCommand) {
BaseCommand bc = (BaseCommand) cmd;
if (getName().isEmpty()) {
@@ -162,6 +168,9 @@
final Class<? extends Command> c = m.get(name);
CommandMetaData meta = c.getAnnotation(CommandMetaData.class);
if (meta != null) {
+ if (meta.admin() && !ctx.getClient().getUser().canAdmin()) {
+ continue;
+ }
if (meta.hidden()) {
continue;
}
--
Gitblit v1.9.1