2019-08-24 20:47:32 +02:00
|
|
|
|
#include "SslModeModel.h"
|
|
|
|
|
|
|
2026-10-26 14:47:19 +01:00
|
|
|
|
#include <QStringList>
|
|
|
|
|
|
|
|
|
|
|
|
namespace {
|
|
|
|
|
|
|
|
|
|
|
|
const QStringList sslModes = {QString(), "disable", "allow", "prefer", "require", "verify-ca", "verify-full"};
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-08-24 20:47:32 +02:00
|
|
|
|
SslModeModel::SslModeModel(QObject *parent)
|
|
|
|
|
|
: QAbstractListModel(parent)
|
|
|
|
|
|
{}
|
|
|
|
|
|
|
2026-10-26 14:47:19 +01:00
|
|
|
|
int SslModeModel::rowCount(const QModelIndex &parent) const
|
2019-08-24 20:47:32 +02:00
|
|
|
|
{
|
2026-10-26 14:47:19 +01:00
|
|
|
|
return parent.isValid() ? 0 : static_cast<int>(sslModes.size());
|
2019-08-24 20:47:32 +02:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
int SslModeModel::columnCount(const QModelIndex &) const
|
|
|
|
|
|
{
|
|
|
|
|
|
return ColCount;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QVariant SslModeModel::data(const QModelIndex &index, int role) const
|
|
|
|
|
|
{
|
2026-10-26 14:47:19 +01:00
|
|
|
|
if (!index.isValid() || index.model() != this || index.row() < 0 || index.row() >= rowCount()
|
|
|
|
|
|
|| index.column() < 0 || index.column() >= ColCount)
|
|
|
|
|
|
return {};
|
|
|
|
|
|
|
|
|
|
|
|
if (index.column() == Name) {
|
|
|
|
|
|
const auto &mode = sslModes.at(index.row());
|
|
|
|
|
|
if (role == Qt::UserRole)
|
|
|
|
|
|
return mode;
|
|
|
|
|
|
if (role == Qt::DisplayRole || role == Qt::EditRole)
|
|
|
|
|
|
return index.row() == 0 ? tr("Default") : mode;
|
|
|
|
|
|
return {};
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2019-08-24 20:47:32 +02:00
|
|
|
|
QVariant v;
|
|
|
|
|
|
if (role == Qt::DisplayRole) {
|
|
|
|
|
|
switch (index.column()) {
|
2026-10-26 14:47:19 +01:00
|
|
|
|
case Description:
|
2019-08-24 20:47:32 +02:00
|
|
|
|
switch(index.row()) {
|
|
|
|
|
|
case 0:
|
2026-10-26 14:47:19 +01:00
|
|
|
|
v = tr("use the PostgreSQL default SSL mode");
|
2019-08-24 20:47:32 +02:00
|
|
|
|
break;
|
|
|
|
|
|
case 1:
|
|
|
|
|
|
v = tr("try a non encrypted connection only");
|
|
|
|
|
|
break;
|
2026-10-26 14:47:19 +01:00
|
|
|
|
case 2:
|
2019-08-24 20:47:32 +02:00
|
|
|
|
v = tr("try no encryption first then try encrypted");
|
|
|
|
|
|
break;
|
2026-10-26 14:47:19 +01:00
|
|
|
|
case 3:
|
2019-08-24 20:47:32 +02:00
|
|
|
|
v = tr("try encrypted first then not encrypted");
|
|
|
|
|
|
break;
|
2026-10-26 14:47:19 +01:00
|
|
|
|
case 4:
|
2019-08-24 20:47:32 +02:00
|
|
|
|
v = tr("require an encrypted connection");
|
|
|
|
|
|
break;
|
2026-10-26 14:47:19 +01:00
|
|
|
|
case 5:
|
2019-08-24 20:47:32 +02:00
|
|
|
|
v = tr("verify encryption certificate has a valid signature");
|
|
|
|
|
|
break;
|
2026-10-26 14:47:19 +01:00
|
|
|
|
case 6:
|
2019-08-24 20:47:32 +02:00
|
|
|
|
v = tr("verify encryption certificate has a valid signature and matches the host");
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return v;
|
|
|
|
|
|
}
|