Commit 923ae93c authored by wroot's avatar wroot Committed by Guus der Kinderen

OF-1258 add option to disable anonymous login in Spark (#730)

parent 4b45839b
......@@ -43,6 +43,12 @@
<h1>
Client Control Plugin Changelog
</h1>
<p><b>2.1.1</b> -- December 29, 2016</p>
<ul>
<li>[<a href='http://www.igniterealtime.org/issues/browse/OF-1258'>OF-1258</a>] - Adds an option to enable/disable anonymous login in Spark.</li>
<li>This update corresponds with ticket SPARK-1852 and requires Spark version 2.8.3 and above for new functionality.</li>
</ul>
<p><b>2.1.0</b> -- November 24, 2016</p>
<ul>
<li>[<a href='http://www.igniterealtime.org/issues/browse/OF-1221'>OF-1221</a>] - Adds many more options from 'default.properties' which now allow administrators to enable them network wide.</li>
......
......@@ -8,8 +8,8 @@
<name>Client Control</name>
<description>Controls clients allowed to connect and available features</description>
<author>Jive Software</author>
<version>2.1.0</version>
<date>11/24/2016</date>
<version>2.1.1</version>
<date>12/29/2016</date>
<minServerVersion>4.0.0</minServerVersion>
<!-- UI extension -->
......
......@@ -70,11 +70,14 @@ server. However, only sophisticated and knowledgeable users may be able to do su
<br>
<h2>Client Features</h2>
<p><i>Please note that it's necessary for the following client features to operate in a locally cached manner since these values are not yet accessible to the unauthenticated client:</i></p>
<ul>
<li>Account Registration</li>
<li>Advanced Configuration</li>
<li>Host Name Change</li>
<li>Login as Invisible</li>
<li>Save Password & Autologin</li>
<li>Anonymous Login</li>
</ul>
<p>
This means that the user will need to login a second time before the particular client feature takes effect.
</p>
......
......@@ -81,6 +81,8 @@ client.features.hostname.description = Allow users to change the hos
client.features.info = Use the form below to enable or disable client features. Note: Unless otherwise specified, the following options pertain to the Spark client.
client.features.invisiblelogin = Login as Invisible
client.features.invisiblelogin.description = Allow users access to the "Login as invisible" option on login screen.
client.features.anonymouslogin = Login anonymously
client.features.anonymouslogin.description = Allow users access to the "Login anonymously" option on login menu.
client.features.logoutexit = Logout & Exit
client.features.logoutexit.description = Allow users to logout and exit.
client.features.movecopy = Move & Copy Contacts
......
......@@ -98,6 +98,7 @@ client.features.viewnotes = View Notes
client.features.viewnotes.description = Umo\u017E\u0148uj\u00ED u\u017Eivatel\u016Fm p\u0159\u00EDstup k "View Notes" polo\u017Eky menu.
client.features.viewtasklist = Zobrazen\u00ED seznamu \u00FAkol\u016F
client.features.viewtasklist.description = Umo\u017E\u0148uj\u00ED u\u017Eivatel\u016Fm p\u0159\u00EDstup k "View seznamu \u00FAkol\u016F" polo\u017Eky menu.
client.features.anonymouslogin.description = Umo\u017E\u0148uj\u00ED u\u017Eivatel\u016Fm p\u0159\u00EDstup k "Anonymn\u00ED p\u0159ihl\u00E1\u0161en\u00ED" mo\u017Enosti.
permitted.client.title = Povolen\u00ed klienti
permitted.client.description = Pou\u017eijte spodn\u00ed formul\u00e1\u0159 pro omezen\u00ed p\u0159\u00edstupu klient\u016f.
......
......@@ -78,6 +78,8 @@ client.features.hostname.description = Permitir a los usuarios cambi
client.features.info = Utilice el formulario de abajo para activar o desactivar las funciones del cliente. Nota: A menos que se especifique lo contrario, las siguientes opciones se refieren al cliente Spark.
client.features.invisiblelogin = Firma el invisible
client.features.invisiblelogin.description = Permitir a los usuarios acceder a la opci\u00F3n "Inicie sesi\u00F3n como invisible".
client.features.anonymouslogin = Firma el an\u00F3nimo
client.features.anonymouslogin.description = Permitir acceso a las opcione "Inicio de sesi\u00F3n an\u00F3nimo".
client.features.logoutexit = Salir y Salir
client.features.logoutexit.description = Permitir a los usuarios para desconectarse y salir.
client.features.movecopy = Mover y Copiar contactos
......
......@@ -144,6 +144,8 @@ client.features.hostname.description = Permettre aux utilisateurs de
client.features.info = Utilisez le formulaire ci-dessous pour activer ou d\u00E9sactiver les fonctionnalit\u00E9s du client. Remarque: Sauf indication contraire, les options suivantes concernent le client Spark.
client.features.invisiblelogin = Se connecter en tant qu'invisible
client.features.invisiblelogin.description = Autoriser les utilisateurs \u00E0 acc\u00E9der \u00E0 l'option "Se connecter comme invisible".
client.features.anonymouslogin = Se connecter en tant qu'anonyme
client.features.anonymouslogin.description = Permettre l'acc\u00E8s aux option "Connexion anonyme".
client.features.logoutexit = D\u00E9connexion & Sortie
client.features.logoutexit.description = Autoriser les utilisateurs \u00E0 se d\u00E9connecter et \u00E0 quitter.
client.features.movecopy = D\u00E9placer et copier les contacts
......
......@@ -100,6 +100,8 @@ client.features.hostname.description = Permitir que os usu\u00E1rios
client.features.info = Utilize o formul\u00E1rio abaixo para ativar ou desativar recursos do cliente. Nota: salvo indica\u00E7\u00E3o em contr\u00E1rio, as seguintes op\u00E7\u00F5es se referem ao cliente Spark.
client.features.invisiblelogin = Entrar como invis\u00EDvel
client.features.invisiblelogin.description = Permitir aos usu\u00E1rios acesso ao "Entrar como invis\u00EDvel" op\u00E7\u00E3o na tela de login.
client.features.anonymouslogin = Entrar an\u00F4nimo
client.features.anonymouslogin.description = Permita que os usu\u00E1rios acessem as op\u00E7\u00F5e "Entrar an\u00F4nimo".
client.features.logoutexit = Sair & Exit
client.features.logoutexit.description = Permitir que os usu\u00E1rios sair e sair.
client.features.movecopy = Mover e Copiar Contactos
......@@ -121,7 +123,7 @@ client.features.renames = Contato e Grupo Renames
client.features.renames.description = Permitir que usu\u00E1rios para renomear contatos e grupos.
client.features.save.settings = Salvar Ajustes
client.features.savepassandautologin = Salve senha e login autom\u00E1tico
client.features.savepassandautologin.description = Permita que os usu\u00E1rios acessem as op\u00E7\u00F5es "Salvar senha" e "Auto login".
client.features.savepassandautologin.description = Permita que os usu\u00E1rios acessem as op\u00E7\u00F5es "Salvar senha" e "Entrar autom\u00E1tico".
client.features.spark.only = (Apenas Spark)
client.features.title = Funcionalidades de Cliente
client.features.transfer = File Transfer
......
......@@ -98,6 +98,8 @@ client.features.hostname.description = \u5141\u8BB8\u7528\u6237\u66F
client.features.info = \u4F7F\u7528\u4E0B\u9762\u7684\u8868\u5355\u542F\u7528\u6216\u7981\u7528\u5BA2\u6237\u7AEF\u529F\u80FD\u3002 \u6CE8\u610F\uFF1A\u9664\u975E\u53E6\u6709\u8BF4\u660E\uFF0C\u4EE5\u4E0B\u9009\u9879\u4E0ESpark\u5BA2\u6237\u7AEF\u76F8\u5173\u3002
client.features.invisiblelogin = \u767B\u5F55\u4E3A\u4E0D\u53EF\u89C1
client.features.invisiblelogin.description = \u5141\u8BB8\u7528\u6237\u5728\u767B\u5F55\u5C4F\u5E55\u4E0A\u8BBF\u95EE\u201C\u4EE5\u4E0D\u53EF\u89C1\u767B\u5F55\u201D\u9009\u9879\u3002
client.features.anonymouslogin = \u533F\u540D\u767B\u5F55
client.features.anonymouslogin.description = \u5141\u8BB8\u7528\u6237\u5728\u767B\u5F55\u83DC\u5355\u4E0A\u8BBF\u95EE\u201C\u533F\u540D\u767B\u5F55\u201D\u9009\u9879
client.features.logoutexit = \u9000\u51FA\u5E76\u9000\u51FA
client.features.logoutexit.description = \u5141\u8BB8\u7528\u6237\u6CE8\u9500\u5E76\u9000\u51FA\u3002
client.features.movecopy = \u79FB\u52A8\u548C\u590D\u5236\u8054\u7CFB\u4EBA
......
......@@ -417,6 +417,12 @@ public class SparkManager implements Component {
responseElement.addElement("feature").addAttribute("var", "invisible-login");
}
// Check for LOGIN ANONYMOUSLY feature
boolean anonymousloginEnabled = Boolean.parseBoolean(JiveGlobals.getProperty("anonymouslogin.enabled", "true"));
if (anonymousloginEnabled) {
responseElement.addElement("feature").addAttribute("var", "anonymous-login");
}
// Check for LOGOUT & EXIT feature
boolean logoutexitEnabled = Boolean.parseBoolean(JiveGlobals.getProperty("logoutexit.enabled", "true"));
if (logoutexitEnabled) {
......
......@@ -23,6 +23,7 @@
String historyEnabledString = JiveGlobals.getProperty("history.enabled", "true");
String hostnameEnabledString = JiveGlobals.getProperty("hostname.enabled", "true");
String invisibleloginEnabledString = JiveGlobals.getProperty("invisiblelogin.enabled", "true");
String anonymousloginEnabledString = JiveGlobals.getProperty("anonymouslogin.enabled", "true");
String logoutexitEnabledString = JiveGlobals.getProperty("logoutexit.enabled", "true");
String movecopyEnabledString = JiveGlobals.getProperty("movecopy.enabled", "true");
String passwordchangeEnabledString = JiveGlobals.getProperty("passwordchange.enabled", "true");
......@@ -65,6 +66,7 @@
historyEnabledString = request.getParameter("historyEnabled");
hostnameEnabledString = request.getParameter("hostnameEnabled");
invisibleloginEnabledString = request.getParameter("invisibleloginEnabled");
anonymousloginEnabledString = request.getParameter("anonymousloginEnabled");
logoutexitEnabledString = request.getParameter("logoutexitEnabled");
movecopyEnabledString = request.getParameter("movecopyEnabled");
passwordchangeEnabledString = request.getParameter("passwordchangeEnabled");
......@@ -92,6 +94,7 @@
JiveGlobals.setProperty("history.enabled", historyEnabledString);
JiveGlobals.setProperty("hostname.enabled", hostnameEnabledString);
JiveGlobals.setProperty("invisiblelogin.enabled", invisibleloginEnabledString);
JiveGlobals.setProperty("anonymouslogin.enabled", anonymousloginEnabledString);
JiveGlobals.setProperty("logoutexit.enabled", logoutexitEnabledString);
JiveGlobals.setProperty("movecopy.enabled", movecopyEnabledString);
JiveGlobals.setProperty("passwordchange.enabled", passwordchangeEnabledString);
......@@ -120,6 +123,7 @@
boolean historyEnabled = Boolean.parseBoolean(historyEnabledString);
boolean hostnameEnabled = Boolean.parseBoolean(hostnameEnabledString);
boolean invisibleloginEnabled = Boolean.parseBoolean(invisibleloginEnabledString);
boolean anonymousloginEnabled = Boolean.parseBoolean(anonymousloginEnabledString);
boolean logoutexitEnabled = Boolean.parseBoolean(logoutexitEnabledString);
boolean movecopyEnabled = Boolean.parseBoolean(movecopyEnabledString);
boolean passwordchangeEnabled = Boolean.parseBoolean(passwordchangeEnabledString);
......@@ -316,6 +320,17 @@
<input type="radio" name="hostnameEnabled" value="false" <%= !hostnameEnabled ? "checked" : "" %> />
</td>
</tr>
<tr>
<td><b><fmt:message key="client.features.invisiblelogin" /></b> - <fmt:message key="client.features.spark.only" /><br/><span class="jive-description">
<fmt:message key="client.features.invisiblelogin.description" />
</span></td>
<td width="1%" nowrap>
<input type="radio" name="invisibleloginEnabled" value="true" <%= invisibleloginEnabled ? "checked" : "" %> />
</td>
<td width="1%" nowrap>
<input type="radio" name="invisibleloginEnabled" value="false" <%= !invisibleloginEnabled ? "checked" : "" %> />
</td>
</tr>
</table>
</div>
......@@ -327,14 +342,14 @@
<th><fmt:message key="client.features.enabled"/></th>
<th><fmt:message key="client.features.disabled"/></th>
<tr>
<td><b><fmt:message key="client.features.invisiblelogin" /></b> - <fmt:message key="client.features.spark.only" /><br/><span class="jive-description">
<fmt:message key="client.features.invisiblelogin.description" />
<td><b><fmt:message key="client.features.anonymouslogin" /></b> - <fmt:message key="client.features.spark.only" /><br/><span class="jive-description">
<fmt:message key="client.features.anonymouslogin.description" />
</span></td>
<td width="1%" nowrap>
<input type="radio" name="invisibleloginEnabled" value="true" <%= invisibleloginEnabled ? "checked" : "" %> />
<input type="radio" name="anonymousloginEnabled" value="true" <%= anonymousloginEnabled ? "checked" : "" %> />
</td>
<td width="1%" nowrap>
<input type="radio" name="invisibleloginEnabled" value="false" <%= !invisibleloginEnabled ? "checked" : "" %> />
<input type="radio" name="anonymousloginEnabled" value="false" <%= !anonymousloginEnabled ? "checked" : "" %> />
</td>
</tr>
<tr>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment