2017-02-18 12:05:48 +01:00
|
|
|
|
#include "RolesTableModel.h"
|
2018-12-16 10:17:59 +01:00
|
|
|
|
#include "catalog/PgAuthIdContainer.h"
|
2017-02-18 12:05:48 +01:00
|
|
|
|
|
|
|
|
|
|
RolesTableModel::RolesTableModel(QObject *parent)
|
2017-12-09 10:45:13 +01:00
|
|
|
|
: BaseTableModel(parent)
|
2017-02-18 12:05:48 +01:00
|
|
|
|
{
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-12-09 20:21:22 +01:00
|
|
|
|
void RolesTableModel::setRoleList(std::shared_ptr<const PgAuthIdContainer> roles)
|
2017-02-18 12:05:48 +01:00
|
|
|
|
{
|
|
|
|
|
|
beginResetModel();
|
|
|
|
|
|
m_roles = roles;
|
|
|
|
|
|
endResetModel();
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QVariant RolesTableModel::headerData(int section, Qt::Orientation orientation, int role) const
|
|
|
|
|
|
{
|
|
|
|
|
|
QVariant v;
|
|
|
|
|
|
if (orientation == Qt::Horizontal) {
|
|
|
|
|
|
if (role == Qt::DisplayRole) {
|
|
|
|
|
|
switch (section) {
|
|
|
|
|
|
case NameCol:
|
|
|
|
|
|
v = tr("Name");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case SuperCol:
|
|
|
|
|
|
v = tr("Super");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case InheritCol:
|
|
|
|
|
|
v = tr("Inherit");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case CreateRoleCol:
|
|
|
|
|
|
v = tr("Create role");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case CreateDBCol:
|
|
|
|
|
|
v = tr("Create DB");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case CanLoginCol:
|
|
|
|
|
|
v = tr("Can login");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ReplicationCol:
|
|
|
|
|
|
v = tr("Replication");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case BypassRlsCol:
|
|
|
|
|
|
v = tr("Bypass RLS");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ConnlimitCol:
|
|
|
|
|
|
v = tr("Connection limit");
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ValidUntilCol:
|
|
|
|
|
|
v = tr("Valid until");
|
|
|
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return v;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-12-16 21:41:46 +01:00
|
|
|
|
int RolesTableModel::rowCount(const QModelIndex &/*parent*/) const
|
2017-02-18 12:05:48 +01:00
|
|
|
|
{
|
|
|
|
|
|
int result = 0;
|
|
|
|
|
|
if (m_roles) {
|
|
|
|
|
|
result = m_roles->count();
|
|
|
|
|
|
}
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-12-16 21:41:46 +01:00
|
|
|
|
int RolesTableModel::columnCount(const QModelIndex &/*parent*/) const
|
2017-02-18 12:05:48 +01:00
|
|
|
|
{
|
|
|
|
|
|
int result = 10;
|
|
|
|
|
|
// if (parent.isValid())
|
|
|
|
|
|
// return 10;
|
|
|
|
|
|
|
|
|
|
|
|
return result;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2017-12-09 10:45:13 +01:00
|
|
|
|
Oid RolesTableModel::getType(int column) const
|
|
|
|
|
|
{
|
|
|
|
|
|
using namespace Pgsql;
|
|
|
|
|
|
|
|
|
|
|
|
Oid oid;
|
|
|
|
|
|
switch (column) {
|
|
|
|
|
|
case NameCol:
|
2018-09-09 18:52:32 +02:00
|
|
|
|
oid = varchar_oid;
|
2017-12-09 10:45:13 +01:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case ReplicationCol:
|
|
|
|
|
|
case BypassRlsCol:
|
|
|
|
|
|
case CanLoginCol:
|
|
|
|
|
|
case CreateDBCol:
|
|
|
|
|
|
case CreateRoleCol:
|
|
|
|
|
|
case InheritCol:
|
|
|
|
|
|
case SuperCol:
|
2018-09-09 18:52:32 +02:00
|
|
|
|
oid = bool_oid;
|
2017-12-09 10:45:13 +01:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case ConnlimitCol:
|
2018-09-09 18:52:32 +02:00
|
|
|
|
oid = int4_oid;
|
2017-12-09 10:45:13 +01:00
|
|
|
|
break;
|
|
|
|
|
|
|
|
|
|
|
|
case ValidUntilCol:
|
2018-09-09 18:52:32 +02:00
|
|
|
|
oid = timestamp_oid;
|
2017-12-09 10:45:13 +01:00
|
|
|
|
break;
|
|
|
|
|
|
default:
|
|
|
|
|
|
oid = InvalidOid;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return oid;
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
QVariant RolesTableModel::getData(const QModelIndex &index) const
|
2017-02-18 12:05:48 +01:00
|
|
|
|
{
|
|
|
|
|
|
QVariant v;
|
|
|
|
|
|
if (m_roles) {
|
|
|
|
|
|
const PgAuthId &authid = m_roles->getByIdx(index.row());
|
2017-12-09 10:45:13 +01:00
|
|
|
|
switch (index.column()) {
|
|
|
|
|
|
case NameCol:
|
|
|
|
|
|
v = authid.name;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case SuperCol:
|
|
|
|
|
|
// todo lookup role name
|
|
|
|
|
|
v = authid.super;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case InheritCol:
|
|
|
|
|
|
// todo lookup encoding name
|
|
|
|
|
|
v = authid.inherit;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case CreateRoleCol:
|
|
|
|
|
|
v = authid.createRole;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case CreateDBCol:
|
|
|
|
|
|
v = authid.createDB;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case CanLoginCol:
|
|
|
|
|
|
v = authid.canlogin;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ReplicationCol:
|
|
|
|
|
|
v = authid.replication;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case BypassRlsCol:
|
|
|
|
|
|
v = authid.bypassRls;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ConnlimitCol:
|
|
|
|
|
|
// todo lookup tablespace name
|
|
|
|
|
|
v = authid.connLimit;
|
|
|
|
|
|
break;
|
|
|
|
|
|
case ValidUntilCol:
|
|
|
|
|
|
v = authid.validUntil;
|
|
|
|
|
|
break;
|
2017-02-18 12:05:48 +01:00
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
return v;
|
|
|
|
|
|
}
|