Search in sources :

Example 1 with ADLoginResponse

use of pl.x3E.adInterface.ADLoginResponse in project adempiere by adempiere.

the class ADServiceImpl method login.

public ADLoginResponseDocument login(ADLoginRequestDocument req) throws XFireFault {
    authenticate(webServiceName, "login");
    // TODO: Implement security layer
    log.log(Level.SEVERE, "Warning: Security layer not implemented yet - opening web service " + webServiceName + " implies a security risk for server");
    ADLoginResponseDocument res = ADLoginResponseDocument.Factory.newInstance();
    ADLoginResponse lr = res.addNewADLoginResponse();
    ADLoginRequest r = req.getADLoginRequest();
    if (// initial phase - return possible translations
    r.getStage() == 0) {
        LookupValues langs = lr.addNewLangs();
        for (int i = 0; i < Language.getLanguageCount(); i++) {
            Language language = Language.getLanguage(i);
            LookupValue lv = langs.addNewLv();
            lv.setKey(language.getAD_Language());
            lv.setVal(language.getName());
        }
    } else if (// Verify user and pass
    r.getStage() == 1) {
        KeyNamePair[] roles = null;
        KeyNamePair[] clients = null;
        KeyNamePair[] orgs = null;
        KeyNamePair[] warehouses = null;
        Login login = new Login(m_cs.getM_ctx());
        roles = login.getRoles(r.getUser(), r.getPass());
        if (roles == null) {
            lr.setStatus(-1);
            return res;
        } else {
            if (r.getRoleID() == -1 && roles != null && roles.length > 0)
                r.setRoleID(Integer.parseInt(roles[0].getID()));
            if (r.getRoleID() > -1)
                clients = login.getClients(new KeyNamePair(r.getRoleID(), ""));
            if (r.getClientID() == -1 && clients != null && clients.length > 0)
                r.setClientID(Integer.parseInt(clients[0].getID()));
            if (r.getClientID() > -1)
                orgs = login.getOrgs(new KeyNamePair(r.getClientID(), ""));
            if (r.getOrgID() == -1 && orgs != null && orgs.length > 0)
                r.setOrgID(Integer.parseInt(orgs[0].getID()));
            if (r.getOrgID() > -1)
                warehouses = login.getWarehouses(new KeyNamePair(r.getOrgID(), ""));
            ADLookup.fillLookupValues(lr.addNewRoles(), roles);
            ADLookup.fillLookupValues(lr.addNewClients(), clients);
            ADLookup.fillLookupValues(lr.addNewOrgs(), orgs);
            ADLookup.fillLookupValues(lr.addNewWarehouses(), warehouses);
        }
    } else if (// Verify user and pass
    r.getStage() == 2) {
        Login login = new Login(m_cs.getM_ctx());
        KeyNamePair[] roles = login.getRoles(r.getUser(), r.getPass());
        if (roles != null) {
            KeyNamePair org = new KeyNamePair(r.getRoleID(), Integer.toString(r.getRoleID()));
            String error = login.validateLogin(org);
            if (error != null && error.length() > 0) {
                lr.setStatus(-1);
                return res;
            }
            int AD_User_ID = Env.getAD_User_ID(m_cs.getM_ctx());
            if (!m_cs.login(AD_User_ID, r.getRoleID(), r.getClientID(), r.getOrgID(), r.getWarehouseID(), r.getLang())) {
                lr.setStatus(-1);
                return res;
            }
        } else {
            lr.setStatus(-1);
            return res;
        }
    }
    return res;
}
Also used : ADLoginRequest(pl.x3E.adInterface.ADLoginRequest) ADLoginResponseDocument(pl.x3E.adInterface.ADLoginResponseDocument) Language(org.compiere.util.Language) LookupValues(pl.x3E.adInterface.LookupValues) Login(org.compiere.util.Login) KeyNamePair(org.compiere.util.KeyNamePair) ADLoginResponse(pl.x3E.adInterface.ADLoginResponse) LookupValue(pl.x3E.adInterface.LookupValue)

Aggregations

KeyNamePair (org.compiere.util.KeyNamePair)1 Language (org.compiere.util.Language)1 Login (org.compiere.util.Login)1 ADLoginRequest (pl.x3E.adInterface.ADLoginRequest)1 ADLoginResponse (pl.x3E.adInterface.ADLoginResponse)1 ADLoginResponseDocument (pl.x3E.adInterface.ADLoginResponseDocument)1 LookupValue (pl.x3E.adInterface.LookupValue)1 LookupValues (pl.x3E.adInterface.LookupValues)1