connectivity/source/drivers/mysql/YUser.cxx           |    2 -
 external/mysqlcppconn/UnpackedTarball_mysqlcppconn.mk |    1 
 external/mysqlcppconn/patches/retrieve_grants.patch.1 |   31 ++++++++++++++++++
 3 files changed, 33 insertions(+), 1 deletion(-)

New commits:
commit bfefe113f69031ff3c3196858bd8dfd11add44ac
Author: Julien Nabet <serval2...@yahoo.fr>
Date:   Fri Dec 20 22:17:50 2013 +0100

    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/7155
    Reviewed-by: Lionel Elie Mamane <lio...@mamane.lu>
    Tested-by: Lionel Elie Mamane <lio...@mamane.lu>

diff --git a/connectivity/source/drivers/mysql/YUser.cxx 
b/connectivity/source/drivers/mysql/YUser.cxx
index d44c345..aff9841 100644
--- a/connectivity/source/drivers/mysql/YUser.cxx
+++ b/connectivity/source/drivers/mysql/YUser.cxx
@@ -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" );
 
diff --git a/external/mysqlcppconn/UnpackedTarball_mysqlcppconn.mk 
b/external/mysqlcppconn/UnpackedTarball_mysqlcppconn.mk
index ae0f267..dd2b98e 100644
--- a/external/mysqlcppconn/UnpackedTarball_mysqlcppconn.mk
+++ b/external/mysqlcppconn/UnpackedTarball_mysqlcppconn.mk
@@ -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 --git a/external/mysqlcppconn/patches/retrieve_grants.patch.1 
b/external/mysqlcppconn/patches/retrieve_grants.patch.1
new file mode 100644
index 0000000..eb63cff
--- /dev/null
+++ b/external/mysqlcppconn/patches/retrieve_grants.patch.1
@@ -0,0 +1,31 @@
+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);
+                                       }
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to