File indexing completed on 2024-04-14 03:57:33

0001 /*
0002     SPDX-FileCopyrightText: 2012-2013 Jan Grulich <jgrulich@redhat.com>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "cdmasetting.h"
0008 #include "cdmasetting_p.h"
0009 
0010 #include <QDebug>
0011 
0012 NetworkManager::CdmaSettingPrivate::CdmaSettingPrivate()
0013     : name(NM_SETTING_CDMA_SETTING_NAME)
0014     , passwordFlags(Setting::None)
0015 {
0016 }
0017 
0018 NetworkManager::CdmaSetting::CdmaSetting()
0019     : Setting(Setting::Cdma)
0020     , d_ptr(new CdmaSettingPrivate())
0021 {
0022 }
0023 
0024 NetworkManager::CdmaSetting::CdmaSetting(const Ptr &other)
0025     : Setting(other)
0026     , d_ptr(new CdmaSettingPrivate())
0027 {
0028     setUsername(other->username());
0029     setNumber(other->number());
0030     setPassword(other->password());
0031     setPasswordFlags(other->passwordFlags());
0032 }
0033 
0034 NetworkManager::CdmaSetting::~CdmaSetting()
0035 {
0036     delete d_ptr;
0037 }
0038 
0039 QString NetworkManager::CdmaSetting::name() const
0040 {
0041     Q_D(const CdmaSetting);
0042 
0043     return d->name;
0044 }
0045 
0046 void NetworkManager::CdmaSetting::setNumber(const QString &number)
0047 {
0048     Q_D(CdmaSetting);
0049 
0050     d->number = number;
0051 }
0052 
0053 QString NetworkManager::CdmaSetting::number() const
0054 {
0055     Q_D(const CdmaSetting);
0056 
0057     return d->number;
0058 }
0059 
0060 void NetworkManager::CdmaSetting::setUsername(const QString &username)
0061 {
0062     Q_D(CdmaSetting);
0063 
0064     d->username = username;
0065 }
0066 
0067 QString NetworkManager::CdmaSetting::username() const
0068 {
0069     Q_D(const CdmaSetting);
0070 
0071     return d->username;
0072 }
0073 
0074 void NetworkManager::CdmaSetting::setPassword(const QString &password)
0075 {
0076     Q_D(CdmaSetting);
0077 
0078     d->password = password;
0079 }
0080 
0081 QString NetworkManager::CdmaSetting::password() const
0082 {
0083     Q_D(const CdmaSetting);
0084 
0085     return d->password;
0086 }
0087 
0088 void NetworkManager::CdmaSetting::setPasswordFlags(NetworkManager::Setting::SecretFlags flags)
0089 {
0090     Q_D(CdmaSetting);
0091 
0092     d->passwordFlags = flags;
0093 }
0094 
0095 NetworkManager::Setting::SecretFlags NetworkManager::CdmaSetting::passwordFlags() const
0096 {
0097     Q_D(const CdmaSetting);
0098 
0099     return d->passwordFlags;
0100 }
0101 
0102 QStringList NetworkManager::CdmaSetting::needSecrets(bool requestNew) const
0103 {
0104     QStringList secrets;
0105     if (!username().isEmpty()) {
0106         if ((password().isEmpty() || requestNew) && !passwordFlags().testFlag(NotRequired)) {
0107             secrets << QLatin1String(NM_SETTING_CDMA_PASSWORD);
0108         }
0109     }
0110 
0111     return secrets;
0112 }
0113 
0114 void NetworkManager::CdmaSetting::secretsFromMap(const QVariantMap &secrets)
0115 {
0116     if (secrets.contains(QLatin1String(NM_SETTING_CDMA_PASSWORD))) {
0117         setPassword(secrets.value(QLatin1String(NM_SETTING_CDMA_PASSWORD)).toString());
0118     }
0119 }
0120 
0121 QVariantMap NetworkManager::CdmaSetting::secretsToMap() const
0122 {
0123     QVariantMap secrets;
0124 
0125     if (!password().isEmpty()) {
0126         secrets.insert(QLatin1String(NM_SETTING_CDMA_PASSWORD), password());
0127     }
0128 
0129     return secrets;
0130 }
0131 
0132 void NetworkManager::CdmaSetting::fromMap(const QVariantMap &setting)
0133 {
0134     if (setting.contains(QLatin1String(NM_SETTING_CDMA_NUMBER))) {
0135         setNumber(setting.value(QLatin1String(NM_SETTING_CDMA_NUMBER)).toString());
0136     }
0137 
0138     if (setting.contains(QLatin1String(NM_SETTING_CDMA_USERNAME))) {
0139         setUsername(setting.value(QLatin1String(NM_SETTING_CDMA_USERNAME)).toString());
0140     }
0141 
0142     // SECRETS
0143     if (setting.contains(QLatin1String(NM_SETTING_CDMA_PASSWORD))) {
0144         setPassword(setting.value(QLatin1String(NM_SETTING_CDMA_PASSWORD)).toString());
0145     }
0146 
0147     if (setting.contains(QLatin1String(NM_SETTING_CDMA_PASSWORD_FLAGS))) {
0148         setPasswordFlags((Setting::SecretFlags)setting.value(QLatin1String(NM_SETTING_CDMA_PASSWORD_FLAGS)).toInt());
0149     }
0150 }
0151 
0152 QVariantMap NetworkManager::CdmaSetting::toMap() const
0153 {
0154     QVariantMap setting;
0155 
0156     if (!number().isEmpty()) {
0157         setting.insert(QLatin1String(NM_SETTING_CDMA_NUMBER), number());
0158     }
0159 
0160     if (!username().isEmpty()) {
0161         setting.insert(QLatin1String(NM_SETTING_CDMA_USERNAME), username());
0162     }
0163 
0164     // SECRETS
0165     if (!password().isEmpty()) {
0166         setting.insert(QLatin1String(NM_SETTING_CDMA_PASSWORD), password());
0167     }
0168 
0169     if (passwordFlags() != None) {
0170         setting.insert(QLatin1String(NM_SETTING_CDMA_PASSWORD_FLAGS), (int)passwordFlags());
0171     }
0172 
0173     return setting;
0174 }
0175 
0176 QDebug NetworkManager::operator<<(QDebug dbg, const NetworkManager::CdmaSetting &setting)
0177 {
0178     dbg.nospace() << "type: " << setting.typeAsString(setting.type()) << '\n';
0179     dbg.nospace() << "initialized: " << !setting.isNull() << '\n';
0180 
0181     dbg.nospace() << NM_SETTING_CDMA_NUMBER << ": " << setting.number() << '\n';
0182     dbg.nospace() << NM_SETTING_CDMA_USERNAME << ": " << setting.username() << '\n';
0183     dbg.nospace() << NM_SETTING_CDMA_PASSWORD << ": " << setting.password() << '\n';
0184     dbg.nospace() << NM_SETTING_CDMA_PASSWORD_FLAGS << ": " << setting.passwordFlags() << '\n';
0185 
0186     return dbg.maybeSpace();
0187 }