Quantcast
Channel: SmartClient Forums
Viewing all articles
Browse latest Browse all 4756

Log out automatically when session expires

$
0
0
I use smartGWT v4.1-p_2014-09-07/PowerEdition firefox 34.0.5

In my entrypoint class on onModuleLoad() i perform a fetch to the loginDatasource to see if the user is logged in.

if this is the case, i render the mainLayout layout and if not, i pop up a new LoginWindow with a simple login form.

When the user wants to logout i destroy the mainLayout & call the onModuleLoad function.

i would like to detect if there is a session timeout in order to perform a system logout automatically. The RPCManager.setLoginRequiredCallback, that i have placed in onModuleLoad is not detected.
How can i achieve that?

Thank you very much for your help!

----------- My onModuleLoad function--------
Code:

    public void onModuleLoad() {

        KeyIdentifier debugKey = new KeyIdentifier();
        debugKey.setCtrlKey(true);
        debugKey.setKeyName("D");

        Page.registerKey(debugKey, new KeyCallback() {
            public void execute(String keyName) {
                SC.showConsole();
            }
        });

        RPCManager.setLoginRequiredMarker("<SCRIPT>//'\\\"]]>>isc_loginRequired");
        RPCManager.setLoginRequiredCallback(new LoginRequiredCallback() {
            @Override
            public void loginRequired(int transactionNum, RPCRequest rpcRequest, RPCResponse rpcResponse) {
                SC.say("--session expired--");
            }
        });

        UBICroppermainLayout.setBackgroundImage("UBICropperHeaderLogoTransparent.png");
        UBICroppermainLayout.draw();
        DSRequest dsRequestProperties = new DSRequest();
        dsRequestProperties.setOperationId("isloggedin");
        loginDataSource.fetchData(null, new DSCallback() {

            @Override
            public void execute(DSResponse dsResponse, Object data, DSRequest dsRequest) {

                String iduser = dsResponse.getAttribute("iduser");

                if (!dsResponse.getAttribute("isloggedin").equalsIgnoreCase("true")) {
                    loginWindow = new LoginWindow();
                } else {
                    UBICroppermainLayout.setBackgroundImage("");
                    renderMainLayout(dsResponse.getAttribute("roles"), dsResponse.getAttribute("idprovincia"), dsResponse.getAttribute("username"), iduser);
                }
            }
        }, dsRequestProperties);

    } //onModuleLoad


Viewing all articles
Browse latest Browse all 4756

Trending Articles