HSAdmin Backend Domains, E-Mail, Datenbanken
Peter Hormanns
2012-10-31 3a8c86b3c88853c7397b348acfaf5c36afe3c882
label run-as selector
configure tabsheet to selected role
4 files modified
52 ■■■■■ changed files
hsarweb/src/de/hsadmin/web/AbstractModule.java 2 ●●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/MainApplication.java 48 ●●●●● patch | view | raw | blame | history
hsarweb/src/texts/main.properties 1 ●●●● patch | view | raw | blame | history
hsarweb/src/texts/main_de.properties 1 ●●●● patch | view | raw | blame | history
hsarweb/src/de/hsadmin/web/AbstractModule.java
@@ -12,6 +12,7 @@
import com.vaadin.ui.Component;
import com.vaadin.ui.Form;
import com.vaadin.ui.HorizontalLayout;
import com.vaadin.ui.Label;
import com.vaadin.ui.Select;
import com.vaadin.ui.VerticalLayout;
import com.vaadin.ui.Window;
@@ -150,6 +151,7 @@
                application.setRunAs(property.getValue().toString());
            }
        });
        toolbar.addComponent(new Label(application.getLocaleConfig().getText("runAs")));
        toolbar.addComponent(selRunAs);
    }
hsarweb/src/de/hsadmin/web/MainApplication.java
@@ -46,9 +46,10 @@
    private Remote remote;
    private Map<String, Module> modules;
    private Locale requestLocale;
    private String role = "NONE";
    private String loginUserRole = "NONE";
    private String runAs = null;
    private TabSheet tabSheet;
    private Window mainWindow;
    @Override
@@ -59,21 +60,43 @@
        }
        localeConfig = new LocaleConfig(locale, "main");
        remote = new Remote(this);
        loginUserRole = readUserRole();
        mainWindow = new Window(localeConfig.getText("applicationtitle"));
        Module firstModule = initTabSheet();
        setMainWindow(mainWindow);
        setErrorHandler(new Terminal.ErrorListener() {
            private static final long serialVersionUID = 1L;
            @Override
            public void terminalError(Terminal.ErrorEvent event) {
                event.getThrowable().printStackTrace();
            }
        });
        try {
            firstModule.reload();
        } catch (HsarwebException e) {
            showSystemException(e);
        }
    }
    private String readUserRole() {
        try {
            Object rolesArrayObj = remote.callSearch("role", null);
            if (rolesArrayObj != null && rolesArrayObj instanceof Object[]) {
                Object[] rolesArray = (Object[]) rolesArrayObj;
                if (rolesArray.length > 0 && rolesArray[0] instanceof Map<?, ?>) {
                    role = (String) ((Map<?, ?>) rolesArray[0]).get("role");
                    return (String) ((Map<?, ?>) rolesArray[0]).get("role");
                }
            }
        } catch (HsarwebException e) {
            showSystemException(e);
        }
        Window mainWindow = new Window(localeConfig.getText("applicationtitle"));
        return "NONE";
    }
    private Module initTabSheet() {
        tabSheet = new TabSheet();
        tabSheet.setSizeFull();
        String modulesParamString = localeConfig.getText("modules." + role);
        String modulesParamString = localeConfig.getText("modules." + readUserRole());
        modules = new HashMap<String, Module>();
        Module firstModule = null;
        for (String className : modulesParamString.split(",")) {
@@ -93,23 +116,11 @@
        }
        tabSheet.addListener(this);
        mainWindow.setContent(tabSheet);
        setMainWindow(mainWindow);
        setErrorHandler(new Terminal.ErrorListener() {
            private static final long serialVersionUID = 1L;
            @Override
            public void terminalError(Terminal.ErrorEvent event) {
                event.getThrowable().printStackTrace();
            }
        });
        try {
            firstModule.reload();
        } catch (HsarwebException e) {
            showSystemException(e);
        }
        return firstModule;
    }
    
    public String getLoginUserRole() {
        return role;
        return loginUserRole;
    }
    public String getProxyTicket() {
@@ -201,6 +212,7 @@
    public void setRunAs(String runAs) {
        this.runAs = runAs;
        initTabSheet();
        Component selectedTab = tabSheet.getSelectedTab();
        Tab tab = tabSheet.getTab(selectedTab);
        Module module = modules.get(tab.getCaption());
hsarweb/src/texts/main.properties
@@ -5,6 +5,7 @@
save=save
abort=abort
new=new
runas=run as
modules.NONE=de.hsadmin.web.HomeModule
modules.USER=de.hsadmin.web.HomeModule
modules.DOM_ADMIN=de.hsadmin.web.DomainReadonlyModule,de.hsadmin.web.EMailAddressModule,de.hsadmin.web.HomeModule
hsarweb/src/texts/main_de.properties
@@ -5,3 +5,4 @@
save=speichern
abort=abbrechen
new=Eintrag anlegen
runas=als Benutzer