Skip to content
CredentialsBean.java 2.11 KiB
Newer Older
package it.inaf.oats.ia2.tapschemamanager.webapp;

import it.inaf.oats.ia2.tapschemamanager.datalayer.Credentials;
import java.io.Serializable;
import java.sql.Connection;
import java.sql.SQLException;
import javax.annotation.PostConstruct;
import javax.enterprise.context.Conversation;
import javax.enterprise.context.RequestScoped;
import javax.inject.Inject;
import javax.inject.Named;

/**
 *
 * @author Sonia Zorba <zorba at oats.inaf.it>
 */
@Named("credentialsInsertion")
@RequestScoped
public class CredentialsBean implements Serializable {

    @Inject
    Conversation conversation;

    @Inject
    SchemaSelectionBean schemaSelectionBean;

    private String loginError;

    private Credentials credentials;

    @PostConstruct
    public void init() {
        if (!conversation.isTransient()) {
            conversation.end();
        }

        credentials = new Credentials();
    }

    public String getHostname() {
        return credentials.getHostname();
    }

    public void setHostname(String hostname) {
        credentials.setHostname(hostname);
    }

    public int getPort() {
        return credentials.getPort();
    }

    public void setPort(int port) {
        credentials.setPort(port);
    }

    public String getUsername() {
        return credentials.getUsername();
    }

    public void setUsername(String username) {
        credentials.setUsername(username);
    }

    public String getPassword() {
        return credentials.getPassword();
    }

    public void setPassword(String password) {
        credentials.setPassword(password);
    }

    public String getLoginError() {
        return loginError;
    }

    public String login() {
        loginError = null;
        try {
            Connection connection = credentials.getConnection();
            connection.close();
            conversation.begin();
            schemaSelectionBean.setCredentials(credentials);
            return "schemaSelection.xhtml?faces-redirect=true";
        } catch (SQLException e) {
            loginError = "Connection error: " + e.getMessage();
            return "index.xhtml?faces-redirect=true";
        }
    }
}