--- a/securitysettings/cpeapuiplugins/cpeaptlsmethodsui/src/cpeaptlsmethodsui.cpp Tue Aug 31 15:16:37 2010 +0300
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,985 +0,0 @@
-/*
- * Copyright (c) 2010 Nokia Corporation and/or its subsidiary(-ies).
- * All rights reserved.
- * This component and the accompanying materials are made available
- * under the terms of "Eclipse Public License v1.0"
- * which accompanies this distribution, and is available
- * at the URL "http://www.eclipse.org/legal/epl-v10.html".
- *
- * Initial Contributors:
- * Nokia Corporation - initial contribution.
- *
- * Contributors:
- *
- * Description:
- * Control Panel QT UI for TLS-based EAP methods configuration
- *
- */
-
-/*
- * %version: 24 %
- */
-
-// System includes
-#include <HbDataForm>
-#include <HbDataFormModel>
-#include <HbDataFormViewItem>
-#include <HbParameterLengthLimiter>
-#include <HbMessageBox>
-#include <HbAction>
-#include <HbLineEdit>
-#include <cpsettingformitemdata.h>
-#include <cpitemdatahelper.h>
-#include <eapqtvalidator.h>
-#include <eapqtexpandedeaptype.h>
-#include <eapqtcertificateinfo.h>
-#include <cppluginutility.h>
-
-// User includes
-#include "cpeapciphersuiteui.h"
-#include "cpeaptlsmethodsui.h"
-#include "cpeaptlsmethodsinnereapui.h"
-
-/*!
- * \class CpEapTlsMethodsUi
- * \brief Implementes TLS based methods configuration ui.
- */
-
-// External function prototypes
-
-// Local constants
-
-/*!
- * ComboBox index is unkown
- */
-static const int UnknownIndex = -1;
-/*!
- * Default index for ComboBox, used if no value has been stored
- */
-static const int DefaultIndex = 0;
-/*!
- * Index of 'Not in use'in certificate selection lists.
- */
-static const int NotInUseIndex = 0;
-
-// ======== LOCAL FUNCTIONS ========
-
-// ======== MEMBER FUNCTIONS ========
-
-/*!
- * Constructor.
- *
- * @param bearer Bearer type of the accessed configuration.
- * @param iapId IAP ID of the accessed configuration.
- * @param plugin Plugin.
- * @param outerHandle Outer handle.
- */
-
-CpEapTlsMethodsUi::CpEapTlsMethodsUi(
- const EapQtConfigInterface::EapBearerType bearer,
- const int iapId,
- const EapQtPluginInfo &plugin,
- const EapQtPluginHandle& outerHandle) :
- mConfigIf(NULL),
- mPluginInfo(plugin),
- mOuterHandle(outerHandle),
- mForm(NULL),
- mModel(NULL),
- mItemDataHelper(NULL),
- mGroupItem(NULL),
- mUsernameAutomatic(NULL),
- mUsername(NULL),
- mRealmAutomatic(NULL),
- mRealm(NULL),
- mCaCertAutomatic(NULL),
- mCaCert(NULL),
- mPeapVersion(NULL),
- mInnerEapType(NULL),
- mGroupItemCs(NULL),
- mCurrentUserCert(0),
- mCurrentAuthorityCert(0),
- mCurrentPeapVersion(0),
- mCurrentInnerPlugin(0),
- mInnerEapMschapv2(0),
- mInnerEapGtc(0),
- mDefaultPluginInUse(false)
-{
- qDebug("CpEapTlsMethodsUi::CpEapTlsMethodsUi()");
-
- // IAP must be valid in construction (check includes
- // EapQtConfigInterface::IapIdUndefined)
- if (iapId < 0) {
- QT_THROW(std::bad_alloc());
- // scoped pointer gets deleted automaticaly on exception
- }
-
- // Get EAP config interface
- mConfigIf.reset(new EapQtConfigInterface(bearer, iapId));
-
- // Request supported inner EAP types
- mPlugins.append(mConfigIf->supportedInnerTypes(mPluginInfo.pluginHandle()));
-
- // Create UI
- createUi();
-}
-
-/*!
- * Destructor.
- */
-CpEapTlsMethodsUi::~CpEapTlsMethodsUi()
-{
- qDebug("CpEapTlsMethodsUi::~CpEapTlsMethodsUi()");
-
- // mEapQtConfigInterface: scoped pointer deleted automatically
- // mValidatorRealm: scoped pointer deleted automatically
- // mValidatorUsername: scoped pointer deleted automatically
-}
-
-/*!
- * Calls inner UI instance
- *
- * @return pointer to inner UI instance
- */
-CpBaseSettingView *CpEapTlsMethodsUi::innerUiInstance()
-{
- return mConfigIf->uiInstance(mPluginInfo.pluginHandle(),
- mPlugins.at(mCurrentInnerPlugin).pluginHandle());
-}
-
-/*!
- * Creates TLS based methods UI and initilizes settings read via
- * EapQtConfigInterface
- */
-void CpEapTlsMethodsUi::createUi()
-{
- qDebug("CpEapTlsMethodsUi::createUi()");
-
- // Read EAP Configurations
- bool configurationRead = mConfigIf->readConfiguration(mOuterHandle, mPluginInfo.pluginHandle(),
- mEapConfig);
- if (!configurationRead) {
- qDebug("CpEapTlsMethodsUi::createUi - read configuration failed.");
- }
-
- // Construct TLS based methods settings UI
- mForm = new HbDataForm();
- this->setWidget(mForm);
- CpPluginUtility::addCpItemPrototype(mForm);
- mModel = new HbDataFormModel(mForm);
-
- // Create settings group
- mGroupItem = new HbDataFormModelItem(HbDataFormModelItem::GroupItem,
- HbParameterLengthLimiter(
- hbTrId("txt_occ_subhead_eap_module_settings")).arg(
- mPluginInfo.localizationId()));
- mModel->appendDataFormItem(mGroupItem);
-
- // The parameter given as 0 is a HbDataForm pointer, not parent
- mItemDataHelper = new CpItemDataHelper(0);
- mItemDataHelper->setParent(this);
-
- // Create method specific UI
- if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTls) {
- createTlsUi();
- }
- else if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTtls) {
- createTtlsUi();
- }
- else if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginPeap) {
- createPeapUi();
- }
- else {
- qDebug("CpEapTlsMethodsUi::createUi() - unknown EAP method");
- }
-
- // Load cipher suites view
- QVariant variant;
- variant = mEapConfig.value(EapQtConfig::CipherSuites);
- mGroupItemCs = new CpEapCiphersuiteUi(variant);
- mModel->appendDataFormItem(mGroupItemCs);
-
- mItemDataHelper->bindToForm(mForm);
- mForm->setModel(mModel);
-
- // Connect signal to add validators
- bool connected = connect(mForm, SIGNAL( itemShown(const QModelIndex&) ), this,
- SLOT( setValidator(const QModelIndex) ));
- Q_ASSERT(connected);
-
- // Expand TLS based method settings group
- mForm->setExpanded(mModel->indexFromItem(mGroupItem), true);
-}
-
-/*!
- * Creates EAP-TLS settings UI
- */
-void CpEapTlsMethodsUi::createTlsUi()
-{
- qDebug("CpEapTlsMethodsUi::createTlsUi()");
- // Create common TLS settings componenets
- createAuthorityCerts();
- createUserCerts();
- createUsername();
- createRealm();
-}
-
-/*!
- * Creates EAP-TTLS settings UI
- */
-void CpEapTlsMethodsUi::createTtlsUi()
-{
- qDebug("CpEapTlsMethodsUi::createTtlsUi()");
- // Create common TLS settings componenets
- createAuthorityCerts();
- createUserCerts();
- createUsername();
- createRealm();
-
- // Create Inner Eap type selection comboBox and configuration button
- createInnerMethod();
-}
-
-/*!
- * Creates PEAP settings UI
- */
-void CpEapTlsMethodsUi::createPeapUi()
-{
- qDebug("CpEapTlsMethodsUi::createPeapUi()");
- // Create common TLS settings componenets
- createAuthorityCerts();
- createUserCerts();
- createUsername();
- createRealm();
-
- // Create PEAP version selection comboBox
- createPeapVersion();
-
- // Create Inner Eap type selection comboBox and configuration button
- createInnerMethod();
-
- // If not stored inner Eap type, set default inner EAP method
- // according PEAP version
- if (mDefaultPluginInUse) {
- defaultInnerPlugin();
- }
-}
-/*!
- * Creates Username group:
- * Generate automatically checkBox and username lineEdit
- */
-void CpEapTlsMethodsUi::createUsername()
-{
- qDebug("CpEapTlsMethodsUi::createUsername()");
- // UsernameAutomatic
- mUsernameAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
- "txt_occ_setlabel_user_name"));
- mUsernameAutomatic->setContentWidgetData("text", hbTrId(
- "txt_occ_setlabel_user_name_val_generate_automatica"));
- // Initialize the value from EapQtConfig
- // Generate username automatically is selected by default
- mUsernameAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
- EapQtConfig::UsernameAutomatic).toBool()));
- // Connect signal to disable/enable username when usernameAutomatic changed
- mForm->addConnection(mUsernameAutomatic, SIGNAL(stateChanged(int)), this,
- SLOT(usernameAutomaticChanged(int)));
- mGroupItem->appendChild(mUsernameAutomatic);
-
- //Username
- mUsername = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId(
- "txt_occ_setlabel_user_name"));
- mUsername->setContentWidgetData("text", mEapConfig.value(EapQtConfig::Username));
- // Dim username if usernameAutomatic selected
- usernameAutomaticChanged(mUsernameAutomatic->contentWidgetData("checkState") == Qt::Checked);
- mGroupItem->appendChild(mUsername);
-}
-
-/*!
- * Creates Realm group:
- * Generate automatically checkBox and realm lineEdit
- */
-void CpEapTlsMethodsUi::createRealm()
-{
- qDebug("CpEapTlsMethodsUi::createRealm()");
- // RealmAutomatic
- mRealmAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
- "txt_occ_setlabel_realm"));
- mRealmAutomatic->setContentWidgetData("text", hbTrId(
- "txt_occ_setlabel_realm_val_generate_automatically"));
- // Initialize the value from EapQtConfig
- // Generate realm automatically is selected by default
- mRealmAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
- EapQtConfig::RealmAutomatic).toBool()));
- // connect signal to disable/enable realm when realmAutomatic changed
- mForm->addConnection(mRealmAutomatic, SIGNAL(stateChanged(int)), this,
- SLOT(realmAutomaticChanged(int)));
- mGroupItem->appendChild(mRealmAutomatic);
-
- //Realm
- mRealm = new CpSettingFormItemData(HbDataFormModelItem::TextItem, hbTrId(
- "txt_occ_setlabel_realm"));
- mRealm->setContentWidgetData("text", mEapConfig.value(EapQtConfig::Realm));
- // Dim realm if realmAutomatic selected
- realmAutomaticChanged(mRealmAutomatic->contentWidgetData("checkState") == Qt::Checked);
- mGroupItem->appendChild(mRealm);
-}
-
-/*!
- * Creates User certificate selection comboBox
- */
-void CpEapTlsMethodsUi::createUserCerts()
-{
- qDebug("CpEapTlsMethodsUi::createUserCerts()");
- // Create User certificate comboBox
- CpSettingFormItemData *userCertList = new CpSettingFormItemData(
- HbDataFormModelItem::ComboBoxItem,
- hbTrId("txt_occ_setlabel_user_certificate"));
-
- // Stored certificate
- QList<QVariant> storedCertsList = mEapConfig.value(EapQtConfig::UserCertificate).toList();
- EapQtCertificateInfo storedCert;
- if (!storedCertsList.empty() && storedCertsList[0].canConvert<EapQtCertificateInfo> ()) {
- // Stored certificate found, index is still unknown
- storedCert = storedCertsList[0].value<EapQtCertificateInfo> ();
- mCurrentUserCert = UnknownIndex;
- }
- else {
- // no stored certificate, use 'not in use'
- mCurrentUserCert = DefaultIndex;
- }
-
- // User certificates found from system
- mUserCerts = mConfigIf->userCertificates();
-
- // List of comboBox items
- QStringList items;
- // Add 'Not in use' to comboBox list
- items << hbTrId("txt_occ_setlabel_user_certificate_val_not_in_use");
- // Add certificates to comboBox list and find index of stored certificate
- for (int i = 0; i < mUserCerts.count(); ++i) {
- items << mUserCerts.at(i).value(EapQtCertificateInfo::CertificateLabel).toString();
- if (mCurrentUserCert == UnknownIndex
- && storedCert.value(EapQtCertificateInfo::SubjectKeyId)
- == mUserCerts.at(i).value(EapQtCertificateInfo::SubjectKeyId)) {
- mCurrentUserCert = i + 1;
- }
- }
- if (mCurrentUserCert == UnknownIndex) {
- // Stored certificate not found in the certificate list
- qDebug("CpEapTlsMethodsUi::createUserCerts() - stored certificate not in the list");
- mCurrentUserCert = DefaultIndex;
- }
-
- // Initialize comboBox
- userCertList->setContentWidgetData("items", items);
- userCertList->setContentWidgetData("currentIndex", mCurrentUserCert);
-
- // Get info when user certificate selection has been changed
- mForm->addConnection(userCertList, SIGNAL(currentIndexChanged(int)), this,
- SLOT(userCertChanged(int)));
- mGroupItem->appendChild(userCertList);
-}
-
-/*!
- * Creates Authority certs group:
- * Select automatically check box and certificate comboBox
- */
-void CpEapTlsMethodsUi::createAuthorityCerts()
-{
- qDebug("CpEapTlsMethodsUi::createAuthorityCerts()");
- // Select Authority Certificate Automatically
- mCaCertAutomatic = new CpSettingFormItemData(HbDataFormModelItem::CheckBoxItem, hbTrId(
- "txt_occ_setlabel_authority_certificate"));
- mCaCertAutomatic->setContentWidgetData("text", hbTrId(
- "txt_occ_setlabel_authority_certificate_val_select"));
- // Initialize the value from EapQtConfig
- // Select CA Cert automatically is selected by default
- mCaCertAutomatic->setContentWidgetData("checkState", boolToCheckState(mEapConfig.value(
- EapQtConfig::AuthorityCertificateAutomatic).toBool()));
- // connect signal to disable/enable CA cert when CaCertAutomatic changed
- mForm->addConnection(mCaCertAutomatic, SIGNAL(stateChanged(int)), this,
- SLOT(authorityCertAutomaticChanged(int)));
- mGroupItem->appendChild(mCaCertAutomatic);
-
- // Authority certificate comboBox
- mCaCert = new CpSettingFormItemData(HbDataFormModelItem::ComboBoxItem,
- hbTrId("txt_occ_setlabel_authority_certificate"));
-
- // Stored certificate from EAP configuration
- QList<QVariant> storedCertsList = mEapConfig.value(EapQtConfig::AuthorityCertificate).toList();
- EapQtCertificateInfo storedCert;
- if (!storedCertsList.empty() && storedCertsList[0].canConvert<EapQtCertificateInfo> ()) {
- // Stored certificate found, index is still unknown
- storedCert = storedCertsList[0].value<EapQtCertificateInfo> ();
- mCurrentAuthorityCert = UnknownIndex;
- }
- else {
- // no selected certificate, use 'not in use'
- mCurrentAuthorityCert = DefaultIndex;
- }
-
- // Authority certificates found from system
- mAuthorityCerts = mConfigIf->certificateAuthorityCertificates();
-
- // List of comboBox items
- QStringList items;
- // Add 'Not in use' to comboBox list
- items << hbTrId("txt_occ_setlabel_authority_certificate_val_not_in");
- // Add certificates to comboBox list and find index of stored certificate
- for (int i = 0; i < mAuthorityCerts.count(); ++i) {
- items << mAuthorityCerts.at(i).value(EapQtCertificateInfo::CertificateLabel).toString();
- if (mCurrentAuthorityCert == UnknownIndex
- && storedCert.value(EapQtCertificateInfo::SubjectKeyId)
- == mAuthorityCerts.at(i).value(EapQtCertificateInfo::SubjectKeyId)) {
- mCurrentAuthorityCert = i + 1;
- }
- }
- if (mCurrentAuthorityCert == UnknownIndex) {
- // Selected certificate not found in the certificate list
- mCurrentAuthorityCert = DefaultIndex;
- }
-
- // Initialize Authority certificates comboBox
- mCaCert->setContentWidgetData("items", items);
- mCaCert->setContentWidgetData("currentIndex", mCurrentAuthorityCert);
-
- // Get info when authority certificate selection has been changed
- mForm->addConnection(mCaCert, SIGNAL(currentIndexChanged(int)), this,
- SLOT(authorityCertChanged(int)));
- // Dim authority certificate if select automatically checked
- authorityCertAutomaticChanged(mCaCertAutomatic->contentWidgetData("checkState") == Qt::Checked);
- mGroupItem->appendChild(mCaCert);
-}
-
-/*!
- * Creates PEAP version selection comboBox
- */
-void CpEapTlsMethodsUi::createPeapVersion()
-{
- qDebug("CpEapTlsMethodsUi::createPeapVersion()");
- // Create PEAP version comboBox
- mPeapVersion = new CpSettingFormItemData(
- HbDataFormModelItem::ComboBoxItem,
- hbTrId("txt_occ_setlabel_peap_version"));
-
- // Add items to comboBox List
- QStringList items;
- items << hbTrId("txt_occ_setlabel_peap_version_val_peapv0")
- << hbTrId("txt_occ_setlabel_peap_version_val_peapv1")
- << hbTrId("txt_occ_setlabel_peap_version_val_peapv0_or_peapv1");
- mPeapVersion->setContentWidgetData("items", items);
-
- // Initialize PEAP version from EAP configuration
- if (mEapConfig.value(EapQtConfig::PeapVersion0Allowed).toBool()
- && mEapConfig.value(EapQtConfig::PeapVersion1Allowed).toBool()) {
- // PEAPv0 or PEAPv1
- mCurrentPeapVersion = PeapVersionBoth;
- }
- else if (mEapConfig.value(EapQtConfig::PeapVersion1Allowed).toBool()) {
- // PEAPv1
- mCurrentPeapVersion = PeapVersion1;
- }
- else if (mEapConfig.value(EapQtConfig::PeapVersion0Allowed).toBool()) {
- // PEAPv0
- mCurrentPeapVersion = PeapVersion0;
- }
- else {
- qDebug("CpEapTlsMethodsUi::createPeapVersion() - unknown version");
- // Set default (PEAPv0 or PEAPv1)
- mCurrentPeapVersion = PeapVersionBoth;
- }
- mPeapVersion->setContentWidgetData("currentIndex", mCurrentPeapVersion);
-
- // Get info when PEAP version selection has been changed
- mForm->addConnection(mPeapVersion, SIGNAL(currentIndexChanged(int)), this,
- SLOT(peapVersionChanged(int)));
- mGroupItem->appendChild(mPeapVersion);
-}
-
-/*!
- * Creates inner EAP type selection comboBox and configure button
- */
-void CpEapTlsMethodsUi::createInnerMethod()
-{
- qDebug("CpEapTlsMethodsUi::createInnerMethod()");
- // Create inner EAP type selection combo box
- createEapSelector();
- // Create 'configure inner EAP type' button
- EapInnerMethodEntryItemData *eapEntry = NULL;
- eapEntry = new EapInnerMethodEntryItemData(this, *mItemDataHelper,
- hbTrId("txt_occ_button_inner_eap_type"));
- mGroupItem->appendChild(eapEntry);
-}
-
-/*!
- * Creates Combo box for inner EAP type selection
- */
-void CpEapTlsMethodsUi::createEapSelector()
-{
- mInnerEapType = new CpSettingFormItemData(
- HbDataFormModelItem::ComboBoxItem,
- hbTrId("txt_occ_setlabel_inner_eap_type"));
-
- // Selected inner EAP type stored into the database
- QList<QVariant> currentEapList = mEapConfig.value(EapQtConfig::InnerType).toList();
- EapQtPluginHandle readInnerEap;
- if (!currentEapList.empty() && currentEapList[0].canConvert<EapQtPluginHandle> ()) {
- readInnerEap = currentEapList[0].value<EapQtPluginHandle> ();
- mCurrentInnerPlugin = UnknownIndex;
- }
- else {
- // no selected inner EAP type, use the first one
- mCurrentInnerPlugin = DefaultIndex;
- mDefaultPluginInUse = true;
- }
-
- QStringList items;
- for (int i = 0; i < mPlugins.count(); ++i) {
- // Add certificate to comboBox list
- items << mPlugins.at(i).localizationId();
- if (mCurrentInnerPlugin == UnknownIndex && readInnerEap.pluginId()
- == mPlugins.at(i).pluginHandle().pluginId()) {
- // Store index of selected certificate
- mCurrentInnerPlugin = i;
- }
- if (mPlugins.at(i).pluginHandle().pluginId() == EapQtPluginHandle::PluginEapMschapv2) {
- // Store index of EAP-MSCHAPv2 (used as default with PEAP and unauthenticated FAST)
- mInnerEapMschapv2 = i;
- }
- else if (mPlugins.at(i).pluginHandle().pluginId() == EapQtPluginHandle::PluginEapGtc) {
- // Store index of EAP-GTC (Used as default with PEAPv1)
- mInnerEapGtc = i;
- }
- }
- if (mCurrentInnerPlugin == UnknownIndex) {
- // Selected inner EAP type not found
- mCurrentInnerPlugin = DefaultIndex;
- mDefaultPluginInUse = true;
- }
-
- mInnerEapType->setContentWidgetData("items", items);
- mInnerEapType->setContentWidgetData("currentIndex", mCurrentInnerPlugin);
-
- mForm->addConnection(mInnerEapType, SIGNAL(currentIndexChanged(int)), this,
- SLOT(innerEapTypeChanged(int)));
-
- mGroupItem->appendChild(mInnerEapType);
-}
-
-/*!
- * Adds validators.
- *
- * @param modelIndex Model index
- */
-void CpEapTlsMethodsUi::setValidator(const QModelIndex modelIndex)
-{
- qDebug("CpEapTlsMethodsUi::itemActivated");
-
- HbDataFormViewItem *viewItem = qobject_cast<HbDataFormViewItem *>
- (mForm->itemByIndex(modelIndex));
- HbDataFormModelItem *modelItem = mModel->itemFromIndex(modelIndex);
-
- if (modelItem == mUsername) {
- // When username lineEdit is activated (shown) first time, validator is added
- mValidatorUsername.reset(mConfigIf->validatorEap(mPluginInfo.pluginHandle().type(),
- EapQtConfig::Username));
- HbLineEdit *edit = qobject_cast<HbLineEdit *> (viewItem->dataItemContentWidget());
- mValidatorUsername->updateEditor(edit);
- }
- else if (modelItem == mRealm) {
- // When realm lineEdit is activated (shown) first time, validator is added
- mValidatorRealm.reset(mConfigIf->validatorEap(mPluginInfo.pluginHandle().type(),
- EapQtConfig::Realm));
- HbLineEdit *edit = qobject_cast<HbLineEdit *> (viewItem->dataItemContentWidget());
- mValidatorRealm->updateEditor(edit);
- }
-}
-
-/*!
- * Sets default Inner EAP method according PEAP version
- */
-void CpEapTlsMethodsUi::defaultInnerPlugin()
-{
- qDebug("CpEapTlsMethodsUi::defaultInnerPlugin()");
- if (mCurrentPeapVersion == PeapVersion1) {
- mInnerEapType->setContentWidgetData("currentIndex", mInnerEapGtc);
- mCurrentInnerPlugin = mInnerEapGtc;
- }
- else {
- mInnerEapType->setContentWidgetData("currentIndex", mInnerEapMschapv2);
- mCurrentInnerPlugin = mInnerEapMschapv2;
- }
-}
-
-/*!
- * Stores the index of selected user certificate
- *
- * @param value Index of selected certificate.
- */
-void CpEapTlsMethodsUi::userCertChanged(int value)
-{
- qDebug("CpEapTlsMethodsUi::userCertChanged()");
- mCurrentUserCert = value;
-}
-
-/*!
- * Stores the index of selected authority certificate
- *
- * @param value Index of selected certificate.
- */
-void CpEapTlsMethodsUi::authorityCertChanged(int value)
-{
- qDebug("CpEapTlsMethodsUi::authorityCertChanged()");
- mCurrentAuthorityCert = value;
-}
-
-/*!
- * Stores the index of selected PEAP version
- *
- * @param value Index of selected PEAP version.
- */
-void CpEapTlsMethodsUi::peapVersionChanged(int value)
-{
- qDebug("CpEapTlsMethodsUi::peapVersionChanged()");
- mCurrentPeapVersion = value;
- defaultInnerPlugin();
-}
-
-/*!
- * Stores the index of selected inner EAP type
- *
- * @param value Index of selected ineer EAP type.
- */
-void CpEapTlsMethodsUi::innerEapTypeChanged(int value)
-{
- qDebug("CpEapTlsMethodsUi::innerEapTypeChanged()");
- mCurrentInnerPlugin = value;
-}
-
-/*!
- * Dims the username if generate username automatically has been selected.
- *
- * @param state Tells is generate automatically checked.
- */
-void CpEapTlsMethodsUi::usernameAutomaticChanged(int state)
-{
- qDebug("CpEapTlsMethodsUi::usernameAutomaticChanged");
-
- mUsername->setContentWidgetData("enabled", !checkStateToBool(state));
-}
-
-/*!
- * Dims the realm if generate realm automatically has been selected.
- *
- * @param state Tells is generate automatically checked.
- */
-void CpEapTlsMethodsUi::realmAutomaticChanged(int state)
-{
- qDebug("CpEapTlsMethodsUi::realmAutomaticChanged");
-
- mRealm->setContentWidgetData("enabled", !checkStateToBool(state));
-}
-
-/*!
- * Dims the authority certificate if select caCert automatically has been selected.
- *
- * @param state Tells is select automatically checked.
- */
-void CpEapTlsMethodsUi::authorityCertAutomaticChanged(int state)
-{
- qDebug("CpEapTlsMethodsUi::authorityCertAutomaticChanged");
-
- mCaCert->setContentWidgetData("enabled", !checkStateToBool(state));
-}
-
-/*!
- * Converts check box state to boolean.
- *
- * @param state Check box state
- *
- * @return true if Check box is checked, false otherwise.
- */
-bool CpEapTlsMethodsUi::checkStateToBool(const int state)
-{
- return (Qt::Unchecked == state ? false : true);
-}
-
-/*!
- * Converts boolean to check box state.
- *
- * @param state Tells is check box checked.
- *
- * @return Qt check state
- */
-int CpEapTlsMethodsUi::boolToCheckState(const bool state)
-{
- return (false == state ? Qt::Unchecked : Qt::Checked);
-}
-
-/*!
- * This is called when user is about to exit the view.
- * Validates configuration and saves settings.
- * If configuration is not valid prompts question dialog.
- * If user chooses "OK" leaves without saving.
- *
- */
-void CpEapTlsMethodsUi::close()
-{
- qDebug("CpEapTlsMethodsUi::close");
-
- // Validate configuration
- if (validate()) {
- qDebug("CpEapTlsMethodsUi::close - Validation OK");
-
- // Store settings
- if (storeSettings()){
- qDebug("CpEapTlsMethodsUi::close - Settings stored, close view");
- // Close view
- CpBaseSettingView::close();
- }
- else {
- qDebug("CpEapTlsMethodsUi::close - Store settings failed, prompt warning");
- // Store failed. Show error note to user
- QScopedPointer<HbMessageBox> infoBox;
- infoBox.reset(new HbMessageBox(
- HbMessageBox::MessageTypeWarning));
- infoBox->setText(hbTrId("txt_occ_info_unable_to_save_setting"));
- infoBox->clearActions();
- // Connect 'OK'-button to CpBaseSettingView 'aboutToClose'-signal
- HbAction *okAction = new HbAction(hbTrId("txt_common_button_ok"));
- infoBox->addAction(okAction);
- bool connected = connect(
- okAction,
- SIGNAL(triggered()),
- this,
- SIGNAL(aboutToClose()));
- Q_ASSERT(connected);
- infoBox->open();
- infoBox.take();
- }
- }
- else {
- qDebug("CpEapTlsMethodsUi::close - validation failed. Prompt question.");
-
- // Validate failed. Request user to exit anyway
- QScopedPointer<HbMessageBox> messageBox;
- messageBox.reset(new HbMessageBox(
- HbMessageBox::MessageTypeQuestion));
- messageBox->setAttribute(Qt::WA_DeleteOnClose);
- messageBox->setText(hbTrId("txt_occ_info_incomplete_details_return_without_sa"));
- messageBox->clearActions();
- // Connect 'YES'-button to CpBaseSettingView 'aboutToClose'-signal
- HbAction *okAction = new HbAction(hbTrId("txt_common_button_yes"));
- messageBox->addAction(okAction);
- bool connected = connect(
- okAction,
- SIGNAL(triggered()),
- this,
- SIGNAL(aboutToClose()));
- Q_ASSERT(connected);
- // Clicking 'NO'-button does nothing
- HbAction *cancelAction = new HbAction(hbTrId("txt_common_button_no"));
- messageBox->addAction(cancelAction);
- messageBox->setTimeout(HbPopup::NoTimeout);
- messageBox->open();
- messageBox.take();
- }
-}
-
-/*!
- * Validates settings configuration.
- *
- * @return true if configuration OK, false otherwise.
- */
-bool CpEapTlsMethodsUi::validate()
-{
- qDebug("CpEapTlsMethodsUi::validate()");
- bool valid = false;
-
- if (validateUsernameGroup()
- && validateRealmGroup()
- && validateAuthorityCertificate()
- && validateUserCertificate()
- && validateCiphersuites()) {
- valid = true;
- }
-
- return valid;
-}
-
-/*!
- * Validates username checkBox and lineEdit group.
- *
- * @return true if OK, false otherwise.
- */
-bool CpEapTlsMethodsUi::validateUsernameGroup()
-{
- bool status = false;
- // true if generate automatically is checked or given value is valid
- if (mUsernameAutomatic->contentWidgetData("checkState") == Qt::Checked
- || EapQtValidator::StatusOk == mValidatorUsername->validate(
- mUsername->contentWidgetData("text"))) {
- status = true;
- }
- qDebug("CpEapTlsMethodsUi::validateUsernameGroup() - status: %d", status);
- return status;
-}
-
-/*!
- * Validates realm checkBox and lineEdit group.
- *
- * @return true if OK, false otherwise.
- */
-bool CpEapTlsMethodsUi::validateRealmGroup()
-{
- bool status = false;
- // true if generate automatically is checked or given value is valid
- if (mRealmAutomatic->contentWidgetData("checkState") == Qt::Checked
- || EapQtValidator::StatusOk == mValidatorRealm->validate(
- mRealm->contentWidgetData("text"))) {
- status = true;
- }
- qDebug("CpEapTlsMethodsUi::validateRealmGroup() - status: %d", status);
- return status;
-}
-
-/*!
- * Validates authority certificate checkBox and comboBox group.
- *
- * @return true if OK, false otherwise.
- */
-bool CpEapTlsMethodsUi::validateAuthorityCertificate()
-{
- bool status = false;
- //true if select automatically is checked or certificate is selected
- if (mCaCertAutomatic->contentWidgetData("checkState") == Qt::Checked
- || mCurrentAuthorityCert > NotInUseIndex) {
- status = true;
- }
- qDebug("CpEapTlsMethodsUi::validateAuthorityCertificate()- status: %d", status);
- return status;
-}
-
-/*!
- * Validates user certificate selection.
- *
- * @return false if EAP-TLS and no certificate, true otherwise
- */
-bool CpEapTlsMethodsUi::validateUserCertificate()
-{
- bool status = true;
- // false if EAP-TLS and not selected user certificate
- if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTls
- && mCurrentUserCert == NotInUseIndex) {
- status = false;
- }
- qDebug("CpEapTlsMethodsUi::validateUserCertificate() - status: %d", status);
- return status;
-}
-
-/*!
- * Validates cipher suites selection.
- *
- * @return false if no cipher suite is selected, true otherwise
- */
-bool CpEapTlsMethodsUi::validateCiphersuites()
-{
- bool status = true;
- QVariant cipherSuites = mGroupItemCs->ciphersuites();
- QList<QVariant> cipherList = cipherSuites.toList();
- if (cipherList.count() == 0){
- status = false;
- }
- qDebug("CpEapTlsMethodsUi::validateCiphersuites() - status: %d", status);
- return status;
-}
-
-/*!
- * Write PEAP specific values into the EAP configuration
- *
- * @param eapConfig
- */
-void CpEapTlsMethodsUi::setPeapVersion(EapQtConfig &eapConfig)
-{
- qDebug("CpEapTlsMethodsUi::setPeapVersion()");
- if (mCurrentPeapVersion == PeapVersion0) {
- eapConfig.setValue(EapQtConfig::PeapVersion0Allowed, true);
- eapConfig.setValue(EapQtConfig::PeapVersion1Allowed, false);
- }
- else if (mCurrentPeapVersion == PeapVersion1) {
- eapConfig.setValue(EapQtConfig::PeapVersion0Allowed, false);
- eapConfig.setValue(EapQtConfig::PeapVersion1Allowed, true);
- }
- else {
- Q_ASSERT(mCurrentPeapVersion == PeapVersionBoth);
- eapConfig.setValue(EapQtConfig::PeapVersion0Allowed, true);
- eapConfig.setValue(EapQtConfig::PeapVersion1Allowed, true);
- }
-}
-
-/*!
- * Stores settings given via TLS based methods setting UI
- *
- * @return false if saving failed, true otherwise
- */
-bool CpEapTlsMethodsUi::storeSettings()
-{
- qDebug("CpEapTlsMethodsUi::storeSettings");
-
- EapQtConfig eapConfig;
-
- // Store common settings
- qDebug("CpEapTlsMethodsUi::storeSettings - Common settings");
- eapConfig.setValue(EapQtConfig::OuterType, qVariantFromValue(mOuterHandle));
- eapConfig.setValue(EapQtConfig::UsernameAutomatic, checkStateToBool(
- mUsernameAutomatic->contentWidgetData("checkState").toInt()));
- eapConfig.setValue(EapQtConfig::Username, mUsername->contentWidgetData("text"));
- eapConfig.setValue(EapQtConfig::RealmAutomatic, checkStateToBool(
- mRealmAutomatic->contentWidgetData("checkState").toInt()));
- eapConfig.setValue(EapQtConfig::Realm, mRealm->contentWidgetData("text"));
-
- // User certificate
- qDebug("CpEapTlsMethodsUi::storeSettings - User certificate");
- if (mCurrentUserCert > NotInUseIndex) {
- QList<QVariant> userCerts;
- userCerts.append(qVariantFromValue(mUserCerts.at(mCurrentUserCert - 1)));
- // The first item in UI(index 0) is 'not in use'
- eapConfig.setValue(EapQtConfig::UserCertificate, userCerts);
- }
-
- // Authority certificate
- qDebug("CpEapTlsMethodsUi::storeSettings - Authority certificate");
- eapConfig.setValue(EapQtConfig::AuthorityCertificateAutomatic, checkStateToBool(
- mCaCertAutomatic->contentWidgetData("checkState").toInt()));
- if (mCurrentAuthorityCert > NotInUseIndex && !checkStateToBool(
- mCaCertAutomatic->contentWidgetData("checkState").toInt())) {
- QList<QVariant> authorityCerts;
- authorityCerts.append(qVariantFromValue(mAuthorityCerts.at(mCurrentAuthorityCert - 1)));
- // The first item in UI(index 0) is 'not in use'
- eapConfig.setValue(EapQtConfig::AuthorityCertificate, authorityCerts);
- }
-
- // Inner EAP method (Not valid for EAP-TLS)
- if (!(mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginEapTls)) {
- qDebug("CpEapTlsMethodsUi::storeSettings - Inner EAP method");
- QList<QVariant> innerEaps;
- innerEaps.append(qVariantFromValue(mPlugins.at(mCurrentInnerPlugin).pluginHandle()));
- eapConfig.setValue(EapQtConfig::InnerType, innerEaps);
- }
-
- // Cipher suites
- qDebug("CpEapTlsMethodsUi::storeSettings - Cipher suites");
- eapConfig.setValue(EapQtConfig::CipherSuites, mGroupItemCs->ciphersuites());
-
- // PEAP version (valid only for PEAP)
- if (mPluginInfo.pluginHandle() == EapQtPluginHandle::PluginPeap) {
- setPeapVersion(eapConfig);
- }
-
- // Save configuration
- if (!mConfigIf->saveConfiguration(mPluginInfo.pluginHandle(), eapConfig)) {
- qDebug("CpEapTlsMethodsUi::storeSettings - configuration saving failed.");
- return false;
- }
- return true;
-}
-