group domainoptions
This commit is contained in:
parent
aec87c80f9
commit
f539c87aea
@ -40,6 +40,12 @@
|
|||||||
</libs>
|
</libs>
|
||||||
</configuration>
|
</configuration>
|
||||||
</plugin>
|
</plugin>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<version>2.2</version>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
</plugins>
|
</plugins>
|
||||||
</build>
|
</build>
|
||||||
</project>
|
</project>
|
||||||
|
2
pom.xml
2
pom.xml
@ -12,7 +12,7 @@
|
|||||||
<properties>
|
<properties>
|
||||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
|
||||||
<hsadmin.version>1.0.4</hsadmin.version>
|
<hsadmin.version>1.0.4</hsadmin.version>
|
||||||
<tomee.version>8.0.16</tomee.version>
|
<tomee.version>9.1.1</tomee.version>
|
||||||
<servlet.version>4.0.1</servlet.version>
|
<servlet.version>4.0.1</servlet.version>
|
||||||
<liquibase.version>4.17.2</liquibase.version>
|
<liquibase.version>4.17.2</liquibase.version>
|
||||||
<openjpa.version>3.2.2</openjpa.version>
|
<openjpa.version>3.2.2</openjpa.version>
|
||||||
|
@ -9,6 +9,7 @@ import java.util.Map;
|
|||||||
import com.vaadin.v7.data.Validator;
|
import com.vaadin.v7.data.Validator;
|
||||||
import com.vaadin.v7.ui.CheckBox;
|
import com.vaadin.v7.ui.CheckBox;
|
||||||
import com.vaadin.ui.CustomComponent;
|
import com.vaadin.ui.CustomComponent;
|
||||||
|
import com.vaadin.ui.Label;
|
||||||
import com.vaadin.v7.ui.VerticalLayout;
|
import com.vaadin.v7.ui.VerticalLayout;
|
||||||
|
|
||||||
import de.hsadmin.rpc.HSAdminSession;
|
import de.hsadmin.rpc.HSAdminSession;
|
||||||
@ -18,17 +19,23 @@ public class DomainOptionsEditor extends CustomComponent implements IHSEditor {
|
|||||||
|
|
||||||
private static final long serialVersionUID = 2L;
|
private static final long serialVersionUID = 2L;
|
||||||
|
|
||||||
private static final String[] OPTIONS =
|
private static final String[] EMAIL_OPTIONS =
|
||||||
new String[] {
|
new String[] {
|
||||||
"greylisting",
|
"greylisting",
|
||||||
"autoconfig",
|
"autoconfig",
|
||||||
"dkim",
|
"dkim",
|
||||||
"backupmxforexternalmx",
|
"backupmxforexternalmx"
|
||||||
|
};
|
||||||
|
private static final String[] APACHE_OPTIONS =
|
||||||
|
new String[] {
|
||||||
"multiviews",
|
"multiviews",
|
||||||
"indexes",
|
"indexes",
|
||||||
"htdocsfallback",
|
"htdocsfallback",
|
||||||
"includes",
|
"includes",
|
||||||
"letsencrypt",
|
"letsencrypt"
|
||||||
|
};
|
||||||
|
private static final String[] SCRIPTING_OPTIONS =
|
||||||
|
new String[] {
|
||||||
"cgi",
|
"cgi",
|
||||||
"fastcgi",
|
"fastcgi",
|
||||||
"passenger",
|
"passenger",
|
||||||
@ -37,17 +44,34 @@ public class DomainOptionsEditor extends CustomComponent implements IHSEditor {
|
|||||||
|
|
||||||
private final PropertyInfo propertyInfo;
|
private final PropertyInfo propertyInfo;
|
||||||
private final VerticalLayout layout;
|
private final VerticalLayout layout;
|
||||||
private final Map<String, CheckBox> checkboxes;
|
private final Map<String, CheckBox> emailCheckboxes;
|
||||||
|
private final Map<String, CheckBox> apacheCheckboxes;
|
||||||
|
private final Map<String, CheckBox> scriptingCheckboxes;
|
||||||
|
|
||||||
public DomainOptionsEditor(final PropertyInfo propertyInfo, final HSAdminSession session, final Map<String, String> whereContext) {
|
public DomainOptionsEditor(final PropertyInfo propertyInfo, final HSAdminSession session, final Map<String, String> whereContext) {
|
||||||
this.checkboxes = new HashMap<>();
|
this.emailCheckboxes = new HashMap<>();
|
||||||
|
this.apacheCheckboxes = new HashMap<>();
|
||||||
|
this.scriptingCheckboxes = new HashMap<>();
|
||||||
this.propertyInfo = propertyInfo;
|
this.propertyInfo = propertyInfo;
|
||||||
final I18N i18n = session.getI18N();
|
final I18N i18n = session.getI18N();
|
||||||
this.setCaption(i18n.getText(propertyInfo.getName()));
|
this.setCaption(i18n.getText(propertyInfo.getName()));
|
||||||
layout = new VerticalLayout();
|
layout = new VerticalLayout();
|
||||||
for (String opt : OPTIONS) {
|
layout.addComponent(new Label("E-Mail-Optionen"));
|
||||||
|
for (String opt : EMAIL_OPTIONS) {
|
||||||
final CheckBox checkBox = new CheckBox(i18n.getText("domainoption." + opt));
|
final CheckBox checkBox = new CheckBox(i18n.getText("domainoption." + opt));
|
||||||
checkboxes.put(opt, checkBox);
|
emailCheckboxes.put(opt, checkBox);
|
||||||
|
layout.addComponent(checkBox);
|
||||||
|
}
|
||||||
|
layout.addComponent(new Label("Apache-Webserver-Optionen"));
|
||||||
|
for (String opt : APACHE_OPTIONS) {
|
||||||
|
final CheckBox checkBox = new CheckBox(i18n.getText("domainoption." + opt));
|
||||||
|
apacheCheckboxes.put(opt, checkBox);
|
||||||
|
layout.addComponent(checkBox);
|
||||||
|
}
|
||||||
|
layout.addComponent(new Label("Apache-Scripting-Optionen"));
|
||||||
|
for (String opt : SCRIPTING_OPTIONS) {
|
||||||
|
final CheckBox checkBox = new CheckBox(i18n.getText("domainoption." + opt));
|
||||||
|
scriptingCheckboxes.put(opt, checkBox);
|
||||||
layout.addComponent(checkBox);
|
layout.addComponent(checkBox);
|
||||||
}
|
}
|
||||||
layout.setCaption(i18n.getText(propertyInfo.getName()));
|
layout.setCaption(i18n.getText(propertyInfo.getName()));
|
||||||
@ -58,14 +82,26 @@ public class DomainOptionsEditor extends CustomComponent implements IHSEditor {
|
|||||||
public void setValues(final Map<String, Object> valuesMap) {
|
public void setValues(final Map<String, Object> valuesMap) {
|
||||||
final Object optionsObject = valuesMap.get(propertyInfo.getName());
|
final Object optionsObject = valuesMap.get(propertyInfo.getName());
|
||||||
if (optionsObject == null) {
|
if (optionsObject == null) {
|
||||||
for (String opt : OPTIONS) {
|
for (String opt : EMAIL_OPTIONS) {
|
||||||
checkboxes.get(opt).setValue(!"backupmxforexternalmx".equals(opt));
|
emailCheckboxes.get(opt).setValue(!"backupmxforexternalmx".equals(opt));
|
||||||
|
}
|
||||||
|
for (String opt : APACHE_OPTIONS) {
|
||||||
|
apacheCheckboxes.get(opt).setValue("letsencrypt".equals(opt));
|
||||||
|
}
|
||||||
|
for (String opt : SCRIPTING_OPTIONS) {
|
||||||
|
scriptingCheckboxes.get(opt).setValue("fastcgi".equals(opt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (optionsObject instanceof Object[]) {
|
if (optionsObject instanceof Object[]) {
|
||||||
final List<Object> options = Arrays.asList((Object[]) optionsObject);
|
final List<Object> options = Arrays.asList((Object[]) optionsObject);
|
||||||
for (String opt : OPTIONS) {
|
for (String opt : EMAIL_OPTIONS) {
|
||||||
checkboxes.get(opt).setValue(options.contains(opt));
|
emailCheckboxes.get(opt).setValue(options.contains(opt));
|
||||||
|
}
|
||||||
|
for (String opt : APACHE_OPTIONS) {
|
||||||
|
apacheCheckboxes.get(opt).setValue(options.contains(opt));
|
||||||
|
}
|
||||||
|
for (String opt : SCRIPTING_OPTIONS) {
|
||||||
|
scriptingCheckboxes.get(opt).setValue(options.contains(opt));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -73,8 +109,18 @@ public class DomainOptionsEditor extends CustomComponent implements IHSEditor {
|
|||||||
@Override
|
@Override
|
||||||
public Object getValue() {
|
public Object getValue() {
|
||||||
final List<String> values = new ArrayList<>();
|
final List<String> values = new ArrayList<>();
|
||||||
for (final String opt : OPTIONS) {
|
for (final String opt : EMAIL_OPTIONS) {
|
||||||
if (checkboxes.get(opt).getValue()) {
|
if (emailCheckboxes.get(opt).getValue()) {
|
||||||
|
values.add(opt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (final String opt : APACHE_OPTIONS) {
|
||||||
|
if (apacheCheckboxes.get(opt).getValue()) {
|
||||||
|
values.add(opt);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (final String opt : SCRIPTING_OPTIONS) {
|
||||||
|
if (scriptingCheckboxes.get(opt).getValue()) {
|
||||||
values.add(opt);
|
values.add(opt);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,11 +38,14 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
if ("user".equals(inputName)) {
|
if ("user".equals(inputName)) {
|
||||||
return getSelectFromRemote(action, propertyInfo, session, "user", whereContext);
|
return getSelectFromRemote(action, propertyInfo, session, "user", whereContext);
|
||||||
}
|
}
|
||||||
|
if ("validsubdomainnames".equals(inputName)) {
|
||||||
|
return getValidsubdomainnamesEditor(action, propertyInfo);
|
||||||
|
}
|
||||||
if ("domainoptions".equals(inputName)) {
|
if ("domainoptions".equals(inputName)) {
|
||||||
return getDomainOptionsEditor(action, propertyInfo, session, whereContext);
|
return getDomainOptionsEditor(action, propertyInfo, session, whereContext);
|
||||||
}
|
}
|
||||||
if ("validsubdomainnames".equals(inputName)) {
|
if ("passengerpython".equals(inputName)|"passengernodejs".equals(inputName)|"passengerruby".equals(inputName)|"fcgiphpbin".equals(inputName)) {
|
||||||
return getValidsubdomainnamesEditor(action, propertyInfo, session, whereContext);
|
return getScriptingPathEditor(action, propertyInfo);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if ("emailaddress".equals(module) || "emailalias".equals(module)) {
|
if ("emailaddress".equals(module) || "emailalias".equals(module)) {
|
||||||
@ -73,12 +76,13 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
return getEditor(action, propertyInfo);
|
return getEditor(action, propertyInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IHSEditor getValidsubdomainnamesEditor(final String action, final PropertyInfo propertyInfo) {
|
||||||
private IHSEditor getValidsubdomainnamesEditor(final String action, final PropertyInfo propertyInfo, final HSAdminSession session,
|
|
||||||
final Map<String, String> whereContext) {
|
|
||||||
return PanelToolbar.ACTION_EDIT.equals(action) ? getEditor(action, propertyInfo) : new NullEditor();
|
return PanelToolbar.ACTION_EDIT.equals(action) ? getEditor(action, propertyInfo) : new NullEditor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private IHSEditor getScriptingPathEditor(final String action, final PropertyInfo propertyInfo) {
|
||||||
|
return PanelToolbar.ACTION_EDIT.equals(action) ? getEditor(action, propertyInfo) : new NullEditor();
|
||||||
|
}
|
||||||
|
|
||||||
private IHSEditor getDomainOptionsEditor(final String action, final PropertyInfo propertyInfo, final HSAdminSession session, final Map<String, String> whereContext) {
|
private IHSEditor getDomainOptionsEditor(final String action, final PropertyInfo propertyInfo, final HSAdminSession session, final Map<String, String> whereContext) {
|
||||||
return PanelToolbar.ACTION_EDIT.equals(action) ? new DomainOptionsEditor(propertyInfo, session, whereContext) : new NullEditor();
|
return PanelToolbar.ACTION_EDIT.equals(action) ? new DomainOptionsEditor(propertyInfo, session, whereContext) : new NullEditor();
|
||||||
@ -161,7 +165,7 @@ public class GenericEditorFactory implements IEditorFactory, Serializable {
|
|||||||
|
|
||||||
private IHSEditor getShellSelect(final String action, final PropertyInfo propertyInfo)
|
private IHSEditor getShellSelect(final String action, final PropertyInfo propertyInfo)
|
||||||
{
|
{
|
||||||
final String[] items = new String[] { "/bin/false", "/bin/bash", "/bin/csh", "/bin/dash", "/bin/ksh", "/bin/tcsh", "/bin/zsh", "/usr/bin/passwd", "/usr/bin/scponly" };
|
final String[] items = new String[] { "/bin/false", "/bin/bash", "/bin/csh", "/bin/dash", "/usr/bin/tcsh", "/usr/bin/zsh", "/usr/bin/passwd" };
|
||||||
final HSSelect field = new HSSelect(i18n, propertyInfo, 7, Arrays.asList(items));
|
final HSSelect field = new HSSelect(i18n, propertyInfo, 7, Arrays.asList(items));
|
||||||
field.setWidth("100%");
|
field.setWidth("100%");
|
||||||
field.setEnabled(isWriteAble(propertyInfo, action));
|
field.setEnabled(isWriteAble(propertyInfo, action));
|
||||||
|
@ -49,7 +49,7 @@ domainoption.letsencrypt=Let's Encrypt-Zertifikat
|
|||||||
domainoption.autoconfig=E-Mail Auto-Konfiguration
|
domainoption.autoconfig=E-Mail Auto-Konfiguration
|
||||||
domainoption.dkim=Domain Key - DKIM
|
domainoption.dkim=Domain Key - DKIM
|
||||||
domainoption.cgi=CGI-Funktion aktiv
|
domainoption.cgi=CGI-Funktion aktiv
|
||||||
domainoption.fastcgi=FastCGI-Funltion aktiv
|
domainoption.fastcgi=FastCGI-Funktion aktiv
|
||||||
domainoption.passenger=Passenger-Modul aktiv
|
domainoption.passenger=Passenger-Modul aktiv
|
||||||
domainoption.passengerfriendlyerrorpages=Passenger Debug-Modus aktiv
|
domainoption.passengerfriendlyerrorpages=Passenger Debug-Modus aktiv
|
||||||
mysqluser.name=MySQL-Benutzer
|
mysqluser.name=MySQL-Benutzer
|
||||||
|
@ -44,6 +44,10 @@ domainoption.backupmxforexternalmx=backupmxforexternalmx
|
|||||||
domainoption.letsencrypt=letsencrypt
|
domainoption.letsencrypt=letsencrypt
|
||||||
domainoption.autoconfig=email autoconfig and autodiscover
|
domainoption.autoconfig=email autoconfig and autodiscover
|
||||||
domainoption.dkim=domain key - dkim
|
domainoption.dkim=domain key - dkim
|
||||||
|
domainoption.cgi=enable CGI
|
||||||
|
domainoption.fastcgi=enable FastCGI
|
||||||
|
domainoption.passenger=enable passenger module
|
||||||
|
domainoption.passengerfriendlyerrorpages=enable passenger error page
|
||||||
mysqluser.name=Nombre de usuario MySql
|
mysqluser.name=Nombre de usuario MySql
|
||||||
mysqluser.instance=Instancia de MySql
|
mysqluser.instance=Instancia de MySql
|
||||||
mysqluser.pac=Paquete de usuario MySql
|
mysqluser.pac=Paquete de usuario MySql
|
||||||
|
Loading…
Reference in New Issue
Block a user