securitysettings/cpeapuiplugins/cpeaptlsmethodsui/src/cpeaptlsmethodsui.cpp
author hgs
Thu, 24 Jun 2010 11:23:08 +0300
changeset 34 ad1f037f1ac2
child 49 43351a4f2da3
permissions -rw-r--r--
201025
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
34
hgs
parents:
diff changeset
     1
/*
hgs
parents:
diff changeset
     2
 * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
hgs
parents:
diff changeset
     3
 * All rights reserved.
hgs
parents:
diff changeset
     4
 * This component and the accompanying materials are made available
hgs
parents:
diff changeset
     5
 * under the terms of "Eclipse Public License v1.0"
hgs
parents:
diff changeset
     6
 * which accompanies this distribution, and is available
hgs
parents:
diff changeset
     7
 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
hgs
parents:
diff changeset
     8
 *
hgs
parents:
diff changeset
     9
 * Initial Contributors:
hgs
parents:
diff changeset
    10
 * Nokia Corporation - initial contribution.
hgs
parents:
diff changeset
    11
 *
hgs
parents:
diff changeset
    12
 * Contributors:
hgs
parents:
diff changeset
    13
 *
hgs
parents:
diff changeset
    14
 * Description:
hgs
parents:
diff changeset
    15
 *   Control Panel QT UI for TLS-based EAP methods configuration
hgs
parents:
diff changeset
    16
 *
hgs
parents:
diff changeset
    17
 */
hgs
parents:
diff changeset
    18
hgs
parents:
diff changeset
    19
/*
hgs
parents:
diff changeset
    20
 * %version: 24 %
hgs
parents:
diff changeset
    21
 */
hgs
parents:
diff changeset
    22
hgs
parents:
diff changeset
    23
// System includes
hgs
parents:
diff changeset
    24
#include <HbDataForm>
hgs
parents:
diff changeset
    25
#include <HbDataFormModel>
hgs
parents:
diff changeset
    26
#include <HbDataFormViewItem>
hgs
parents:
diff changeset
    27
#include <HbParameterLengthLimiter>
hgs
parents:
diff changeset
    28
#include <HbMessageBox> 
hgs
parents:
diff changeset
    29
#include <HbAction>
hgs
parents:
diff changeset
    30
#include <HbLineEdit>
hgs
parents:
diff changeset
    31
#include <cpsettingformitemdata.h>
hgs
parents:
diff changeset
    32
#include <cpitemdatahelper.h>
hgs
parents:
diff changeset
    33
#include <eapqtvalidator.h>
hgs
parents:
diff changeset
    34
#include <eapqtexpandedeaptype.h>
hgs
parents:
diff changeset
    35
#include <eapqtcertificateinfo.h>
hgs
parents:
diff changeset
    36
#include <cppluginutility.h>
hgs
parents:
diff changeset
    37
hgs
parents:
diff changeset
    38
// User includes
hgs
parents:
diff changeset
    39
#include "cpeapciphersuiteui.h"
hgs
parents:
diff changeset
    40
#include "cpeaptlsmethodsui.h"
hgs
parents:
diff changeset
    41
#include "cpeaptlsmethodsinnereapui.h"
hgs
parents:
diff changeset
    42
hgs
parents:
diff changeset
    43
/*!
hgs
parents:
diff changeset
    44
 * \class CpEapTlsMethodsUi
hgs
parents:
diff changeset
    45
 * \brief Implementes TLS based methods configuration ui. 
hgs
parents:
diff changeset
    46
 */
hgs
parents:
diff changeset
    47
hgs
parents:
diff changeset
    48
// External function prototypes
hgs
parents:
diff changeset
    49
hgs
parents:
diff changeset
    50
// Local constants
hgs
parents:
diff changeset
    51
hgs
parents:
diff changeset
    52
/*!
hgs
parents:
diff changeset
    53
 * ComboBox index is unkown
hgs
parents:
diff changeset
    54
 */
hgs
parents:
diff changeset
    55
static const int UnknownIndex = -1;
hgs
parents:
diff changeset
    56
/*!
hgs
parents:
diff changeset
    57
 * Default index for ComboBox, used if no value has been stored
hgs
parents:
diff changeset
    58
 */
hgs
parents:
diff changeset
    59
static const int DefaultIndex = 0;
hgs
parents:
diff changeset
    60
/*!
hgs
parents:
diff changeset
    61
 * Index of 'Not in use'in certificate selection lists.
hgs
parents:
diff changeset
    62
 */
hgs
parents:
diff changeset
    63
static const int NotInUseIndex = 0;
hgs
parents:
diff changeset
    64
hgs
parents:
diff changeset
    65
// ======== LOCAL FUNCTIONS ========
hgs
parents:
diff changeset
    66
hgs
parents:
diff changeset
    67
// ======== MEMBER FUNCTIONS ========
hgs
parents:
diff changeset
    68
hgs
parents:
diff changeset
    69
/*!
hgs
parents:
diff changeset
    70
 * Constructor.
hgs
parents:
diff changeset
    71
 * 
hgs
parents:
diff changeset
    72
 * @param bearer        Bearer type of the accessed configuration.
hgs
parents:
diff changeset
    73
 * @param iapId         IAP ID of the accessed configuration.
hgs
parents:
diff changeset
    74
 * @param plugin        Plugin.
hgs
parents:
diff changeset
    75
 * @param outerHandle   Outer handle.
hgs
parents:
diff changeset
    76
 */
hgs
parents:
diff changeset
    77
hgs
parents:
diff changeset
    78
CpEapTlsMethodsUi::CpEapTlsMethodsUi(
hgs
parents:
diff changeset
    79
    const EapQtConfigInterface::EapBearerType bearer,
hgs
parents:
diff changeset
    80
    const int iapId,
hgs
parents:
diff changeset
    81
    const EapQtPluginInfo &plugin,
hgs
parents:
diff changeset
    82
    const EapQtPluginHandle& outerHandle) :
hgs
parents:
diff changeset
    83
        mConfigIf(NULL),
hgs
parents:
diff changeset
    84
        mPluginInfo(plugin),
hgs
parents:
diff changeset
    85
        mOuterHandle(outerHandle),
hgs
parents:
diff changeset
    86
        mForm(NULL),
hgs
parents:
diff changeset
    87
        mModel(NULL),
hgs
parents:
diff changeset
    88
        mItemDataHelper(NULL),
hgs
parents:
diff changeset
    89
        mGroupItem(NULL),
hgs
parents:
diff changeset
    90
        mUsernameAutomatic(NULL),
hgs
parents:
diff changeset
    91
        mUsername(NULL),
hgs
parents:
diff changeset
    92
        mRealmAutomatic(NULL),
hgs
parents:
diff changeset
    93
        mRealm(NULL),
hgs
parents:
diff changeset
    94
        mCaCertAutomatic(NULL),
hgs
parents:
diff changeset
    95
        mCaCert(NULL),
hgs
parents:
diff changeset
    96
        mPeapVersion(NULL),
hgs
parents:
diff changeset
    97
        mInnerEapType(NULL),
hgs
parents:
diff changeset
    98
        mGroupItemCs(NULL),
hgs
parents:
diff changeset
    99
        mCurrentUserCert(0),
hgs
parents:
diff changeset
   100
        mCurrentAuthorityCert(0),
hgs
parents:
diff changeset
   101
        mCurrentPeapVersion(0),
hgs
parents:
diff changeset
   102
        mCurrentInnerPlugin(0),
hgs
parents:
diff changeset
   103
        mInnerEapMschapv2(0),
hgs
parents:
diff changeset
   104
        mInnerEapGtc(0),
hgs
parents:
diff changeset
   105
        mDefaultPluginInUse(false)
hgs
parents:
diff changeset
   106
{
hgs
parents:
diff changeset
   107
    qDebug("CpEapTlsMethodsUi::CpEapTlsMethodsUi()");
hgs
parents:
diff changeset
   108
hgs
parents:
diff changeset
   109
    // IAP must be valid in construction (check includes
hgs
parents:
diff changeset
   110
    // EapQtConfigInterface::IapIdUndefined)
hgs
parents:
diff changeset
   111
    if (iapId < 0) {
hgs
parents:
diff changeset
   112
        QT_THROW(std::bad_alloc());
hgs
parents:
diff changeset
   113
        // scoped pointer gets deleted automaticaly on exception
hgs
parents:
diff changeset
   114
    }
hgs
parents:
diff changeset
   115
hgs
parents:
diff changeset
   116
    // Get EAP config interface
hgs
parents:
diff changeset
   117
    mConfigIf.reset(new EapQtConfigInterface(bearer, iapId));
hgs
parents:
diff changeset
   118
    
hgs
parents:
diff changeset
   119
    // Request supported inner EAP types
hgs
parents:
diff changeset
   120
    mPlugins.append(mConfigIf->supportedInnerTypes(mPluginInfo.pluginHandle()));
hgs
parents:
diff changeset
   121
hgs
parents:
diff changeset
   122
    // Create UI
hgs
parents:
diff changeset
   123
    createUi();
hgs
parents:
diff changeset
   124
}
hgs
parents:
diff changeset
   125
hgs
parents:
diff changeset
   126
/*!
hgs
parents:
diff changeset
   127
 * Destructor.
hgs
parents:
diff changeset
   128
 */
hgs
parents:
diff changeset
   129
CpEapTlsMethodsUi::~CpEapTlsMethodsUi()
hgs
parents:
diff changeset
   130
{
hgs
parents:
diff changeset
   131
    qDebug("CpEapTlsMethodsUi::~CpEapTlsMethodsUi()");
hgs
parents:
diff changeset
   132
    
hgs
parents:
diff changeset
   133
    // mEapQtConfigInterface: scoped pointer deleted automatically
hgs
parents:
diff changeset
   134
    // mValidatorRealm: scoped pointer deleted automatically
hgs
parents:
diff changeset
   135
    // mValidatorUsername: scoped pointer deleted automatically
hgs
parents:
diff changeset
   136
}
hgs
parents:
diff changeset
   137
hgs
parents:
diff changeset
   138
/*!
hgs
parents:
diff changeset
   139
 * Calls inner UI instance
hgs
parents:
diff changeset
   140
 * 
hgs
parents:
diff changeset
   141
 * @return pointer to inner UI instance
hgs
parents:
diff changeset
   142
 */
hgs
parents:
diff changeset
   143
CpBaseSettingView *CpEapTlsMethodsUi::innerUiInstance()
hgs
parents:
diff changeset
   144
{
hgs
parents:
diff changeset
   145
    return mConfigIf->uiInstance(mPluginInfo.pluginHandle(),
hgs
parents:
diff changeset
   146
        mPlugins.at(mCurrentInnerPlugin).pluginHandle());
hgs
parents:
diff changeset
   147
}
hgs
parents:
diff changeset
   148
hgs
parents:
diff changeset
   149
/*!
hgs
parents:
diff changeset
   150
 * Creates TLS based methods UI and initilizes settings read via
hgs
parents:
diff changeset
   151
 * EapQtConfigInterface
hgs
parents:
diff changeset
   152
 */
hgs
parents:
diff changeset
   153
void CpEapTlsMethodsUi::createUi()
hgs
parents:
diff changeset
   154
{
hgs
parents:
diff changeset
   155
    qDebug("CpEapTlsMethodsUi::createUi()");
hgs
parents:
diff changeset
   156
hgs
parents:
diff changeset
   157
    // Read EAP Configurations
hgs
parents:
diff changeset
   158
    bool configurationRead = mConfigIf->readConfiguration(mOuterHandle, mPluginInfo.pluginHandle(),
hgs
parents:
diff changeset
   159
        mEapConfig);
hgs
parents:
diff changeset
   160
    if (!configurationRead) {
hgs
parents:
diff changeset
   161
        qDebug("CpEapTlsMethodsUi::createUi - read configuration failed.");
hgs
parents:
diff changeset
   162
    }
hgs
parents:
diff changeset
   163
    
hgs
parents:
diff changeset
   164
    // Construct TLS based methods settings UI
hgs
parents:
diff changeset
   165
    mForm = new HbDataForm();
hgs
parents:
diff changeset
   166
    this->setWidget(mForm);
hgs
parents:
diff changeset
   167
    CpPluginUtility::addCpItemPrototype(mForm);
hgs
parents:
diff changeset
   168
    mModel = new HbDataFormModel(mForm);
hgs
parents:
diff changeset
   169
    
hgs
parents:
diff changeset
   170
    // Create settings group
hgs
parents:
diff changeset
   171
    mGroupItem = new HbDataFormModelItem(HbDataFormModelItem::GroupItem,
hgs
parents:
diff changeset
   172
        HbParameterLengthLimiter(
hgs
parents:
diff changeset
   173
            hbTrId("txt_occ_subhead_eap_module_settings")).arg(
hgs
parents:
diff changeset
   174
            mPluginInfo.localizationId()));
hgs
parents:
diff changeset
   175
    mModel->appendDataFormItem(mGroupItem);
hgs
parents:
diff changeset
   176
hgs
parents:
diff changeset
   177
    // The parameter given as 0 is a HbDataForm pointer, not parent
hgs
parents:
diff changeset
   178
    mItemDataHelper = new CpItemDataHelper(0);
hgs
parents:
diff changeset
   179
    mItemDataHelper->setParent(this);
hgs
parents:
diff changeset
   180
hgs
parents:
diff changeset
   181
    // Create method specific UI
hgs
parents:
diff changeset
   182
    if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTls) {
hgs
parents:
diff changeset
   183
        createTlsUi();
hgs
parents:
diff changeset
   184
    }
hgs
parents:
diff changeset
   185
    else if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTtls) {
hgs
parents:
diff changeset
   186
        createTtlsUi();
hgs
parents:
diff changeset
   187
    }
hgs
parents:
diff changeset
   188
    else if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginPeap) {
hgs
parents:
diff changeset
   189
        createPeapUi();
hgs
parents:
diff changeset
   190
    }
hgs
parents:
diff changeset
   191
    else {
hgs
parents:
diff changeset
   192
        qDebug("CpEapTlsMethodsUi::createUi() - unknown EAP method");
hgs
parents:
diff changeset
   193
    }
hgs
parents:
diff changeset
   194
    
hgs
parents:
diff changeset
   195
    // Load cipher suites view
hgs
parents:
diff changeset
   196
    QVariant variant;
hgs
parents:
diff changeset
   197
    variant = mEapConfig.value(EapQtConfig::CipherSuites);
hgs
parents:
diff changeset
   198
    mGroupItemCs = new CpEapCiphersuiteUi(variant);
hgs
parents:
diff changeset
   199
    mModel->appendDataFormItem(mGroupItemCs);
hgs
parents:
diff changeset
   200
hgs
parents:
diff changeset
   201
    mItemDataHelper->bindToForm(mForm);
hgs
parents:
diff changeset
   202
    mForm->setModel(mModel);
hgs
parents:
diff changeset
   203
hgs
parents:
diff changeset
   204
    // Connect signal to add validators
hgs
parents:
diff changeset
   205
    bool connected = connect(mForm, SIGNAL( itemShown(const QModelIndex&) ), this,
hgs
parents:
diff changeset
   206
        SLOT( setValidator(const QModelIndex) ));
hgs
parents:
diff changeset
   207
    Q_ASSERT(connected); 
hgs
parents:
diff changeset
   208
    
hgs
parents:
diff changeset
   209
    // Expand TLS based method settings group
hgs
parents:
diff changeset
   210
    mForm->setExpanded(mModel->indexFromItem(mGroupItem), true);
hgs
parents:
diff changeset
   211
}
hgs
parents:
diff changeset
   212
hgs
parents:
diff changeset
   213
/*!
hgs
parents:
diff changeset
   214
 * Creates EAP-TLS settings UI
hgs
parents:
diff changeset
   215
 */
hgs
parents:
diff changeset
   216
void CpEapTlsMethodsUi::createTlsUi()
hgs
parents:
diff changeset
   217
{
hgs
parents:
diff changeset
   218
    qDebug("CpEapTlsMethodsUi::createTlsUi()");
hgs
parents:
diff changeset
   219
    // Create common TLS settings componenets
hgs
parents:
diff changeset
   220
    createAuthorityCerts();
hgs
parents:
diff changeset
   221
    createUserCerts();
hgs
parents:
diff changeset
   222
    createUsername();
hgs
parents:
diff changeset
   223
    createRealm();
hgs
parents:
diff changeset
   224
}
hgs
parents:
diff changeset
   225
hgs
parents:
diff changeset
   226
/*!
hgs
parents:
diff changeset
   227
 * Creates EAP-TTLS settings UI
hgs
parents:
diff changeset
   228
 */
hgs
parents:
diff changeset
   229
void CpEapTlsMethodsUi::createTtlsUi()
hgs
parents:
diff changeset
   230
{
hgs
parents:
diff changeset
   231
    qDebug("CpEapTlsMethodsUi::createTtlsUi()");
hgs
parents:
diff changeset
   232
    // Create common TLS settings componenets
hgs
parents:
diff changeset
   233
    createAuthorityCerts();
hgs
parents:
diff changeset
   234
    createUserCerts();
hgs
parents:
diff changeset
   235
    createUsername();
hgs
parents:
diff changeset
   236
    createRealm();
hgs
parents:
diff changeset
   237
    
hgs
parents:
diff changeset
   238
    // Create Inner Eap type selection comboBox and configuration button
hgs
parents:
diff changeset
   239
    createInnerMethod();
hgs
parents:
diff changeset
   240
}
hgs
parents:
diff changeset
   241
hgs
parents:
diff changeset
   242
/*!
hgs
parents:
diff changeset
   243
 * Creates PEAP settings UI
hgs
parents:
diff changeset
   244
 */
hgs
parents:
diff changeset
   245
void CpEapTlsMethodsUi::createPeapUi()
hgs
parents:
diff changeset
   246
{
hgs
parents:
diff changeset
   247
    qDebug("CpEapTlsMethodsUi::createPeapUi()");
hgs
parents:
diff changeset
   248
    // Create common TLS settings componenets
hgs
parents:
diff changeset
   249
    createAuthorityCerts();
hgs
parents:
diff changeset
   250
    createUserCerts();
hgs
parents:
diff changeset
   251
    createUsername();
hgs
parents:
diff changeset
   252
    createRealm();
hgs
parents:
diff changeset
   253
 
hgs
parents:
diff changeset
   254
    // Create PEAP version selection comboBox
hgs
parents:
diff changeset
   255
    createPeapVersion();
hgs
parents:
diff changeset
   256
    
hgs
parents:
diff changeset
   257
    // Create Inner Eap type selection comboBox and configuration button    
hgs
parents:
diff changeset
   258
    createInnerMethod();
hgs
parents:
diff changeset
   259
    
hgs
parents:
diff changeset
   260
    // If not stored inner Eap type, set default inner EAP method
hgs
parents:
diff changeset
   261
    // according PEAP version
hgs
parents:
diff changeset
   262
    if (mDefaultPluginInUse) {
hgs
parents:
diff changeset
   263
        defaultInnerPlugin();
hgs
parents:
diff changeset
   264
    }
hgs
parents:
diff changeset
   265
}
hgs
parents:
diff changeset
   266
/*!
hgs
parents:
diff changeset
   267
 * Creates Username group:
hgs
parents:
diff changeset
   268
 * Generate automatically checkBox and username lineEdit
hgs
parents:
diff changeset
   269
 */
hgs
parents:
diff changeset
   270
void CpEapTlsMethodsUi::createUsername()
hgs
parents:
diff changeset
   271
{
hgs
parents:
diff changeset
   272
    qDebug("CpEapTlsMethodsUi::createUsername()");
hgs
parents:
diff changeset
   273
    // UsernameAutomatic
hgs
parents:
diff changeset
   274
    mUsernameAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
hgs
parents:
diff changeset
   275
        "txt_occ_setlabel_user_name"));
hgs
parents:
diff changeset
   276
    mUsernameAutomatic->setContentWidgetData("text", hbTrId(
hgs
parents:
diff changeset
   277
        "txt_occ_setlabel_user_name_val_generate_automatica"));
hgs
parents:
diff changeset
   278
    // Initialize the value from EapQtConfig
hgs
parents:
diff changeset
   279
    // Generate username automatically is selected by default
hgs
parents:
diff changeset
   280
    mUsernameAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
hgs
parents:
diff changeset
   281
        EapQtConfig::UsernameAutomatic).toBool()));
hgs
parents:
diff changeset
   282
    // Connect signal to disable/enable username when usernameAutomatic changed   
hgs
parents:
diff changeset
   283
    mForm->addConnection(mUsernameAutomatic, SIGNAL(stateChanged(int)), this,
hgs
parents:
diff changeset
   284
        SLOT(usernameAutomaticChanged(int)));
hgs
parents:
diff changeset
   285
    mGroupItem->appendChild(mUsernameAutomatic);
hgs
parents:
diff changeset
   286
hgs
parents:
diff changeset
   287
    //Username
hgs
parents:
diff changeset
   288
    mUsername = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId(
hgs
parents:
diff changeset
   289
        "txt_occ_setlabel_user_name"));
hgs
parents:
diff changeset
   290
    mUsername->setContentWidgetData("text", mEapConfig.value(EapQtConfig::Username));
hgs
parents:
diff changeset
   291
    // Dim username if usernameAutomatic selected
hgs
parents:
diff changeset
   292
    usernameAutomaticChanged(mUsernameAutomatic->contentWidgetData("checkState") == Qt::Checked);
hgs
parents:
diff changeset
   293
    mGroupItem->appendChild(mUsername);
hgs
parents:
diff changeset
   294
}
hgs
parents:
diff changeset
   295
hgs
parents:
diff changeset
   296
/*!
hgs
parents:
diff changeset
   297
 * Creates Realm group:
hgs
parents:
diff changeset
   298
 * Generate automatically checkBox and realm lineEdit
hgs
parents:
diff changeset
   299
 */
hgs
parents:
diff changeset
   300
void CpEapTlsMethodsUi::createRealm()
hgs
parents:
diff changeset
   301
{
hgs
parents:
diff changeset
   302
    qDebug("CpEapTlsMethodsUi::createRealm()");
hgs
parents:
diff changeset
   303
    // RealmAutomatic
hgs
parents:
diff changeset
   304
    mRealmAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
hgs
parents:
diff changeset
   305
        "txt_occ_setlabel_realm"));
hgs
parents:
diff changeset
   306
    mRealmAutomatic->setContentWidgetData("text", hbTrId(
hgs
parents:
diff changeset
   307
        "txt_occ_setlabel_realm_val_generate_automatically"));
hgs
parents:
diff changeset
   308
    // Initialize the value from EapQtConfig
hgs
parents:
diff changeset
   309
    // Generate realm automatically is selected by default
hgs
parents:
diff changeset
   310
    mRealmAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
hgs
parents:
diff changeset
   311
        EapQtConfig::RealmAutomatic).toBool()));
hgs
parents:
diff changeset
   312
    // connect signal to disable/enable realm when realmAutomatic changed 
hgs
parents:
diff changeset
   313
    mForm->addConnection(mRealmAutomatic, SIGNAL(stateChanged(int)), this,
hgs
parents:
diff changeset
   314
        SLOT(realmAutomaticChanged(int)));
hgs
parents:
diff changeset
   315
    mGroupItem->appendChild(mRealmAutomatic);
hgs
parents:
diff changeset
   316
hgs
parents:
diff changeset
   317
    //Realm
hgs
parents:
diff changeset
   318
    mRealm = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId(
hgs
parents:
diff changeset
   319
        "txt_occ_setlabel_realm"));
hgs
parents:
diff changeset
   320
    mRealm->setContentWidgetData("text", mEapConfig.value(EapQtConfig::Realm));
hgs
parents:
diff changeset
   321
    // Dim realm if realmAutomatic selected
hgs
parents:
diff changeset
   322
    realmAutomaticChanged(mRealmAutomatic->contentWidgetData("checkState") == Qt::Checked);
hgs
parents:
diff changeset
   323
    mGroupItem->appendChild(mRealm); 
hgs
parents:
diff changeset
   324
}
hgs
parents:
diff changeset
   325
hgs
parents:
diff changeset
   326
/*!
hgs
parents:
diff changeset
   327
 * Creates User certificate selection comboBox
hgs
parents:
diff changeset
   328
 */
hgs
parents:
diff changeset
   329
void CpEapTlsMethodsUi::createUserCerts()
hgs
parents:
diff changeset
   330
{
hgs
parents:
diff changeset
   331
    qDebug("CpEapTlsMethodsUi::createUserCerts()");
hgs
parents:
diff changeset
   332
    // Create User certificate comboBox
hgs
parents:
diff changeset
   333
    CpSettingFormItemData *userCertList = new CpSettingFormItemData(
hgs
parents:
diff changeset
   334
        HbDataFormModelItem::ComboBoxItem, 
hgs
parents:
diff changeset
   335
        hbTrId("txt_occ_setlabel_user_certificate"));
hgs
parents:
diff changeset
   336
    
hgs
parents:
diff changeset
   337
    // Stored certificate
hgs
parents:
diff changeset
   338
    QList<QVariant> storedCertsList = mEapConfig.value(EapQtConfig::UserCertificate).toList();
hgs
parents:
diff changeset
   339
    EapQtCertificateInfo storedCert;
hgs
parents:
diff changeset
   340
    if (!storedCertsList.empty() && storedCertsList[0].canConvert<EapQtCertificateInfo> ()) {
hgs
parents:
diff changeset
   341
        // Stored certificate found, index is still unknown 
hgs
parents:
diff changeset
   342
        storedCert = storedCertsList[0].value<EapQtCertificateInfo> ();
hgs
parents:
diff changeset
   343
        mCurrentUserCert = UnknownIndex;
hgs
parents:
diff changeset
   344
    }
hgs
parents:
diff changeset
   345
    else {
hgs
parents:
diff changeset
   346
        // no stored certificate, use 'not in use'
hgs
parents:
diff changeset
   347
        mCurrentUserCert = DefaultIndex;
hgs
parents:
diff changeset
   348
    }
hgs
parents:
diff changeset
   349
hgs
parents:
diff changeset
   350
    // User certificates found from system
hgs
parents:
diff changeset
   351
    mUserCerts = mConfigIf->userCertificates();
hgs
parents:
diff changeset
   352
    
hgs
parents:
diff changeset
   353
    // List of comboBox items
hgs
parents:
diff changeset
   354
    QStringList items;
hgs
parents:
diff changeset
   355
    // Add 'Not in use' to comboBox list
hgs
parents:
diff changeset
   356
    items << hbTrId("txt_occ_setlabel_user_certificate_val_not_in_use");
hgs
parents:
diff changeset
   357
    // Add certificates to comboBox list and find index of stored certificate
hgs
parents:
diff changeset
   358
    for (int i = 0; i < mUserCerts.count(); ++i) {
hgs
parents:
diff changeset
   359
        items << mUserCerts.at(i).value(EapQtCertificateInfo::CertificateLabel).toString();
hgs
parents:
diff changeset
   360
        if (mCurrentUserCert == UnknownIndex 
hgs
parents:
diff changeset
   361
            && storedCert.value(EapQtCertificateInfo::SubjectKeyId)
hgs
parents:
diff changeset
   362
            == mUserCerts.at(i).value(EapQtCertificateInfo::SubjectKeyId)) {
hgs
parents:
diff changeset
   363
            mCurrentUserCert = i + 1;
hgs
parents:
diff changeset
   364
        }
hgs
parents:
diff changeset
   365
    }
hgs
parents:
diff changeset
   366
    if (mCurrentUserCert == UnknownIndex) {
hgs
parents:
diff changeset
   367
        // Stored certificate not found in the certificate list
hgs
parents:
diff changeset
   368
        qDebug("CpEapTlsMethodsUi::createUserCerts() - stored certificate not in the list");
hgs
parents:
diff changeset
   369
        mCurrentUserCert = DefaultIndex;
hgs
parents:
diff changeset
   370
    }
hgs
parents:
diff changeset
   371
    
hgs
parents:
diff changeset
   372
    // Initialize comboBox
hgs
parents:
diff changeset
   373
    userCertList->setContentWidgetData("items", items);
hgs
parents:
diff changeset
   374
    userCertList->setContentWidgetData("currentIndex", mCurrentUserCert);
hgs
parents:
diff changeset
   375
    
hgs
parents:
diff changeset
   376
    // Get info when user certificate selection has been changed
hgs
parents:
diff changeset
   377
    mForm->addConnection(userCertList, SIGNAL(currentIndexChanged(int)), this,
hgs
parents:
diff changeset
   378
        SLOT(userCertChanged(int)));
hgs
parents:
diff changeset
   379
    mGroupItem->appendChild(userCertList);
hgs
parents:
diff changeset
   380
}
hgs
parents:
diff changeset
   381
hgs
parents:
diff changeset
   382
/*!
hgs
parents:
diff changeset
   383
 * Creates Authority certs group:
hgs
parents:
diff changeset
   384
 * Select automatically check box and certificate comboBox
hgs
parents:
diff changeset
   385
 */
hgs
parents:
diff changeset
   386
void CpEapTlsMethodsUi::createAuthorityCerts()
hgs
parents:
diff changeset
   387
{
hgs
parents:
diff changeset
   388
    qDebug("CpEapTlsMethodsUi::createAuthorityCerts()");
hgs
parents:
diff changeset
   389
    // Select Authority Certificate Automatically
hgs
parents:
diff changeset
   390
    mCaCertAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
hgs
parents:
diff changeset
   391
        "txt_occ_setlabel_authority_certificate"));
hgs
parents:
diff changeset
   392
    mCaCertAutomatic->setContentWidgetData("text", hbTrId(
hgs
parents:
diff changeset
   393
        "txt_occ_setlabel_authority_certificate_val_select"));
hgs
parents:
diff changeset
   394
    // Initialize the value from EapQtConfig
hgs
parents:
diff changeset
   395
    // Select CA Cert automatically is selected by default
hgs
parents:
diff changeset
   396
    mCaCertAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
hgs
parents:
diff changeset
   397
        EapQtConfig::AuthorityCertificateAutomatic).toBool()));
hgs
parents:
diff changeset
   398
    // connect signal to disable/enable CA cert when CaCertAutomatic changed 
hgs
parents:
diff changeset
   399
    mForm->addConnection(mCaCertAutomatic, SIGNAL(stateChanged(int)), this,
hgs
parents:
diff changeset
   400
        SLOT(authorityCertAutomaticChanged(int)));
hgs
parents:
diff changeset
   401
    mGroupItem->appendChild(mCaCertAutomatic);
hgs
parents:
diff changeset
   402
    
hgs
parents:
diff changeset
   403
    // Authority certificate comboBox
hgs
parents:
diff changeset
   404
    mCaCert = new CpSettingFormItemData(HbDataFormModelItem::ComboBoxItem, 
hgs
parents:
diff changeset
   405
        hbTrId("txt_occ_setlabel_authority_certificate"));
hgs
parents:
diff changeset
   406
    
hgs
parents:
diff changeset
   407
    // Stored certificate from EAP configuration
hgs
parents:
diff changeset
   408
    QList<QVariant> storedCertsList = mEapConfig.value(EapQtConfig::AuthorityCertificate).toList();
hgs
parents:
diff changeset
   409
    EapQtCertificateInfo storedCert;
hgs
parents:
diff changeset
   410
    if (!storedCertsList.empty() && storedCertsList[0].canConvert<EapQtCertificateInfo> ()) {
hgs
parents:
diff changeset
   411
        // Stored certificate found, index is still unknown 
hgs
parents:
diff changeset
   412
        storedCert = storedCertsList[0].value<EapQtCertificateInfo> ();
hgs
parents:
diff changeset
   413
        mCurrentAuthorityCert = UnknownIndex;
hgs
parents:
diff changeset
   414
    }
hgs
parents:
diff changeset
   415
    else {
hgs
parents:
diff changeset
   416
        // no selected certificate, use 'not in use'
hgs
parents:
diff changeset
   417
        mCurrentAuthorityCert = DefaultIndex;
hgs
parents:
diff changeset
   418
    }
hgs
parents:
diff changeset
   419
hgs
parents:
diff changeset
   420
    // Authority certificates found from system
hgs
parents:
diff changeset
   421
    mAuthorityCerts = mConfigIf->certificateAuthorityCertificates();
hgs
parents:
diff changeset
   422
    
hgs
parents:
diff changeset
   423
    // List of comboBox items
hgs
parents:
diff changeset
   424
    QStringList items;
hgs
parents:
diff changeset
   425
    // Add 'Not in use' to comboBox list
hgs
parents:
diff changeset
   426
    items << hbTrId("txt_occ_setlabel_authority_certificate_val_not_in");
hgs
parents:
diff changeset
   427
    // Add certificates to comboBox list and find index of stored certificate 
hgs
parents:
diff changeset
   428
    for (int i = 0; i < mAuthorityCerts.count(); ++i) {
hgs
parents:
diff changeset
   429
        items << mAuthorityCerts.at(i).value(EapQtCertificateInfo::CertificateLabel).toString();
hgs
parents:
diff changeset
   430
        if (mCurrentAuthorityCert == UnknownIndex 
hgs
parents:
diff changeset
   431
            && storedCert.value(EapQtCertificateInfo::SubjectKeyId)
hgs
parents:
diff changeset
   432
            == mAuthorityCerts.at(i).value(EapQtCertificateInfo::SubjectKeyId)) {
hgs
parents:
diff changeset
   433
            mCurrentAuthorityCert = i + 1;
hgs
parents:
diff changeset
   434
        }
hgs
parents:
diff changeset
   435
    }
hgs
parents:
diff changeset
   436
    if (mCurrentAuthorityCert == UnknownIndex) {
hgs
parents:
diff changeset
   437
        // Selected certificate not found in the certificate list
hgs
parents:
diff changeset
   438
        mCurrentAuthorityCert = DefaultIndex;
hgs
parents:
diff changeset
   439
    }
hgs
parents:
diff changeset
   440
    
hgs
parents:
diff changeset
   441
    // Initialize Authority certificates comboBox
hgs
parents:
diff changeset
   442
    mCaCert->setContentWidgetData("items", items);
hgs
parents:
diff changeset
   443
    mCaCert->setContentWidgetData("currentIndex", mCurrentAuthorityCert);
hgs
parents:
diff changeset
   444
    
hgs
parents:
diff changeset
   445
    // Get info when authority certificate selection has been changed
hgs
parents:
diff changeset
   446
    mForm->addConnection(mCaCert, SIGNAL(currentIndexChanged(int)), this,
hgs
parents:
diff changeset
   447
        SLOT(authorityCertChanged(int)));
hgs
parents:
diff changeset
   448
    // Dim authority certificate if select automatically checked
hgs
parents:
diff changeset
   449
    authorityCertAutomaticChanged(mCaCertAutomatic->contentWidgetData("checkState") == Qt::Checked);
hgs
parents:
diff changeset
   450
    mGroupItem->appendChild(mCaCert);
hgs
parents:
diff changeset
   451
}
hgs
parents:
diff changeset
   452
hgs
parents:
diff changeset
   453
/*!
hgs
parents:
diff changeset
   454
 * Creates PEAP version selection comboBox
hgs
parents:
diff changeset
   455
 */
hgs
parents:
diff changeset
   456
void CpEapTlsMethodsUi::createPeapVersion()
hgs
parents:
diff changeset
   457
{
hgs
parents:
diff changeset
   458
    qDebug("CpEapTlsMethodsUi::createPeapVersion()");
hgs
parents:
diff changeset
   459
    // Create PEAP version comboBox
hgs
parents:
diff changeset
   460
    mPeapVersion = new CpSettingFormItemData(
hgs
parents:
diff changeset
   461
        HbDataFormModelItem::ComboBoxItem, 
hgs
parents:
diff changeset
   462
        hbTrId("txt_occ_setlabel_peap_version"));
hgs
parents:
diff changeset
   463
    
hgs
parents:
diff changeset
   464
    // Add items to comboBox List
hgs
parents:
diff changeset
   465
    QStringList items;
hgs
parents:
diff changeset
   466
    items << hbTrId("txt_occ_setlabel_peap_version_val_peapv0")
hgs
parents:
diff changeset
   467
        << hbTrId("txt_occ_setlabel_peap_version_val_peapv1")
hgs
parents:
diff changeset
   468
        << hbTrId("txt_occ_setlabel_peap_version_val_peapv0_or_peapv1");
hgs
parents:
diff changeset
   469
    mPeapVersion->setContentWidgetData("items", items);
hgs
parents:
diff changeset
   470
    
hgs
parents:
diff changeset
   471
    // Initialize PEAP version from EAP configuration
hgs
parents:
diff changeset
   472
    if (mEapConfig.value(EapQtConfig::PeapVersion0Allowed).toBool()
hgs
parents:
diff changeset
   473
        && mEapConfig.value(EapQtConfig::PeapVersion1Allowed).toBool()) {
hgs
parents:
diff changeset
   474
        // PEAPv0 or PEAPv1
hgs
parents:
diff changeset
   475
        mCurrentPeapVersion = PeapVersionBoth;
hgs
parents:
diff changeset
   476
    }
hgs
parents:
diff changeset
   477
    else if (mEapConfig.value(EapQtConfig::PeapVersion1Allowed).toBool()) {
hgs
parents:
diff changeset
   478
        // PEAPv1
hgs
parents:
diff changeset
   479
        mCurrentPeapVersion = PeapVersion1;
hgs
parents:
diff changeset
   480
    }
hgs
parents:
diff changeset
   481
    else if (mEapConfig.value(EapQtConfig::PeapVersion0Allowed).toBool()) {
hgs
parents:
diff changeset
   482
        // PEAPv0
hgs
parents:
diff changeset
   483
        mCurrentPeapVersion = PeapVersion0;
hgs
parents:
diff changeset
   484
    }
hgs
parents:
diff changeset
   485
    else {
hgs
parents:
diff changeset
   486
        qDebug("CpEapTlsMethodsUi::createPeapVersion() - unknown version");    
hgs
parents:
diff changeset
   487
        // Set default (PEAPv0 or PEAPv1)
hgs
parents:
diff changeset
   488
        mCurrentPeapVersion = PeapVersionBoth;
hgs
parents:
diff changeset
   489
    }
hgs
parents:
diff changeset
   490
    mPeapVersion->setContentWidgetData("currentIndex", mCurrentPeapVersion);
hgs
parents:
diff changeset
   491
hgs
parents:
diff changeset
   492
    // Get info when PEAP version selection has been changed
hgs
parents:
diff changeset
   493
    mForm->addConnection(mPeapVersion, SIGNAL(currentIndexChanged(int)), this,
hgs
parents:
diff changeset
   494
        SLOT(peapVersionChanged(int)));
hgs
parents:
diff changeset
   495
    mGroupItem->appendChild(mPeapVersion);
hgs
parents:
diff changeset
   496
}
hgs
parents:
diff changeset
   497
hgs
parents:
diff changeset
   498
/*!
hgs
parents:
diff changeset
   499
 * Creates inner EAP type selection comboBox and configure button
hgs
parents:
diff changeset
   500
 */
hgs
parents:
diff changeset
   501
void CpEapTlsMethodsUi::createInnerMethod()
hgs
parents:
diff changeset
   502
{
hgs
parents:
diff changeset
   503
    qDebug("CpEapTlsMethodsUi::createInnerMethod()");
hgs
parents:
diff changeset
   504
    // Create inner EAP type selection combo box
hgs
parents:
diff changeset
   505
    createEapSelector();
hgs
parents:
diff changeset
   506
    // Create 'configure inner EAP type' button
hgs
parents:
diff changeset
   507
    EapInnerMethodEntryItemData *eapEntry = NULL;
hgs
parents:
diff changeset
   508
    eapEntry = new EapInnerMethodEntryItemData(this, *mItemDataHelper,
hgs
parents:
diff changeset
   509
        hbTrId("txt_occ_button_inner_eap_type"));
hgs
parents:
diff changeset
   510
    mGroupItem->appendChild(eapEntry);    
hgs
parents:
diff changeset
   511
}
hgs
parents:
diff changeset
   512
hgs
parents:
diff changeset
   513
/*!
hgs
parents:
diff changeset
   514
 * Creates Combo box for inner EAP type selection
hgs
parents:
diff changeset
   515
 */
hgs
parents:
diff changeset
   516
void CpEapTlsMethodsUi::createEapSelector()
hgs
parents:
diff changeset
   517
{
hgs
parents:
diff changeset
   518
    mInnerEapType = new CpSettingFormItemData(
hgs
parents:
diff changeset
   519
        HbDataFormModelItem::ComboBoxItem, 
hgs
parents:
diff changeset
   520
        hbTrId("txt_occ_setlabel_inner_eap_type"));
hgs
parents:
diff changeset
   521
hgs
parents:
diff changeset
   522
    // Selected inner EAP type stored into the database
hgs
parents:
diff changeset
   523
    QList<QVariant> currentEapList = mEapConfig.value(EapQtConfig::InnerType).toList();
hgs
parents:
diff changeset
   524
    EapQtPluginHandle readInnerEap;
hgs
parents:
diff changeset
   525
    if (!currentEapList.empty() && currentEapList[0].canConvert<EapQtPluginHandle> ()) {
hgs
parents:
diff changeset
   526
        readInnerEap = currentEapList[0].value<EapQtPluginHandle> ();
hgs
parents:
diff changeset
   527
        mCurrentInnerPlugin = UnknownIndex;
hgs
parents:
diff changeset
   528
    }
hgs
parents:
diff changeset
   529
    else {
hgs
parents:
diff changeset
   530
        // no selected inner EAP type, use the first one
hgs
parents:
diff changeset
   531
        mCurrentInnerPlugin = DefaultIndex;
hgs
parents:
diff changeset
   532
        mDefaultPluginInUse = true;
hgs
parents:
diff changeset
   533
    }
hgs
parents:
diff changeset
   534
    
hgs
parents:
diff changeset
   535
    QStringList items;
hgs
parents:
diff changeset
   536
    for (int i = 0; i < mPlugins.count(); ++i) {
hgs
parents:
diff changeset
   537
        // Add certificate to comboBox list
hgs
parents:
diff changeset
   538
        items << mPlugins.at(i).localizationId();
hgs
parents:
diff changeset
   539
        if (mCurrentInnerPlugin == UnknownIndex && readInnerEap.pluginId() 
hgs
parents:
diff changeset
   540
            == mPlugins.at(i).pluginHandle().pluginId()) {
hgs
parents:
diff changeset
   541
            // Store index of selected certificate
hgs
parents:
diff changeset
   542
            mCurrentInnerPlugin = i;
hgs
parents:
diff changeset
   543
        }
hgs
parents:
diff changeset
   544
        if (mPlugins.at(i).pluginHandle().pluginId() == EapQtPluginHandle::PluginEapMschapv2) {
hgs
parents:
diff changeset
   545
            // Store index of EAP-MSCHAPv2 (used as default with PEAP and unauthenticated FAST)
hgs
parents:
diff changeset
   546
            mInnerEapMschapv2 = i;
hgs
parents:
diff changeset
   547
        }
hgs
parents:
diff changeset
   548
        else if (mPlugins.at(i).pluginHandle().pluginId() == EapQtPluginHandle::PluginEapGtc) {
hgs
parents:
diff changeset
   549
            // Store index of EAP-GTC (Used as default with PEAPv1)
hgs
parents:
diff changeset
   550
            mInnerEapGtc = i;
hgs
parents:
diff changeset
   551
        }
hgs
parents:
diff changeset
   552
    }
hgs
parents:
diff changeset
   553
    if (mCurrentInnerPlugin == UnknownIndex) {
hgs
parents:
diff changeset
   554
        // Selected inner EAP type not found
hgs
parents:
diff changeset
   555
        mCurrentInnerPlugin = DefaultIndex;
hgs
parents:
diff changeset
   556
        mDefaultPluginInUse = true;      
hgs
parents:
diff changeset
   557
    }
hgs
parents:
diff changeset
   558
    
hgs
parents:
diff changeset
   559
    mInnerEapType->setContentWidgetData("items", items);
hgs
parents:
diff changeset
   560
    mInnerEapType->setContentWidgetData("currentIndex", mCurrentInnerPlugin);
hgs
parents:
diff changeset
   561
    
hgs
parents:
diff changeset
   562
    mForm->addConnection(mInnerEapType, SIGNAL(currentIndexChanged(int)), this,
hgs
parents:
diff changeset
   563
        SLOT(innerEapTypeChanged(int)));
hgs
parents:
diff changeset
   564
    
hgs
parents:
diff changeset
   565
    mGroupItem->appendChild(mInnerEapType);
hgs
parents:
diff changeset
   566
}
hgs
parents:
diff changeset
   567
hgs
parents:
diff changeset
   568
/*!
hgs
parents:
diff changeset
   569
 * Adds validators.
hgs
parents:
diff changeset
   570
 * 
hgs
parents:
diff changeset
   571
 * @param modelIndex Model index
hgs
parents:
diff changeset
   572
 */
hgs
parents:
diff changeset
   573
void CpEapTlsMethodsUi::setValidator(const QModelIndex modelIndex)
hgs
parents:
diff changeset
   574
{
hgs
parents:
diff changeset
   575
    qDebug("CpEapTlsMethodsUi::itemActivated");
hgs
parents:
diff changeset
   576
hgs
parents:
diff changeset
   577
    HbDataFormViewItem *viewItem = qobject_cast<HbDataFormViewItem *>
hgs
parents:
diff changeset
   578
        (mForm->itemByIndex(modelIndex));
hgs
parents:
diff changeset
   579
    HbDataFormModelItem *modelItem = mModel->itemFromIndex(modelIndex);
hgs
parents:
diff changeset
   580
    
hgs
parents:
diff changeset
   581
    if (modelItem == mUsername) {
hgs
parents:
diff changeset
   582
        // When username lineEdit is activated (shown) first time, validator is added
hgs
parents:
diff changeset
   583
        mValidatorUsername.reset(mConfigIf->validatorEap(mPluginInfo.pluginHandle().type(),
hgs
parents:
diff changeset
   584
            EapQtConfig::Username));
hgs
parents:
diff changeset
   585
        HbLineEdit *edit = qobject_cast<HbLineEdit *> (viewItem->dataItemContentWidget());
hgs
parents:
diff changeset
   586
        mValidatorUsername->updateEditor(edit);
hgs
parents:
diff changeset
   587
    }
hgs
parents:
diff changeset
   588
    else if (modelItem == mRealm) {
hgs
parents:
diff changeset
   589
        // When realm lineEdit is activated (shown) first time, validator is added
hgs
parents:
diff changeset
   590
        mValidatorRealm.reset(mConfigIf->validatorEap(mPluginInfo.pluginHandle().type(),
hgs
parents:
diff changeset
   591
                EapQtConfig::Realm));
hgs
parents:
diff changeset
   592
        HbLineEdit *edit = qobject_cast<HbLineEdit *> (viewItem->dataItemContentWidget());
hgs
parents:
diff changeset
   593
        mValidatorRealm->updateEditor(edit);
hgs
parents:
diff changeset
   594
    }
hgs
parents:
diff changeset
   595
}
hgs
parents:
diff changeset
   596
hgs
parents:
diff changeset
   597
/*!
hgs
parents:
diff changeset
   598
 * Sets default Inner EAP method according PEAP version
hgs
parents:
diff changeset
   599
 */
hgs
parents:
diff changeset
   600
void CpEapTlsMethodsUi::defaultInnerPlugin()
hgs
parents:
diff changeset
   601
{
hgs
parents:
diff changeset
   602
    qDebug("CpEapTlsMethodsUi::defaultInnerPlugin()");
hgs
parents:
diff changeset
   603
    if (mCurrentPeapVersion == PeapVersion1) {
hgs
parents:
diff changeset
   604
        mInnerEapType->setContentWidgetData("currentIndex", mInnerEapGtc);
hgs
parents:
diff changeset
   605
        mCurrentInnerPlugin = mInnerEapGtc;
hgs
parents:
diff changeset
   606
    }
hgs
parents:
diff changeset
   607
    else {
hgs
parents:
diff changeset
   608
        mInnerEapType->setContentWidgetData("currentIndex", mInnerEapMschapv2);
hgs
parents:
diff changeset
   609
        mCurrentInnerPlugin = mInnerEapMschapv2;
hgs
parents:
diff changeset
   610
    }  
hgs
parents:
diff changeset
   611
}
hgs
parents:
diff changeset
   612
hgs
parents:
diff changeset
   613
/*!
hgs
parents:
diff changeset
   614
 * Stores the index of selected user certificate
hgs
parents:
diff changeset
   615
 * 
hgs
parents:
diff changeset
   616
 * @param value Index of selected certificate.
hgs
parents:
diff changeset
   617
 */
hgs
parents:
diff changeset
   618
void CpEapTlsMethodsUi::userCertChanged(int value)
hgs
parents:
diff changeset
   619
{
hgs
parents:
diff changeset
   620
    qDebug("CpEapTlsMethodsUi::userCertChanged()");
hgs
parents:
diff changeset
   621
    mCurrentUserCert = value;
hgs
parents:
diff changeset
   622
}
hgs
parents:
diff changeset
   623
hgs
parents:
diff changeset
   624
/*!
hgs
parents:
diff changeset
   625
 * Stores the index of selected authority certificate
hgs
parents:
diff changeset
   626
 * 
hgs
parents:
diff changeset
   627
 * @param value Index of selected certificate.
hgs
parents:
diff changeset
   628
 */
hgs
parents:
diff changeset
   629
void CpEapTlsMethodsUi::authorityCertChanged(int value)
hgs
parents:
diff changeset
   630
{
hgs
parents:
diff changeset
   631
    qDebug("CpEapTlsMethodsUi::authorityCertChanged()");
hgs
parents:
diff changeset
   632
    mCurrentAuthorityCert = value;
hgs
parents:
diff changeset
   633
}
hgs
parents:
diff changeset
   634
hgs
parents:
diff changeset
   635
/*!
hgs
parents:
diff changeset
   636
 * Stores the index of selected PEAP version
hgs
parents:
diff changeset
   637
 * 
hgs
parents:
diff changeset
   638
 * @param value Index of selected PEAP version.
hgs
parents:
diff changeset
   639
 */
hgs
parents:
diff changeset
   640
void CpEapTlsMethodsUi::peapVersionChanged(int value)
hgs
parents:
diff changeset
   641
{
hgs
parents:
diff changeset
   642
    qDebug("CpEapTlsMethodsUi::peapVersionChanged()");
hgs
parents:
diff changeset
   643
    mCurrentPeapVersion = value;
hgs
parents:
diff changeset
   644
    defaultInnerPlugin();
hgs
parents:
diff changeset
   645
}
hgs
parents:
diff changeset
   646
hgs
parents:
diff changeset
   647
/*!
hgs
parents:
diff changeset
   648
 * Stores the index of selected inner EAP type
hgs
parents:
diff changeset
   649
 * 
hgs
parents:
diff changeset
   650
 * @param value Index of selected ineer EAP type.
hgs
parents:
diff changeset
   651
 */
hgs
parents:
diff changeset
   652
void CpEapTlsMethodsUi::innerEapTypeChanged(int value)
hgs
parents:
diff changeset
   653
{
hgs
parents:
diff changeset
   654
    qDebug("CpEapTlsMethodsUi::innerEapTypeChanged()");
hgs
parents:
diff changeset
   655
    mCurrentInnerPlugin = value;
hgs
parents:
diff changeset
   656
}
hgs
parents:
diff changeset
   657
hgs
parents:
diff changeset
   658
/*!
hgs
parents:
diff changeset
   659
 * Dims the username if generate username automatically has been selected.
hgs
parents:
diff changeset
   660
 * 
hgs
parents:
diff changeset
   661
 * @param state Tells is generate automatically checked.
hgs
parents:
diff changeset
   662
 */
hgs
parents:
diff changeset
   663
void CpEapTlsMethodsUi::usernameAutomaticChanged(int state)
hgs
parents:
diff changeset
   664
{
hgs
parents:
diff changeset
   665
    qDebug("CpEapTlsMethodsUi::usernameAutomaticChanged");
hgs
parents:
diff changeset
   666
hgs
parents:
diff changeset
   667
    mUsername->setContentWidgetData("enabled", !checkStateToBool(state));
hgs
parents:
diff changeset
   668
}
hgs
parents:
diff changeset
   669
hgs
parents:
diff changeset
   670
/*!
hgs
parents:
diff changeset
   671
 * Dims the realm if generate realm automatically has been selected.
hgs
parents:
diff changeset
   672
 * 
hgs
parents:
diff changeset
   673
 * @param state Tells is generate automatically checked.
hgs
parents:
diff changeset
   674
 */
hgs
parents:
diff changeset
   675
void CpEapTlsMethodsUi::realmAutomaticChanged(int state)
hgs
parents:
diff changeset
   676
{
hgs
parents:
diff changeset
   677
    qDebug("CpEapTlsMethodsUi::realmAutomaticChanged");
hgs
parents:
diff changeset
   678
hgs
parents:
diff changeset
   679
    mRealm->setContentWidgetData("enabled", !checkStateToBool(state));
hgs
parents:
diff changeset
   680
}
hgs
parents:
diff changeset
   681
hgs
parents:
diff changeset
   682
/*!
hgs
parents:
diff changeset
   683
 * Dims the authority certificate if select caCert automatically has been selected.
hgs
parents:
diff changeset
   684
 * 
hgs
parents:
diff changeset
   685
 * @param state Tells is select automatically checked.
hgs
parents:
diff changeset
   686
 */
hgs
parents:
diff changeset
   687
void CpEapTlsMethodsUi::authorityCertAutomaticChanged(int state)
hgs
parents:
diff changeset
   688
{
hgs
parents:
diff changeset
   689
    qDebug("CpEapTlsMethodsUi::authorityCertAutomaticChanged");
hgs
parents:
diff changeset
   690
hgs
parents:
diff changeset
   691
    mCaCert->setContentWidgetData("enabled", !checkStateToBool(state));
hgs
parents:
diff changeset
   692
}
hgs
parents:
diff changeset
   693
hgs
parents:
diff changeset
   694
/*!
hgs
parents:
diff changeset
   695
 * Converts check box state to boolean.
hgs
parents:
diff changeset
   696
 * 
hgs
parents:
diff changeset
   697
 * @param state Check box state
hgs
parents:
diff changeset
   698
 * 
hgs
parents:
diff changeset
   699
 * @return true if Check box is checked, false otherwise.
hgs
parents:
diff changeset
   700
 */
hgs
parents:
diff changeset
   701
bool CpEapTlsMethodsUi::checkStateToBool(const int state)
hgs
parents:
diff changeset
   702
{
hgs
parents:
diff changeset
   703
    return (Qt::Unchecked == state ? false : true);
hgs
parents:
diff changeset
   704
}
hgs
parents:
diff changeset
   705
hgs
parents:
diff changeset
   706
/*!
hgs
parents:
diff changeset
   707
 * Converts boolean to check box state.
hgs
parents:
diff changeset
   708
 * 
hgs
parents:
diff changeset
   709
 * @param state Tells is check box checked.
hgs
parents:
diff changeset
   710
 * 
hgs
parents:
diff changeset
   711
 * @return Qt check state
hgs
parents:
diff changeset
   712
 */
hgs
parents:
diff changeset
   713
int CpEapTlsMethodsUi::boolToCheckState(const bool state)
hgs
parents:
diff changeset
   714
{
hgs
parents:
diff changeset
   715
    return (false == state ? Qt::Unchecked : Qt::Checked);
hgs
parents:
diff changeset
   716
}
hgs
parents:
diff changeset
   717
hgs
parents:
diff changeset
   718
/*!
hgs
parents:
diff changeset
   719
 * This is called when user is about to exit the view.
hgs
parents:
diff changeset
   720
 * Validates configuration and saves settings.
hgs
parents:
diff changeset
   721
 * If configuration is not valid prompts question dialog.
hgs
parents:
diff changeset
   722
 * If user chooses "OK" leaves without saving.
hgs
parents:
diff changeset
   723
 * 
hgs
parents:
diff changeset
   724
 */
hgs
parents:
diff changeset
   725
void CpEapTlsMethodsUi::close()
hgs
parents:
diff changeset
   726
{
hgs
parents:
diff changeset
   727
    qDebug("CpEapTlsMethodsUi::close");
hgs
parents:
diff changeset
   728
    
hgs
parents:
diff changeset
   729
    // Validate configuration
hgs
parents:
diff changeset
   730
    if (validate()) {
hgs
parents:
diff changeset
   731
        qDebug("CpEapTlsMethodsUi::close - Validation OK");
hgs
parents:
diff changeset
   732
        
hgs
parents:
diff changeset
   733
        // Store settings
hgs
parents:
diff changeset
   734
        if (storeSettings()){
hgs
parents:
diff changeset
   735
            qDebug("CpEapTlsMethodsUi::close - Settings stored, close view");
hgs
parents:
diff changeset
   736
            // Close view
hgs
parents:
diff changeset
   737
            CpBaseSettingView::close();   
hgs
parents:
diff changeset
   738
        }
hgs
parents:
diff changeset
   739
        else {
hgs
parents:
diff changeset
   740
            qDebug("CpEapTlsMethodsUi::close - Store settings failed, prompt warning");
hgs
parents:
diff changeset
   741
            // Store failed. Show error note to user
hgs
parents:
diff changeset
   742
            QScopedPointer<HbMessageBox> infoBox;
hgs
parents:
diff changeset
   743
            infoBox.reset(new HbMessageBox(
hgs
parents:
diff changeset
   744
                HbMessageBox::MessageTypeWarning));
hgs
parents:
diff changeset
   745
            infoBox->setText(hbTrId("txt_occ_info_unable_to_save_setting"));
hgs
parents:
diff changeset
   746
            infoBox->clearActions();
hgs
parents:
diff changeset
   747
            // Connect 'OK'-button to CpBaseSettingView 'aboutToClose'-signal
hgs
parents:
diff changeset
   748
            HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok"));
hgs
parents:
diff changeset
   749
            infoBox->addAction(okAction);
hgs
parents:
diff changeset
   750
            bool connected = connect(
hgs
parents:
diff changeset
   751
                okAction,
hgs
parents:
diff changeset
   752
                SIGNAL(triggered()),
hgs
parents:
diff changeset
   753
                this,
hgs
parents:
diff changeset
   754
                SIGNAL(aboutToClose()));
hgs
parents:
diff changeset
   755
            Q_ASSERT(connected);
hgs
parents:
diff changeset
   756
            infoBox->open();
hgs
parents:
diff changeset
   757
            infoBox.take();
hgs
parents:
diff changeset
   758
        }
hgs
parents:
diff changeset
   759
    }
hgs
parents:
diff changeset
   760
    else {
hgs
parents:
diff changeset
   761
        qDebug("CpEapTlsMethodsUi::close - validation failed. Prompt question.");
hgs
parents:
diff changeset
   762
hgs
parents:
diff changeset
   763
        // Validate failed. Request user to exit anyway
hgs
parents:
diff changeset
   764
        QScopedPointer<HbMessageBox> messageBox;
hgs
parents:
diff changeset
   765
        messageBox.reset(new HbMessageBox(
hgs
parents:
diff changeset
   766
            HbMessageBox::MessageTypeQuestion));
hgs
parents:
diff changeset
   767
        messageBox->setAttribute(Qt::WA_DeleteOnClose);
hgs
parents:
diff changeset
   768
        messageBox->setText(hbTrId("txt_occ_info_incomplete_details_return_without_sa"));
hgs
parents:
diff changeset
   769
        messageBox->clearActions();
hgs
parents:
diff changeset
   770
        // Connect 'YES'-button to CpBaseSettingView 'aboutToClose'-signal
hgs
parents:
diff changeset
   771
        HbAction *okAction = new HbAction(hbTrId("txt_common_button_yes"));
hgs
parents:
diff changeset
   772
        messageBox->addAction(okAction);
hgs
parents:
diff changeset
   773
        bool connected = connect(
hgs
parents:
diff changeset
   774
            okAction,
hgs
parents:
diff changeset
   775
            SIGNAL(triggered()),
hgs
parents:
diff changeset
   776
            this,
hgs
parents:
diff changeset
   777
            SIGNAL(aboutToClose()));
hgs
parents:
diff changeset
   778
        Q_ASSERT(connected);
hgs
parents:
diff changeset
   779
        // Clicking 'NO'-button does nothing
hgs
parents:
diff changeset
   780
        HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_no"));
hgs
parents:
diff changeset
   781
        messageBox->addAction(cancelAction);
hgs
parents:
diff changeset
   782
        messageBox->setTimeout(HbPopup::NoTimeout);
hgs
parents:
diff changeset
   783
        messageBox->open();
hgs
parents:
diff changeset
   784
        messageBox.take();
hgs
parents:
diff changeset
   785
    }
hgs
parents:
diff changeset
   786
}
hgs
parents:
diff changeset
   787
hgs
parents:
diff changeset
   788
/*!
hgs
parents:
diff changeset
   789
 * Validates settings configuration.
hgs
parents:
diff changeset
   790
 * 
hgs
parents:
diff changeset
   791
 * @return true if configuration OK, false otherwise.
hgs
parents:
diff changeset
   792
 */
hgs
parents:
diff changeset
   793
bool CpEapTlsMethodsUi::validate()
hgs
parents:
diff changeset
   794
{
hgs
parents:
diff changeset
   795
    qDebug("CpEapTlsMethodsUi::validate()");
hgs
parents:
diff changeset
   796
    bool valid = false;
hgs
parents:
diff changeset
   797
hgs
parents:
diff changeset
   798
    if (validateUsernameGroup() 
hgs
parents:
diff changeset
   799
        && validateRealmGroup()
hgs
parents:
diff changeset
   800
        && validateAuthorityCertificate()
hgs
parents:
diff changeset
   801
        && validateUserCertificate()
hgs
parents:
diff changeset
   802
        && validateCiphersuites()) {
hgs
parents:
diff changeset
   803
        valid = true;
hgs
parents:
diff changeset
   804
    }
hgs
parents:
diff changeset
   805
hgs
parents:
diff changeset
   806
    return valid;
hgs
parents:
diff changeset
   807
}
hgs
parents:
diff changeset
   808
hgs
parents:
diff changeset
   809
/*!
hgs
parents:
diff changeset
   810
 * Validates username checkBox and lineEdit group.
hgs
parents:
diff changeset
   811
 * 
hgs
parents:
diff changeset
   812
 * @return true if OK, false otherwise.
hgs
parents:
diff changeset
   813
 */
hgs
parents:
diff changeset
   814
bool CpEapTlsMethodsUi::validateUsernameGroup()
hgs
parents:
diff changeset
   815
{
hgs
parents:
diff changeset
   816
    bool status = false;
hgs
parents:
diff changeset
   817
    // true if generate automatically is checked or given value is valid
hgs
parents:
diff changeset
   818
    if (mUsernameAutomatic->contentWidgetData("checkState") == Qt::Checked
hgs
parents:
diff changeset
   819
        || EapQtValidator::StatusOk == mValidatorUsername->validate(
hgs
parents:
diff changeset
   820
            mUsername->contentWidgetData("text"))) {
hgs
parents:
diff changeset
   821
        status = true;
hgs
parents:
diff changeset
   822
    }
hgs
parents:
diff changeset
   823
    qDebug("CpEapTlsMethodsUi::validateUsernameGroup() - status: %d", status);
hgs
parents:
diff changeset
   824
    return status;
hgs
parents:
diff changeset
   825
}
hgs
parents:
diff changeset
   826
hgs
parents:
diff changeset
   827
/*!
hgs
parents:
diff changeset
   828
 * Validates realm checkBox and lineEdit group.
hgs
parents:
diff changeset
   829
 * 
hgs
parents:
diff changeset
   830
 * @return true if OK, false otherwise.
hgs
parents:
diff changeset
   831
 */
hgs
parents:
diff changeset
   832
bool CpEapTlsMethodsUi::validateRealmGroup()
hgs
parents:
diff changeset
   833
{
hgs
parents:
diff changeset
   834
    bool status = false;
hgs
parents:
diff changeset
   835
    // true if generate automatically is checked or given value is valid
hgs
parents:
diff changeset
   836
    if (mRealmAutomatic->contentWidgetData("checkState") == Qt::Checked
hgs
parents:
diff changeset
   837
        || EapQtValidator::StatusOk == mValidatorRealm->validate(
hgs
parents:
diff changeset
   838
            mRealm->contentWidgetData("text"))) {
hgs
parents:
diff changeset
   839
        status = true;
hgs
parents:
diff changeset
   840
    }
hgs
parents:
diff changeset
   841
    qDebug("CpEapTlsMethodsUi::validateRealmGroup() - status: %d", status);
hgs
parents:
diff changeset
   842
    return status;
hgs
parents:
diff changeset
   843
}
hgs
parents:
diff changeset
   844
hgs
parents:
diff changeset
   845
/*!
hgs
parents:
diff changeset
   846
 * Validates authority certificate checkBox and comboBox group.
hgs
parents:
diff changeset
   847
 * 
hgs
parents:
diff changeset
   848
 * @return true if OK, false otherwise.
hgs
parents:
diff changeset
   849
 */
hgs
parents:
diff changeset
   850
bool CpEapTlsMethodsUi::validateAuthorityCertificate()
hgs
parents:
diff changeset
   851
{
hgs
parents:
diff changeset
   852
    bool status = false;
hgs
parents:
diff changeset
   853
    //true if select automatically is checked or certificate is selected
hgs
parents:
diff changeset
   854
    if (mCaCertAutomatic->contentWidgetData("checkState") == Qt::Checked
hgs
parents:
diff changeset
   855
        || mCurrentAuthorityCert > NotInUseIndex) {
hgs
parents:
diff changeset
   856
        status = true;
hgs
parents:
diff changeset
   857
    }
hgs
parents:
diff changeset
   858
    qDebug("CpEapTlsMethodsUi::validateAuthorityCertificate()- status: %d", status);
hgs
parents:
diff changeset
   859
    return status;
hgs
parents:
diff changeset
   860
}
hgs
parents:
diff changeset
   861
hgs
parents:
diff changeset
   862
/*!
hgs
parents:
diff changeset
   863
 * Validates user certificate selection.
hgs
parents:
diff changeset
   864
 * 
hgs
parents:
diff changeset
   865
 * @return false if EAP-TLS and no certificate, true otherwise
hgs
parents:
diff changeset
   866
 */
hgs
parents:
diff changeset
   867
bool CpEapTlsMethodsUi::validateUserCertificate()
hgs
parents:
diff changeset
   868
{
hgs
parents:
diff changeset
   869
    bool status = true;
hgs
parents:
diff changeset
   870
    // false if EAP-TLS and not selected user certificate
hgs
parents:
diff changeset
   871
    if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTls
hgs
parents:
diff changeset
   872
        && mCurrentUserCert == NotInUseIndex) {
hgs
parents:
diff changeset
   873
        status = false;
hgs
parents:
diff changeset
   874
    }
hgs
parents:
diff changeset
   875
    qDebug("CpEapTlsMethodsUi::validateUserCertificate() - status: %d", status);
hgs
parents:
diff changeset
   876
    return status;
hgs
parents:
diff changeset
   877
}
hgs
parents:
diff changeset
   878
hgs
parents:
diff changeset
   879
/*!
hgs
parents:
diff changeset
   880
 * Validates cipher suites selection.
hgs
parents:
diff changeset
   881
 * 
hgs
parents:
diff changeset
   882
 * @return false if no cipher suite is selected, true otherwise
hgs
parents:
diff changeset
   883
 */
hgs
parents:
diff changeset
   884
bool CpEapTlsMethodsUi::validateCiphersuites()
hgs
parents:
diff changeset
   885
{
hgs
parents:
diff changeset
   886
    bool status = true;
hgs
parents:
diff changeset
   887
    QVariant cipherSuites = mGroupItemCs->ciphersuites();
hgs
parents:
diff changeset
   888
    QList<QVariant> cipherList = cipherSuites.toList();
hgs
parents:
diff changeset
   889
    if (cipherList.count() == 0){
hgs
parents:
diff changeset
   890
        status = false;
hgs
parents:
diff changeset
   891
    }
hgs
parents:
diff changeset
   892
    qDebug("CpEapTlsMethodsUi::validateCiphersuites() - status: %d", status);
hgs
parents:
diff changeset
   893
    return status;
hgs
parents:
diff changeset
   894
}
hgs
parents:
diff changeset
   895
hgs
parents:
diff changeset
   896
/*!
hgs
parents:
diff changeset
   897
 * Write PEAP specific values into the EAP configuration
hgs
parents:
diff changeset
   898
 * 
hgs
parents:
diff changeset
   899
 * @param eapConfig
hgs
parents:
diff changeset
   900
 */
hgs
parents:
diff changeset
   901
void CpEapTlsMethodsUi::setPeapVersion(EapQtConfig &eapConfig)
hgs
parents:
diff changeset
   902
{
hgs
parents:
diff changeset
   903
    qDebug("CpEapTlsMethodsUi::setPeapVersion()");
hgs
parents:
diff changeset
   904
    if (mCurrentPeapVersion == PeapVersion0) {
hgs
parents:
diff changeset
   905
        eapConfig.setValue(EapQtConfig::PeapVersion0Allowed, true);
hgs
parents:
diff changeset
   906
        eapConfig.setValue(EapQtConfig::PeapVersion1Allowed, false);
hgs
parents:
diff changeset
   907
    }
hgs
parents:
diff changeset
   908
    else if (mCurrentPeapVersion == PeapVersion1) {
hgs
parents:
diff changeset
   909
        eapConfig.setValue(EapQtConfig::PeapVersion0Allowed, false);
hgs
parents:
diff changeset
   910
        eapConfig.setValue(EapQtConfig::PeapVersion1Allowed, true);            
hgs
parents:
diff changeset
   911
    }
hgs
parents:
diff changeset
   912
    else {
hgs
parents:
diff changeset
   913
        Q_ASSERT(mCurrentPeapVersion == PeapVersionBoth);
hgs
parents:
diff changeset
   914
        eapConfig.setValue(EapQtConfig::PeapVersion0Allowed, true);
hgs
parents:
diff changeset
   915
        eapConfig.setValue(EapQtConfig::PeapVersion1Allowed, true);            
hgs
parents:
diff changeset
   916
    }    
hgs
parents:
diff changeset
   917
}
hgs
parents:
diff changeset
   918
hgs
parents:
diff changeset
   919
/*!
hgs
parents:
diff changeset
   920
 * Stores settings given via TLS based methods setting UI
hgs
parents:
diff changeset
   921
 * 
hgs
parents:
diff changeset
   922
 * @return false if saving failed, true otherwise
hgs
parents:
diff changeset
   923
 */
hgs
parents:
diff changeset
   924
bool CpEapTlsMethodsUi::storeSettings()
hgs
parents:
diff changeset
   925
{
hgs
parents:
diff changeset
   926
    qDebug("CpEapTlsMethodsUi::storeSettings");
hgs
parents:
diff changeset
   927
hgs
parents:
diff changeset
   928
    EapQtConfig eapConfig;
hgs
parents:
diff changeset
   929
hgs
parents:
diff changeset
   930
    // Store common settings
hgs
parents:
diff changeset
   931
    qDebug("CpEapTlsMethodsUi::storeSettings - Common settings");
hgs
parents:
diff changeset
   932
    eapConfig.setValue(EapQtConfig::OuterType, qVariantFromValue(mOuterHandle));
hgs
parents:
diff changeset
   933
    eapConfig.setValue(EapQtConfig::UsernameAutomatic, checkStateToBool(
hgs
parents:
diff changeset
   934
        mUsernameAutomatic->contentWidgetData("checkState").toInt()));
hgs
parents:
diff changeset
   935
    eapConfig.setValue(EapQtConfig::Username, mUsername->contentWidgetData("text"));
hgs
parents:
diff changeset
   936
    eapConfig.setValue(EapQtConfig::RealmAutomatic, checkStateToBool(
hgs
parents:
diff changeset
   937
        mRealmAutomatic->contentWidgetData("checkState").toInt()));
hgs
parents:
diff changeset
   938
    eapConfig.setValue(EapQtConfig::Realm, mRealm->contentWidgetData("text"));
hgs
parents:
diff changeset
   939
hgs
parents:
diff changeset
   940
    // User certificate
hgs
parents:
diff changeset
   941
    qDebug("CpEapTlsMethodsUi::storeSettings - User certificate");
hgs
parents:
diff changeset
   942
    if (mCurrentUserCert > NotInUseIndex) {
hgs
parents:
diff changeset
   943
        QList<QVariant> userCerts;
hgs
parents:
diff changeset
   944
        userCerts.append(qVariantFromValue(mUserCerts.at(mCurrentUserCert - 1)));
hgs
parents:
diff changeset
   945
        // The first item in UI(index 0) is 'not in use'
hgs
parents:
diff changeset
   946
        eapConfig.setValue(EapQtConfig::UserCertificate, userCerts); 
hgs
parents:
diff changeset
   947
    }
hgs
parents:
diff changeset
   948
hgs
parents:
diff changeset
   949
    // Authority certificate
hgs
parents:
diff changeset
   950
    qDebug("CpEapTlsMethodsUi::storeSettings - Authority certificate");
hgs
parents:
diff changeset
   951
    eapConfig.setValue(EapQtConfig::AuthorityCertificateAutomatic, checkStateToBool(
hgs
parents:
diff changeset
   952
        mCaCertAutomatic->contentWidgetData("checkState").toInt()));
hgs
parents:
diff changeset
   953
    if (mCurrentAuthorityCert > NotInUseIndex && !checkStateToBool(
hgs
parents:
diff changeset
   954
        mCaCertAutomatic->contentWidgetData("checkState").toInt())) {
hgs
parents:
diff changeset
   955
        QList<QVariant> authorityCerts;
hgs
parents:
diff changeset
   956
        authorityCerts.append(qVariantFromValue(mAuthorityCerts.at(mCurrentAuthorityCert - 1)));
hgs
parents:
diff changeset
   957
        // The first item in UI(index 0) is 'not in use'
hgs
parents:
diff changeset
   958
        eapConfig.setValue(EapQtConfig::AuthorityCertificate, authorityCerts); 
hgs
parents:
diff changeset
   959
    }    
hgs
parents:
diff changeset
   960
    
hgs
parents:
diff changeset
   961
    // Inner EAP method (Not valid for EAP-TLS)
hgs
parents:
diff changeset
   962
    if (!(mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTls)) {
hgs
parents:
diff changeset
   963
        qDebug("CpEapTlsMethodsUi::storeSettings - Inner EAP method");
hgs
parents:
diff changeset
   964
        QList<QVariant> innerEaps;
hgs
parents:
diff changeset
   965
        innerEaps.append(qVariantFromValue(mPlugins.at(mCurrentInnerPlugin).pluginHandle()));
hgs
parents:
diff changeset
   966
        eapConfig.setValue(EapQtConfig::InnerType, innerEaps);
hgs
parents:
diff changeset
   967
    }
hgs
parents:
diff changeset
   968
hgs
parents:
diff changeset
   969
    // Cipher suites
hgs
parents:
diff changeset
   970
    qDebug("CpEapTlsMethodsUi::storeSettings - Cipher suites");
hgs
parents:
diff changeset
   971
    eapConfig.setValue(EapQtConfig::CipherSuites, mGroupItemCs->ciphersuites());
hgs
parents:
diff changeset
   972
    
hgs
parents:
diff changeset
   973
    // PEAP version (valid only for PEAP)
hgs
parents:
diff changeset
   974
    if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginPeap) {
hgs
parents:
diff changeset
   975
        setPeapVersion(eapConfig);
hgs
parents:
diff changeset
   976
    }
hgs
parents:
diff changeset
   977
    
hgs
parents:
diff changeset
   978
    // Save configuration
hgs
parents:
diff changeset
   979
    if (!mConfigIf->saveConfiguration(mPluginInfo.pluginHandle(), eapConfig)) {
hgs
parents:
diff changeset
   980
        qDebug("CpEapTlsMethodsUi::storeSettings - configuration saving failed.");
hgs
parents:
diff changeset
   981
        return false;
hgs
parents:
diff changeset
   982
    }
hgs
parents:
diff changeset
   983
    return true;
hgs
parents:
diff changeset
   984
}
hgs
parents:
diff changeset
   985