[pgadmin-hackers] SVN Commit by dpage: r7575 - in branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US: . pg
Author: dpage Date: 2009-01-30 09:47:09 + (Fri, 30 Jan 2009) New Revision: 7575 Revision summary: http://svn.pgadmin.org/cgi-bin/viewcvs.cgi/?rev=7575&view=rev Log: Update docs for 8.2.12 Added: branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/release-7-4-24.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/release-8-0-20.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/release-8-1-16.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/release-8-2-11.html Modified: branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/admin.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-clusterdb.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-createdb.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-createlang.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-createuser.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-dropdb.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-droplang.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-dropuser.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-ecpg.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-initdb.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-ipcclean.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pg-ctl.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pg-dumpall.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pgconfig.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pgcontroldata.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pgdump.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pgresetxlog.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-pgrestore.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-postgres.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-postmaster.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-psql.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-reindexdb.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/app-vacuumdb.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/appendixes.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/applevel-consistency.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/arrays.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/auth-methods.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/backup-file.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/backup.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/biblio.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/bki-commands.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/bki-example.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/bki-structure.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/bki.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/bug-reporting.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-aggregate.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-am.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-amop.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-amproc.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-attrdef.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-attribute.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-auth-members.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-authid.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-autovacuum.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-cast.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-class.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-constraint.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-conversion.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-database.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-depend.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-description.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-index.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-inherits.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-language.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-largeobject.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-listener.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-namespace.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-opclass.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-operator.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-pltemplate.html branches/REL-1_6_0_PATCHES/pgadmin3/docs/en_US/pg/catalog-pg-proc.html branches/RE
Re: [pgadmin-hackers] PATCH: Column Level Privileges
On Thu, Jan 29, 2009 at 5:17 PM, Ashesh Vashi wrote: > Hi All, > > Please find the patch for Column Level Privileges support. > I have also attached some of the test-cases for it. Hi Ashesh, Couple of minor issues/questions: - Why didn't you derive the dialog from dlgSecurityProperty? I assume it would have been too messy as it's already derived from dlgTypeProperty? - As a general rule, we disable controls not relevant to a particular version of Postgres. We should do the same with this tab - disable the controls rather than hide them on servers < 8.4. - Can we lose the comment above the column permissions in the reverse engineered SQL please? We don't add similar ones for other additional queries so we shouldn't here (though perhaps in the future we might add such comments everywhere that is appropriate). - Not just an issue with your code, but also the existing privilege tabs - could you please tweak the column sizes of the list control such that the headers can be read by default? Thanks! -- Dave Page EnterpriseDB UK: http://www.enterprisedb.com -- Sent via pgadmin-hackers mailing list (pgadmin-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgadmin-hackers
Re: [pgadmin-hackers] PATCH: Column Level Privileges
Hi Dave, Couple of minor issues/questions: - Why didn't you derive the dialog from dlgSecurityProperty? I assume it would have been too messy as it's already derived from dlgTypeProperty? dlgSecurityProperty and dlgTypeProperty both are derived from dlgPropery. If we derive the dlgColumn from both of them, it will leads to the famous Diamond problem. We can avoid this problem by multiple inheritance using virtual base class. And hence, it will increase the complexity. :( - As a general rule, we disable controls not relevant to a particular version of Postgres. We should do the same with this tab - disable the controls rather than hide them on servers < 8.4. sure. - Can we lose the comment above the column permissions in the reverse engineered SQL please? We don't add similar ones for other additional queries so we shouldn't here (though perhaps in the future we might add such comments everywhere that is appropriate). Sure. - Not just an issue with your code, but also the existing privilege tabs - could you please tweak the column sizes of the list control such that the headers can be read by default? sure. Thanks! I will update you as soon as possible. -- Thanks & Regards, Ashesh Vashi EnterpriseDB INDIA: http://www.enterprisedb.com
Re: [pgadmin-hackers] PATCH: Column Level Privileges
Hi Dave, Dave Page wrote: - As a general rule, we disable controls not relevant to a particular version of Postgres. We should do the same with this tab - disable the controls rather than hide them on servers < 8.4. Done - Can we lose the comment above the column permissions in the reverse engineered SQL please? We don't add similar ones for other additional queries so we shouldn't here (though perhaps in the future we might add such comments everywhere that is appropriate). Done. - Not just an issue with your code, but also the existing privilege tabs - could you please tweak the column sizes of the list control such that the headers can be read by default? Done. Changed the column size to 70. I think - it should fit in all the platform. Please find the updated patch. -- Thanks & Regards, Ashesh Vashi EnterpriseDB INDIA: http://www.enterprisedb.com Index: ctl/ctlSecurityPanel.cpp === --- ctl/ctlSecurityPanel.cpp (revision 7575) +++ ctl/ctlSecurityPanel.cpp (working copy) @@ -13,6 +13,7 @@ // wxWindows headers #include #include +#include // App headers #include "pgAdmin3.h" @@ -75,7 +76,9 @@ itemSizer1->AddGrowableCol(0); itemSizer1->AddGrowableRow(0); lbPrivileges = new ctlListView(this, CTL_LBPRIV, wxDefaultPosition, wxDefaultSize, wxSUNKEN_BORDER|wxLC_REPORT); -lbPrivileges->CreateColumns(imgList, _("User/Group"), _("Privileges"), -1); +lbPrivileges->SetImageList(imgList, wxIMAGE_LIST_SMALL); +lbPrivileges->AddColumn(_("User/Group"), 70, wxLIST_FORMAT_LEFT); +lbPrivileges->AddColumn(_("Privileges"), 70, wxLIST_FORMAT_LEFT); itemSizer1->Add(lbPrivileges, 0, wxEXPAND|wxALIGN_CENTRE_VERTICAL|wxTOP|wxLEFT|wxRIGHT, 4); item0->Add(itemSizer1, 0, wxEXPAND|wxALL, 5); @@ -157,7 +160,7 @@ } -wxString ctlSecurityPanel::GetGrant(const wxString &allPattern, const wxString &grantObject, wxArrayString *currentAcl) +wxString ctlSecurityPanel::GetGrant(const wxString &allPattern, const wxString &grantObject, wxArrayString *currentAcl, wxString column) { wxArrayString tmpAcl; if (currentAcl) @@ -198,7 +201,7 @@ { if (privPartiallyAssigned) sql += pgObject::GetPrivileges(allPattern, wxT(""), grantObject, name); -sql += pgObject::GetPrivileges(allPattern, value, grantObject, name); +sql += pgObject::GetPrivileges(allPattern, value, grantObject, name, column); } } @@ -210,7 +213,7 @@ name = wxT("GROUP ") + qtIdent(name.Mid(6)); else name=qtIdent(name); -sql += pgObject::GetPrivileges(allPattern, wxT(""), grantObject, name); +sql += pgObject::GetPrivileges(allPattern, wxT(""), grantObject, name, column); } return sql; } Index: include/ctl/ctlSecurityPanel.h === --- include/ctl/ctlSecurityPanel.h (revision 7575) +++ include/ctl/ctlSecurityPanel.h (working copy) @@ -46,7 +46,11 @@ ctlComboBox *cbGroups; wxStaticText *stGroup; void SetConnection(pgConn *conn); -wxString GetGrant(const wxString &allPattern, const wxString &grantObject, wxArrayString *currentAcl=0); + +/* + * Except column level privileges, column will be always an empty string in any case + */ +wxString GetGrant(const wxString &allPattern, const wxString &grantObject, wxArrayString *currentAcl=0, wxString column = wxEmptyString); bool DisablePrivilege(const wxString &priv); protected: wxNotebook *nbNotebook; Index: include/schema/pgObject.h === --- include/schema/pgObject.h (revision 7575) +++ include/schema/pgObject.h (working copy) @@ -47,8 +47,13 @@ pgObject(pgaFactory &factory, const wxString& newName=wxEmptyString); public: - -static wxString GetPrivileges(const wxString& allPattern, const wxString& acl, const wxString& grantObject, const wxString& user); +/* +* Except column level privileges, column will be always an empty +* string in any case +*/ +static wxString GetPrivileges(const wxString& allPattern, + const wxString& acl, const wxString& grantObject, + const wxString& user, const wxString& column=wxT("")); static int GetTypeId(const wxString &typname); pgaFactory *GetFactory() { return factory; } @@ -97,7 +102,11 @@ virtual wxMenu *GetNewMenu(); virtual wxString GetSql(ctlTree *browser) { return wxT(""); } -wxString GetGrant(const wxString& allPattern, const wxString& grantFor=wxT("")); +/* +* Except column level privileges, column will be always an empty +* string in any case +*/ +wxString GetGrant(const wxString& allPattern, const wxString& grantFor=wxT(""), const wxString& column=wxT("")); wxString GetCommentSql(); wxString GetO