Kaydet (Commit) bfefe113 authored tarafından Julien Nabet's avatar Julien Nabet Kaydeden (comit) Lionel Elie Mamane

User grants debug Mysql part: retrieve IS_GRANTABLE + update column privs

(See http://dev.mysql.com/doc/refman/5.6/en/grant-table-structure.html
Table 6.7. Set-Type Privilege Column Values Section)

Change-Id: I6173ba0df84f722a872afa59d7d7dc9eefe3e368
Reviewed-on: https://gerrit.libreoffice.org/7155Reviewed-by: 's avatarLionel Elie Mamane <lionel@mamane.lu>
Tested-by: 's avatarLionel Elie Mamane <lionel@mamane.lu>
üst 491b348a
......@@ -126,7 +126,7 @@ void OMySQLUser::findPrivilegesAndGrantPrivileges(const OUString& objName, sal_I
static const OUString sREAD( "READ" );
static const OUString sCREATE( "CREATE" );
static const OUString sALTER( "ALTER" );
static const OUString sREFERENCE( "REFERENCE" );
static const OUString sREFERENCE( "REFERENCES" );
static const OUString sDROP( "DROP" );
static const OUString sYes( "YES" );
......
......@@ -18,6 +18,7 @@ $(eval $(call gb_UnpackedTarball_add_file,mysqlcppconn,driver/nativeapi/binding_
$(eval $(call gb_UnpackedTarball_add_patches,mysqlcppconn,\
external/mysqlcppconn/patches/mysql-connector-c++-1.1.0.patch \
external/mysqlcppconn/patches/default_to_protocol_tcp.patch \
external/mysqlcppconn/patches/retrieve_grants.patch.1 \
))
# vim: set noet sw=4 ts=4:
diff -ur mysqlcppconn.org/driver/mysql_metadata.cpp mysqlcppconn/driver/mysql_metadata.cpp
--- mysqlcppconn.org/driver/mysql_metadata.cpp 2013-12-20 22:12:07.044698692 +0100
+++ mysqlcppconn/driver/mysql_metadata.cpp 2013-12-20 22:14:56.320394472 +0100
@@ -3633,12 +3633,14 @@
- sql::SQLString strAllPrivs("ALTER, DELETE, DROP, INDEX, INSERT, LOCK TABLES, SELECT, UPDATE");
+ sql::SQLString strAllPrivs("SELECT, INSERT, UPDATE, DELETE, CREATE, DROPT, GRANT, REFERENCES, INDEX, ALTER, CREATE VIEW, SHOW VIEW, TRIGGER");
sql::SQLString cQuote(getIdentifierQuoteString());
+ size_t posIsGrantable = sql::SQLString::npos;
while (rs->next() ) {
sql::SQLString aGrant = rs->getString(1);
aGrant = aGrant.replace(0, 6, "");
size_t pos = aGrant.find("ALL PRIVILEGES");
+ posIsGrantable = aGrant.find("WITH GRANT OPTION");
if (pos != sql::SQLString::npos) {
aGrant = aGrant.replace(pos, sizeof("ALL PRIVILEGES") - 1, strAllPrivs);
@@ -3737,7 +3739,10 @@
rs_data_row.push_back(""); // GRANTOR
rs_data_row.push_back(getUserName()); // GRANTEE
rs_data_row.push_back(privToken); // PRIVILEGE
- rs_data_row.push_back(""); // IS_GRANTABLE - ToDo maybe here WITH GRANT OPTION??
+ if (posIsGrantable != sql::SQLString::npos)
+ rs_data_row.push_back("YES");
+ else
+ rs_data_row.push_back(""); // IS_GRANTABLE
rs_data->push_back(rs_data_row);
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment