From ba9d971e0209a9d9130fbccc43a2ddd01e06bedf Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Sun, 30 Jan 2011 23:44:43 +0000 Subject: [PATCH] Apply added privs which were in org privs, then deleted, and added again. Fixes issue #2284. --- source/usermanager.pas | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/source/usermanager.pas b/source/usermanager.pas index 0d0afd63..48f4d75f 100644 --- a/source/usermanager.pas +++ b/source/usermanager.pas @@ -737,10 +737,11 @@ begin Node.CheckState := csCheckedNormal; end; 1: begin - case p.OrgPrivs.IndexOf(p.AllPrivileges[Node.Index]) of - -1: Node.CheckState := csUncheckedNormal; - else Node.CheckState := csCheckedNormal; - end; + // Added objects have some basic added privs, others only have original privs. + Node.CheckState := csUncheckedNormal; + if (p.OrgPrivs.IndexOf(p.AllPrivileges[Node.Index]) > -1) + or (p.AddedPrivs.IndexOf(p.AllPrivileges[Node.Index]) > -1) then + Node.CheckState := csCheckedNormal; end; end; end; @@ -837,10 +838,9 @@ begin end; // Assign minimum privileges case Priv.DBObj.NodeType of - lntFunction, lntProcedure: Priv.OrgPrivs.Add('EXECUTE'); - else Priv.OrgPrivs.Add('SELECT'); + lntFunction, lntProcedure: Priv.AddedPrivs.Add('EXECUTE'); + else Priv.AddedPrivs.Add('SELECT'); end; - Priv.AddedPrivs.AddStrings(Priv.OrgPrivs); Priv.Added := True; FPrivObjects.Add(Priv); Node := treePrivs.AddChild(nil);