diff --git a/source/usermanager.dfm b/source/usermanager.dfm index 24ebf2d9..63932a64 100644 --- a/source/usermanager.dfm +++ b/source/usermanager.dfm @@ -16,6 +16,7 @@ object UserManagerForm: TUserManagerForm OldCreateOrder = False Position = poMainFormCenter OnClose = FormClose + OnCreate = FormCreate OnShow = FormShow PixelsPerInch = 96 TextHeight = 13 @@ -166,16 +167,7 @@ object UserManagerForm: TUserManagerForm 'Select' 'Insert' 'Update' - 'Delete' - 'Index' - 'Alter' - 'Create' - 'Drop' - 'References' - 'Reload' - 'Shutdown' - 'Process' - 'File') + '...') TabOrder = 5 end object CheckBoxAllPrivileges: TCheckBox diff --git a/source/usermanager.pas b/source/usermanager.pas index 7f154385..edc4e04a 100644 --- a/source/usermanager.pas +++ b/source/usermanager.pas @@ -61,6 +61,7 @@ type Panel4: TPanel; ButtonEditUser: TButton; Button1: TButton; + procedure FormCreate(Sender: TObject); procedure DBUserTreeExpanding(Sender: TObject; Node: TTreeNode; var AllowExpansion: Boolean); procedure FormShow(Sender: TObject); @@ -1018,4 +1019,28 @@ begin end; + +{** + Fetch names of privileges from mysql.users to use them in the checklistbox + on the "Add user" page. +} +procedure TUserManagerForm.FormCreate(Sender: TObject); +var + Privs: TDataset; + PrivName: String; +begin + Privs := getPrivColumns(PRIVTABLE_USERS); + // Add to listbox and cut off "_priv" suffixes + CheckListBoxPrivileges.Items.BeginUpdate; + CheckListBoxPrivileges.Items.Clear; + while not Privs.Eof do begin + PrivName := Privs.FieldByName('Field').AsString; + // Only add relevant columns + if Pos('_priv', PrivName) > 0 then + CheckListBoxPrivileges.Items.Add( Copy(PrivName, 1, Length(PrivName)-5) ); + Privs.Next; + end; + CheckListBoxPrivileges.Items.EndUpdate; +end; + end.