Add view MAINTAIN privilege

Добавлена поддержка отображения новой привелегии MAINTAIN.
This commit is contained in:
lsv 2024-12-27 14:27:18 +05:00 committed by lsv
parent 3bad8c07f3
commit 38f4510342
9 changed files with 37 additions and 13 deletions

View file

@ -26,7 +26,7 @@
#include <wx/arrimpl.cpp>
defaultPrivilegesOn g_defPrivTables('r', wxT("Tables"), wxT("arwdDxt")),
defaultPrivilegesOn g_defPrivTables17('r', wxT("Tables"), wxT("arwdDxtm")), g_defPrivTables('r', wxT("Tables"), wxT("arwdDxt")),
g_defPrivSequences('S', wxT("Sequences"), wxT("rwU")),
g_defPrivFunctions('f', wxT("Functions"), wxT("X")),
g_defPrivTypes('T', wxT("Types"), wxT("U"));
@ -44,8 +44,10 @@ ctlDefaultSecurityPanel::ctlDefaultSecurityPanel(pgConn *conn, wxNotebook *nb, w
mainSizer->AddGrowableRow(0);
nbNotebook = new wxNotebook(this, -1, wxDefaultPosition, wxDefaultSize, 0, _("Default ACLs"));
m_defPrivOnTablesPanel = new ctlDefaultPrivilegesPanel(this, nbNotebook, g_defPrivTables, imgList);
if (conn->BackendMinimumVersion(17, 0))
m_defPrivOnTablesPanel = new ctlDefaultPrivilegesPanel(this, nbNotebook, g_defPrivTables17, imgList);
else
m_defPrivOnTablesPanel = new ctlDefaultPrivilegesPanel(this, nbNotebook, g_defPrivTables, imgList);
m_defPrivOnSeqsPanel = new ctlDefaultPrivilegesPanel(this, nbNotebook, g_defPrivSequences, imgList);
m_defPrivOnFuncsPanel = new ctlDefaultPrivilegesPanel(this, nbNotebook, g_defPrivFunctions, imgList);
if (conn->BackendMinimumVersion(9, 2))

View file

@ -43,6 +43,7 @@ BEGIN_EVENT_TABLE(ctlSecurityPanel, wxPanel)
EVT_CHECKBOX(CTL_PRIVCB + 12, ctlSecurityPanel::OnPrivCheck)
EVT_CHECKBOX(CTL_PRIVCB + 14, ctlSecurityPanel::OnPrivCheck)
EVT_CHECKBOX(CTL_PRIVCB + 16, ctlSecurityPanel::OnPrivCheck)
EVT_CHECKBOX(CTL_PRIVCB + 18, ctlSecurityPanel::OnPrivCheck) //MAINTAIN
END_EVENT_TABLE();
DEFINE_LOCAL_EVENT_TYPE(EVT_SECURITYPANEL_CHANGE)
@ -160,6 +161,11 @@ void ctlSecurityPanel::SetConnection(pgConn *conn)
connection = conn;
if (connection && stGroup && connection->BackendMinimumVersion(8, 1))
stGroup->SetLabel(_("Role"));
if (connection && !connection->BackendMinimumVersion(17, 0))
{
DisablePrivilege("MAINTAIN");
;
}
}
wxString ctlSecurityPanel::GetUserPrivileges()