LayoutBean.java

package sk.iway.iwcm.admin.layout;

import java.util.List;

import com.fasterxml.jackson.core.JsonProcessingException;
import lombok.Getter;
import lombok.Setter;
import sk.iway.iwcm.Constants;
import sk.iway.iwcm.Identity;
import sk.iway.iwcm.InitServlet;
import sk.iway.iwcm.JsonTools;
import sk.iway.iwcm.doc.DocDB;
import sk.iway.iwcm.system.datatable.DataTableColumnsFactory;
import sk.iway.iwcm.system.stripes.CSRF;

/**
 * LayoutBean - drzi atributy pre model
 */
@Getter
@Setter
public class LayoutBean {

    private Identity user;
    private HeaderBean header;
    //brand: cms, net, lms
    private String brand;
    //plna verzia WebJETu: Web JET admin verzia 8.7.979 18.03.2020 13:06:59 Enterprise
    private String version;
    private List<MenuBean> menu;
    private String lng;
    private String lngWebjet;
    private String csrfToken;
    private String nopermsCss;
    private String nopermsJavascript;
    //datum poslednej zmeny properties suborov pre efektivnejsie (ne)volanie REST sluzby pre ich aktualizaciu na FE
    private long propertiesLastModified;

    public String getConstant(String name)
    {
        return Constants.getString(name);
    }

    public String getConstant(String name, String defaultValue)
    {
        return Constants.getString(name, defaultValue);
    }

    public int getConstantInt(String name)
    {
        return Constants.getInt(name);
    }

    public int getConstantInt(String name, int defaultValue)
    {
        return Constants.getInt(name, defaultValue);
    }

    public boolean getConstantBoolean(String name)
    {
        return Constants.getBoolean(name);
    }

    public String getDataTableColumns(String className) throws JsonProcessingException {
        String json = new DataTableColumnsFactory(className).getColumnsJson();
        return json;
    }

    public String getDataTableTabs(String className) throws JsonProcessingException {
        String json = new DataTableColumnsFactory(className).getTabsJson();
        return json;
    }

    public String getUserDto() throws JsonProcessingException {
        return JsonTools.objectToJSON(new UserDto(getUser()));
    }

    /**
     * Overi prava pouzivatela na zadanu polozku
     * @param permission - kod prava (napr. cmp_crypto)
     * @return
     */
    public boolean hasPermission(String permission) {
        return user.isEnabledItem(permission);
    }

    /**
     * Vrati true, ak existuje viac ako 30 perex skupin pre ich zobrazenie ako multiselect
     * @return
     */
    public static boolean isPerexGroupsRenderAsSelect() {
        //ak existuje viac ako 30 perex skupin renderuj to ako multiselect
        int count = DocDB.getInstance().getPerexGroups().size();
        if (count > Constants.getInt("perexGroupsRenderAsSelect")) return true;
        return false;
    }

    /**
     * Returns CSRF token parameter name
     * @return
     */
    public String getCsrfParameterName() {
        return CSRF.getParameterName();
    }

    /**
     * Return true for cloud/multiweb/multitenant instalation
     * @return
     */
    public boolean isTypeCloud() {
        return InitServlet.isTypeCloud();
    }
}