From f36f54b0b879becf5bc45b1cdb4712dbe3ee6d77 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Wed, 7 Mar 2012 20:57:46 +0000 Subject: [PATCH] Disable editing routines if user has no privilege to select from mysql.proc or if he's not the owner of that routine. See http://www.heidisql.com/forum.php?t=10231 --- source/routine_editor.dfm | 9 +++++++++ source/routine_editor.pas | 6 ++++++ 2 files changed, 15 insertions(+) diff --git a/source/routine_editor.dfm b/source/routine_editor.dfm index d2d6dacf..bbfff20b 100644 --- a/source/routine_editor.dfm +++ b/source/routine_editor.dfm @@ -17,6 +17,15 @@ object frmRoutineEditor: TfrmRoutineEditor Caption = 'Routine body:' FocusControl = SynMemoBody end + object lblDisabledWhy: TLabel + Left = 256 + Top = 460 + Width = 177 + Height = 13 + Anchors = [akLeft, akBottom] + Caption = 'You have no privilege to this routine.' + Visible = False + end object btnSave: TButton Left = 165 Top = 455 diff --git a/source/routine_editor.pas b/source/routine_editor.pas index 2b0beb2b..21674537 100644 --- a/source/routine_editor.pas +++ b/source/routine_editor.pas @@ -43,6 +43,7 @@ type comboDefiner: TComboBox; btnMoveUpParam: TToolButton; btnMoveDownParam: TToolButton; + lblDisabledWhy: TLabel; procedure comboTypeSelect(Sender: TObject); procedure btnSaveClick(Sender: TObject); procedure btnHelpClick(Sender: TObject); @@ -166,6 +167,11 @@ begin editComment.Text := Comment; comboDefiner.Text := Definer; SynMemoBody.Text := Body; + // User may not be allowed to view code in SHOW CREATE FUNCTION, in which case we have an empty CreateCode. + // Disable editor in this case. + lblDisabledWhy.Visible := Body = ''; + PageControlMain.Enabled := not lblDisabledWhy.Visible; + SynMemoBody.Enabled := PageControlMain.Enabled; end else begin editName.Text := ''; end;