From 3c62241572c7b043743d66adf53bb1633af43506 Mon Sep 17 00:00:00 2001
From: Ludovic Poitou <ludovic.poitou@forgerock.com>
Date: Thu, 07 Apr 2011 20:35:36 +0000
Subject: [PATCH] Fix Issue OPENDJ-19 -  execute control-panel as any user The control-panel script checks at startup that the user is the owner of the local instance. This prevents anyone from using the control-panel to access remote servers. Added an option (-r or --remote) to skip the local checks.

---
 opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelArgumentParser.java |   20 ++++++++++++++++++++
 1 files changed, 20 insertions(+), 0 deletions(-)

diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelArgumentParser.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelArgumentParser.java
index ef04b1e..e09a54c 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelArgumentParser.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ControlPanelArgumentParser.java
@@ -23,6 +23,7 @@
  *
  *
  *      Copyright 2009-2010 Sun Microsystems, Inc.
+ *      Portions Copyright 2011 ForgeRock AS
  */
 
 package org.opends.guitools.controlpanel;
@@ -81,6 +82,11 @@
   private BooleanArgument trustAllArg = null;
 
   /**
+   * The 'remoteArg' global argument.
+   */
+  private BooleanArgument remoteArg = null;
+
+  /**
    * Argument to specify the connect timeout.
    */
   private IntegerArgument connectTimeoutArg = null;
@@ -164,6 +170,11 @@
     trustAllArg.setPropertyName(OPTION_LONG_TRUSTALL);
     addArgument(trustAllArg);
 
+    remoteArg = new BooleanArgument("remote", OPTION_SHORT_REMOTE,
+        OPTION_LONG_REMOTE, INFO_DESCRIPTION_REMOTE.get());
+    remoteArg.setPropertyName(OPTION_LONG_REMOTE);
+    addArgument(remoteArg);
+
     int defaultTimeout = ConnectionUtils.getDefaultLDAPTimeout();
     connectTimeoutArg = new IntegerArgument(OPTION_LONG_CONNECT_TIMEOUT,
         null, OPTION_LONG_CONNECT_TIMEOUT,
@@ -307,4 +318,13 @@
     }
   }
 
+  /**
+   * Returns whether the user specified to connect to a remote server.
+   * @return whether the user specified to connect to a remote server.
+   */
+  public boolean isRemote()
+  {
+    return remoteArg.isPresent();
+  }
+
 }

--
Gitblit v1.10.0