aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorstuconnolly <stuart02@gmail.com>2010-03-23 13:30:26 +0000
committerstuconnolly <stuart02@gmail.com>2010-03-23 13:30:26 +0000
commit92b9f5d4c025c6bd50367d6a2e9b39e257769107 (patch)
tree89951e7bee578a1e9f25c177ed630df31ef98473
parent6d72a0d3c3a047ce952e0e78a1e5232eb7f15be3 (diff)
downloadsequelpro-92b9f5d4c025c6bd50367d6a2e9b39e257769107.tar.gz
sequelpro-92b9f5d4c025c6bd50367d6a2e9b39e257769107.tar.bz2
sequelpro-92b9f5d4c025c6bd50367d6a2e9b39e257769107.zip
Before opening the user manager check that the current user has access to the mysql.user table. If they don't display a warning message that they don't have the necessary privileges for user management.
-rw-r--r--Source/TableDocument.m18
1 files changed, 18 insertions, 0 deletions
diff --git a/Source/TableDocument.m b/Source/TableDocument.m
index 797631e3..ac076c8b 100644
--- a/Source/TableDocument.m
+++ b/Source/TableDocument.m
@@ -2302,6 +2302,24 @@
*/
- (IBAction)showUserManager:(id)sender
{
+ // Before displaying the user manager make sure the current user has access to the mysql.user table.
+ MCPResult *result = [mySQLConnection queryString:@"SELECT * FROM `mysql`.`user` ORDER BY `user`"];
+
+ if ((![[mySQLConnection getLastErrorMessage] isEqualToString:@""]) && ([result numOfRows] == 0)) {
+
+ NSAlert *alert = [NSAlert alertWithMessageText:NSLocalizedString(@"Unable to get list of users", @"unable to get list of users message")
+ defaultButton:NSLocalizedString(@"OK", @"OK button")
+ alternateButton:nil
+ otherButton:nil
+ informativeTextWithFormat:NSLocalizedString(@"An error occurred while trying to get the list of users. Please make sure you have the necessary privileges to perform user management, including access to the mysql.user table.", @"unable to get list of users informative message")];
+
+ [alert setAlertStyle:NSCriticalAlertStyle];
+
+ [alert beginSheetModalForWindow:tableWindow modalDelegate:self didEndSelector:@selector(sheetDidEnd:returnCode:contextInfo:) contextInfo:@"cannotremovefield"];
+
+ return;
+ }
+
[NSApp beginSheet:[userManagerInstance window]
modalForWindow:tableWindow
modalDelegate:userManagerInstance