From ea9e0831c85221d296aff0e9a401ed22dca0df34 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 21 Jan 2016 19:30:35 +0000 Subject: [PATCH] =?UTF-8?q?send=20MyUserInfo=20(security)=20to=20the=20Tre?= =?UTF-8?q?eView=20module=20Don=E2=80=99t=20allow=20Reviewers=20and=20RO?= =?UTF-8?q?=20Editor=20only=20users=20save=20changes=20to=20Word=20attachm?= =?UTF-8?q?ents=20and=20library=20documents=20Put=20a=20Create=20PDF=20but?= =?UTF-8?q?ton=20on=20the=20Review=20ribbon=20Don=E2=80=99t=20allow=20Revi?= =?UTF-8?q?ewers=20and=20RO=20Editor=20only=20users=20move=20procedures=20?= =?UTF-8?q?and=20folders=20on=20the=20tree?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PROMS/VEPROMS User Interface/frmVEPROMS.cs | 1 + PROMS/Volian.Controls.Library/DSOTabPanel.cs | 6 +- .../Volian.Controls.Library/DisplayTabItem.cs | 6 +- .../StepTabRibbon.designer.cs | Bin 514768 -> 519692 bytes .../StepTabRibbon.resx | 417 ++++++++++-------- PROMS/Volian.Controls.Library/vlnTreeView.cs | 25 +- 6 files changed, 264 insertions(+), 191 deletions(-) diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/VEPROMS User Interface/frmVEPROMS.cs index 6aa2584c..e4a525f5 100644 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ b/PROMS/VEPROMS User Interface/frmVEPROMS.cs @@ -1273,6 +1273,7 @@ namespace VEPROMS RefreshLastChange(); tc.MySessionInfo = MySessionInfo; tv.MySessionInfo = MySessionInfo; + tv.MyUserInfo = MyUserInfo; System.Threading.AutoResetEvent autoEvent = new System.Threading.AutoResetEvent(false); //System.Threading.TimerCallback timerDelegate = new System.Threading.TimerCallback(MySessionInfo.PingSession); //System.Diagnostics.Process xyzzy = System.Diagnostics.Process.GetCurrentProcess(); diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel.cs b/PROMS/Volian.Controls.Library/DSOTabPanel.cs index e3872666..b9665e9a 100644 --- a/PROMS/Volian.Controls.Library/DSOTabPanel.cs +++ b/PROMS/Volian.Controls.Library/DSOTabPanel.cs @@ -97,10 +97,12 @@ namespace Volian.Controls.Library #region Constructors private Timer _RefreshTimer; private ItemInfo _ItemInfo; - public DSOTabPanel(DocumentInfo documentInfo, DisplayTabControl myDisplayTabControl, ItemInfo itemInfo) + private bool _AllowedToEdit; + public DSOTabPanel(DocumentInfo documentInfo, DisplayTabControl myDisplayTabControl, ItemInfo itemInfo, bool allowedToEdit) { _MyDisplayTabControl = myDisplayTabControl; _ItemInfo = itemInfo; + _AllowedToEdit = allowedToEdit; InitializeComponent(); SetupDSOTabPanel(); _MyDocumentInfo = documentInfo; @@ -541,7 +543,7 @@ namespace Volian.Controls.Library if (IsDirty) { // Unfortunately, the only way to handle view mode for DSO Framer is to not save. - if (PanelViewEditMode == E_ViewMode.View) + if (PanelViewEditMode == E_ViewMode.View || !_AllowedToEdit) { MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip); return false; diff --git a/PROMS/Volian.Controls.Library/DisplayTabItem.cs b/PROMS/Volian.Controls.Library/DisplayTabItem.cs index c895b2f5..f8f53b3f 100644 --- a/PROMS/Volian.Controls.Library/DisplayTabItem.cs +++ b/PROMS/Volian.Controls.Library/DisplayTabItem.cs @@ -298,7 +298,8 @@ namespace Volian.Controls.Library private void SetupDSOTabPanel() { EntryInfo myEntry = _MyItemInfo.MyContent.MyEntry; - _MyDSOTabPanel = new DSOTabPanel(myEntry.MyDocument, _MyDisplayTabControl, _MyItemInfo); + UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); + _MyDSOTabPanel = new DSOTabPanel(myEntry.MyDocument, _MyDisplayTabControl, _MyItemInfo, UserInfo.CanEdit(ui,MyItemInfo.MyDocVersion)); // // tabItem // @@ -322,7 +323,8 @@ namespace Volian.Controls.Library } private void SetupLibraryDocumentDSOTabPanel() { - _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo); + UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); + _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo, UserInfo.CanEdit(ui, MyItemInfo.MyDocVersion)); // // tabItem // diff --git a/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs b/PROMS/Volian.Controls.Library/StepTabRibbon.designer.cs index 5b6216c762fecfe041c851e579775a3c1ef591a4..2b105deac6cc7a03708b8bf922db5fab2b1b34c8 100644 GIT binary patch delta 1231 zcmZ9LZA@EL7{~89=bqkjcdg~7DP2pX(Av$3WNnZzwjcuPLgFNTsQW;q#fjjDQZVt8 zn@p3T@nzl4vL{1L?p|Wz8|iHHs2>&}zI23@mVyCB%;pk<(?R{{wixfdg(Y{n$-U?P zp65I-=lq}iH#P6C)}-IEL+mnEm_L$)wiuDwMBr(bj5e@Q=3N2Hfg>@&+5Uu!5k13I{C7GFYe@G^SQsN2JOHZB>9I#}ONel}J&;lM2N zKvyrh7x7EH1G*0pMKUu8VHh4DZ<jm^I3d6-D377_$Z^GWn5n)j1)1M(B zA(YRqGL7$#bp?08$2X82<~MM)HEQ7oI&LBCpMM`W!RA$5jM6IjyNC{$kmxy}7vZm1 z+Z`_}l@ts0f%Xc%0FyVV8`N&vV)i!mJUU~j6zzd&WnFKsZb*O$=Prs3#L^bu>&jBrya{1Q*CASW_xP`BOYhMB7Tb64Qaq*;`%mlVb>QSQd zL_OJA#rGG)W7yQ8E^C?JEs7Im8S1|Zcl|0hD_grtS4EW{`CZhiwn+Mp=;a4*i}e*O zxn|>|(-Z|LR%oUjXHR`f-dxIYZP`1VWD2|>w4GQ^ucJ1 z`p0JaDWB=LWq&ZI3EJwUPNN@K3P=%i_F=tNN5=4L`obK1o~o1T5!WYu*SFvZNzuyt ibf;%H-YdOkUe|kb(sPiHO6}knl4Rwu@PHr-<@f)t46RxK delta 658 zcmYk4QD{4sJ9qy2*D;HK15+fL=Vow z+2{jLM3m5=Mj^M|>VpUo>LGe)HXMQ5OAxGP8H4D-r|!LB^z!kYALo4kbN=TmYz68s z0?Kt!tqtCEqT>mO4{MT}D&K6hC}viPqX#oLI6|k7MKOF>kZ5p7#@a28sP$MmRJsUu z)wB05r)JK!=P{<3?KJdpqO=M&+F2XZp0U$&YZExT$l29GodC^<&QcbLmNkHhQ6Z=L z*S~_HOD{E&v^Hp?r#6y?zN3*ewAJc{3#igaVd$ATb$eS@&wP@dOs<$olet#lLk}k2 zfR|0Gu+^cRmJJ`vd_SGt@!(v=yiCKbQ5ybk#WD|~>S(1oT5Ni0_@|^Q?JD3v?Y{>%m1fy(E9|XGZ6E;}~SW4bqD8a9oX4w!System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA @@ -166,6 +166,236 @@ 17, 17 + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAA9ZJREFUOE9lj39M1HUYxz/HHZO7g+N+ClKgEFFMBkYBQy2tA85D7xfHoTDAhEErRH4L + FUQTyCHggXggO0DAA+SQCpEfR5C7BGM5jKGcASa2URqWzJOMG8K772zrn57t2fPPe6/n9SafS7eRBpWI + jCbYB9TIXRvbozkL7WrnZb2Sf093QFRaEO7NPKcQkk61E9ErBKROJiIl+zxIjtiH5IW9SshnUk9yRuH6 + Sl8cc+68mofheHtcjmWiPdoZ2gOuoEK6eoWQQwFcKIDL/wBUiOjkokKDhoM2FRNGFQ0daiYaVAJUydxQ + IvVY1ysF5i6N42STkj95Ti6sL5F4eP4HaJY50ltk7KazUg4aU3ejO0cM/SFPUFboiHFGM2V16RAbV+Ic + cJF60qjgo1iyzZQX5i3ID/cipCGSQ9dFsHTlESJYespgWzDjT8sobnaWofMgD4YoB3RH2aEnmo7zSjaq + IkUoFLvh+LvuWZ9IvAkxxdOJQcFIbkkJ2Vg2V8M2bwJWFjDXWwG9hIHTKi8Yju6mrLaidj8X1ZHOqFJ6 + oFyzY7RCE+JIxo8Q0nuQ7j5ULLtjHTkB63gd1u4OYbo1D1/sYuCroig8uzOAxe+NmB+qx/zAWSxOdGGq + W/uHLn7PdnIqYisp2etB9InvnHxozILV9Cn+vl6DnztzoJW7w3IhG8/n+7H2cAobj+exsXwXWLbgwVX9 + WnuKOIJw4+wIL4ZBD9jHTtdlim2/tqVh+cujeGBMw8DHSjz6Oh/Wa9WwTnfjr1nTi7VZerDQe3LFkLw3 + kHBjCYubalcRZGSvaow81JapMFKRie9aSnGp9SPMtSXi2XAhHl8tx5NxHQWrwfqPdfih4Zi5KXEnh/AT + aMmBnS8hdul1xD4SoWBWBsvsfSxZV5A9mo7MI8H4rTUZK1eoen25WDHl42bzcZs6NEH+pmcyIS5ZLOOO + iUC8PfMG3rv9GqQLPvh2YwD9w7/AT21AWGo/SrMzMFgaDbM2CWMdlfggt/c5ja+9QEixKxF+uOmE20U/ + eF0Lhe/1YPhN+WHngAT+kZchK1pFSguQ0fgE35hvYPanGQxN23C4EdiTswjm5spWIkggQn46q5BX5jYi + rPWadGl6+ZZDkvh33+j7kFUBykpATt22CbyY2hFAXApITwFbQgefEsH7NCJIYRBeLNnkfIzN5xY5uDHe + Umpc/GfX/ZOAkAwgKBsILwYGbwEJp4HtKYBvzCqcvLru/QtItSe8w3aEm+tEuPmuhOZYQGgsbRrLvW+M + 73djaXPQ7aei4BlrwH6LdUvQtJXjMzZnL2xrJ8ziXf8A4LIVTkOEfSkAAAAASUVORK5CYII= + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAKtJREFUOE+9kNERAiEMRGnBSqCsa8nxwyIsyRru1zUbZ28giObD8WbekYTNEigAJuzj + byBqxFyw0mM/A7eC++WE61aclcmYMLVGwlh8MhkTS3lqFDL/n8E74arue0dgYRb1eJ+a+fJCDxnh9eIV + Xz9bWms+Zq3VYc2FXSOJVzkMKFydnjLoJ2DMmoxTBhT+ZAKuRO+QNqBQE/QNkaUBN9lMwTcmA5lkUQ+A + 8gQTFT/xg5mZXAAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA + EnEB89x6jgAAAk5JREFUOE9j+P//P0UYqyA+nJU1Q6m7O/3S7NmZ/2trE9qwKsKFy8q6pZqba04/fmwN + 5Ar/7+xk2IJVITZcXd0m095efPDlS8X/P36s+b90qcfb9HQGd6yK0XFGxgwZoM27nz83+P/rF9P/mTPV + vsyfH98AkkNRWFJSKlZY2CtfWNgvC8IFBRNksrOnqjY1pR14/FgGaPPO/4sWuX+vrlZPWrXKQwTFgJqa + Ov22tq79HR1lN7q6Kq51dJQAccXV9vayW0+fav3/+5fh/7Rpaq+bmtJLTp92EILpAxPl5RVKXV1zLj97 + duP/58+q/z984Pz/9avA/48fuYB85f8/f+79P2dO8t9NmzwyYBpRDOjtnfXg0aNjQGYQEG/5v369wf9n + z2b937DB+v+nTxv+L1sW+DovzyT9+HEnuM0wDCamTs0E2ugBxBv/v30b9//u3T3AgIr/f+HCTqDtIf/7 + +hhepKQIGaBrBmEwsWDB5P9Pn+797+sb+F9VleH/lCl+/+/d2/R/xYrg/+/ebfg/a5bBq+xsBkt0zSAM + JpYurf5/7ZrRf0lJfqBfd/3X1RX9f+mS2//373cCXRUMDDyed3l5DKDUg92AGTNmfvzyZfPrI0fk/lta + mv6XklL8f+bMaqBUJDDeN/yfMEHhXmoqHgMaGjpD9+y5vvX//wNPdu/mfnf+/Oa3//+nA/FCIE58v359 + 7pING+LF0TWDMJxRVVXivmTJsgebN6d+3bCh7euyZRFfly5t+7pgQfCHlSu74169WsuIrBGGMQRIw/8Z + AJjLwCba8vPzAAAAAElFTkSuQmCC + + + + + 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 + sWuK1nmhAAAAAElFTkSuQmCC + + + + + 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 + JgAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 + YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA + CvYBwq9wAwAAAoRJREFUOE+dkN1P0mEYhvkLOmirrXXQ3FrNttIysLnqQK3m1BbTxWygiZmEH5MZmpG0 + ciGRUxya6awopmVhml9IajBxMExTC8SyKYPsOzV1pAu84/39NluTDuzgPnrf63qe52YAWFf6pIKYpqxk + kPQUpocG/PSvNN+5EEnAqfJcjOTTkoAfA4XA3S1F0HYNYPRaHgUrmUz60WFWwWaqwLChDNZnCpjaZbDo + FbD2KDBkuIGxFxXQa/Mw4yzFm/4syGRFkB9g+lEwVgUrPjt83ufwLuvxy9OG5QUtfs7Ww+1QQdeQTsEO + Ax+ttTHYvHEDbspPo7rkHJ8SkOk+ryUg3KHmrIGHDGJUXOEiOTbCRQlGjeXwLhmwvPgES3MP4Pmmhsuu + RFtd/BrYbsrBa7MEhZlsIqA7GOwu9U/thGfmPha/1GL+gwq3bmtg0cnhenl+FR4zCTE9IoK5U4AMThSS + joXTAovuuh9+hIWPVfjhLsOss4QSrKz40KhiU7DNKIBrMBvvzGfRce8E4g+HIiEyjBb0tcqw+PkuHtcX + oFzOhygjDjkiMdiJHH/NDAx2pWHSIsC4MRWv9KegrTqCKFYwYg+G0IJe7VXMT9dgZrIY3yek+DpeiE82 + Md4P52LKKsTbvjTYurmkdcgKuMhOiUHiURYloQRdDy9jzl35F+wcyMREfzrsvTwMd5yEtek4BZMzosOD + UZwThoiQ7bSgTXPJf7cS/e1pMDanoKcxCTpNAp7WxVHrNpQdgrqERU0mcKWEhRrpbuzduY0WtKgvQpy6 + DyJeGISc/TjDZoIXy6JaJkWRW8m6ZG2pYA+qJbugyt+B4KAttGA9ErI2mUzgoK2b/gj+L2D8BrrbuL5j + y8u4AAAAAElFTkSuQmCC + + + + + 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 + SUVORK5CYII= + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 @@ -625,191 +855,6 @@ s/onTA5iQP3z9+LZl7/IWq5/omM2742B9bx7MAUgbJBz6oVe+N7P2i6r36s7Lf2p6jT/G0wOTMgHHTmh aLz6tq75/E+a1nN+aDgt/AtTAMKGSQd+G3tv+GHkveKHjuui9zoO8x7C5OCKyMVYBYnH/xkA0xCX+LGq wvUAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA - EnEB89x6jgAAA9ZJREFUOE9lj39M1HUYxz/HHZO7g+N+ClKgEFFMBkYBQy2tA85D7xfHoTDAhEErRH4L - FUQTyCHggXggO0DAA+SQCpEfR5C7BGM5jKGcASa2URqWzJOMG8K772zrn57t2fPPe6/n9SafS7eRBpWI - jCbYB9TIXRvbozkL7WrnZb2Sf093QFRaEO7NPKcQkk61E9ErBKROJiIl+zxIjtiH5IW9SshnUk9yRuH6 - Sl8cc+68mofheHtcjmWiPdoZ2gOuoEK6eoWQQwFcKIDL/wBUiOjkokKDhoM2FRNGFQ0daiYaVAJUydxQ - IvVY1ysF5i6N42STkj95Ti6sL5F4eP4HaJY50ltk7KazUg4aU3ejO0cM/SFPUFboiHFGM2V16RAbV+Ic - cJF60qjgo1iyzZQX5i3ID/cipCGSQ9dFsHTlESJYespgWzDjT8sobnaWofMgD4YoB3RH2aEnmo7zSjaq - IkUoFLvh+LvuWZ9IvAkxxdOJQcFIbkkJ2Vg2V8M2bwJWFjDXWwG9hIHTKi8Yju6mrLaidj8X1ZHOqFJ6 - oFyzY7RCE+JIxo8Q0nuQ7j5ULLtjHTkB63gd1u4OYbo1D1/sYuCroig8uzOAxe+NmB+qx/zAWSxOdGGq - W/uHLn7PdnIqYisp2etB9InvnHxozILV9Cn+vl6DnztzoJW7w3IhG8/n+7H2cAobj+exsXwXWLbgwVX9 - WnuKOIJw4+wIL4ZBD9jHTtdlim2/tqVh+cujeGBMw8DHSjz6Oh/Wa9WwTnfjr1nTi7VZerDQe3LFkLw3 - kHBjCYubalcRZGSvaow81JapMFKRie9aSnGp9SPMtSXi2XAhHl8tx5NxHQWrwfqPdfih4Zi5KXEnh/AT - aMmBnS8hdul1xD4SoWBWBsvsfSxZV5A9mo7MI8H4rTUZK1eoen25WDHl42bzcZs6NEH+pmcyIS5ZLOOO - iUC8PfMG3rv9GqQLPvh2YwD9w7/AT21AWGo/SrMzMFgaDbM2CWMdlfggt/c5ja+9QEixKxF+uOmE20U/ - eF0Lhe/1YPhN+WHngAT+kZchK1pFSguQ0fgE35hvYPanGQxN23C4EdiTswjm5spWIkggQn46q5BX5jYi - rPWadGl6+ZZDkvh33+j7kFUBykpATt22CbyY2hFAXApITwFbQgefEsH7NCJIYRBeLNnkfIzN5xY5uDHe - Umpc/GfX/ZOAkAwgKBsILwYGbwEJp4HtKYBvzCqcvLru/QtItSe8w3aEm+tEuPmuhOZYQGgsbRrLvW+M - 73djaXPQ7aei4BlrwH6LdUvQtJXjMzZnL2xrJ8ziXf8A4LIVTkOEfSkAAAAASUVORK5CYII= - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA - EnEB89x6jgAAAKtJREFUOE+9kNERAiEMRGnBSqCsa8nxwyIsyRru1zUbZ28giObD8WbekYTNEigAJuzj - byBqxFyw0mM/A7eC++WE61aclcmYMLVGwlh8MhkTS3lqFDL/n8E74arue0dgYRb1eJ+a+fJCDxnh9eIV - Xz9bWms+Zq3VYc2FXSOJVzkMKFydnjLoJ2DMmoxTBhT+ZAKuRO+QNqBQE/QNkaUBN9lMwTcmA5lkUQ+A - 8gQTFT/xg5mZXAAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScQAA - EnEB89x6jgAAAk5JREFUOE9j+P//P0UYqyA+nJU1Q6m7O/3S7NmZ/2trE9qwKsKFy8q6pZqba04/fmwN - 5Ar/7+xk2IJVITZcXd0m095efPDlS8X/P36s+b90qcfb9HQGd6yK0XFGxgwZoM27nz83+P/rF9P/mTPV - vsyfH98AkkNRWFJSKlZY2CtfWNgvC8IFBRNksrOnqjY1pR14/FgGaPPO/4sWuX+vrlZPWrXKQwTFgJqa - Ov22tq79HR1lN7q6Kq51dJQAccXV9vayW0+fav3/+5fh/7Rpaq+bmtJLTp92EILpAxPl5RVKXV1zLj97 - duP/58+q/z984Pz/9avA/48fuYB85f8/f+79P2dO8t9NmzwyYBpRDOjtnfXg0aNjQGYQEG/5v369wf9n - z2b937DB+v+nTxv+L1sW+DovzyT9+HEnuM0wDCamTs0E2ugBxBv/v30b9//u3T3AgIr/f+HCTqDtIf/7 - +hhepKQIGaBrBmEwsWDB5P9Pn+797+sb+F9VleH/lCl+/+/d2/R/xYrg/+/ebfg/a5bBq+xsBkt0zSAM - JpYurf5/7ZrRf0lJfqBfd/3X1RX9f+mS2//373cCXRUMDDyed3l5DKDUg92AGTNmfvzyZfPrI0fk/lta - mv6XklL8f+bMaqBUJDDeN/yfMEHhXmoqHgMaGjpD9+y5vvX//wNPdu/mfnf+/Oa3//+nA/FCIE58v359 - 7pING+LF0TWDMJxRVVXivmTJsgebN6d+3bCh7euyZRFfly5t+7pgQfCHlSu74169WsuIrBGGMQRIw/8Z - AJjLwCba8vPzAAAAAElFTkSuQmCC - - - - - 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 - sWuK1nmhAAAAAElFTkSuQmCC - - - - - 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 - JgAAAABJRU5ErkJggg== - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAK9gAA - CvYBwq9wAwAAAoRJREFUOE+dkN1P0mEYhvkLOmirrXXQ3FrNttIysLnqQK3m1BbTxWygiZmEH5MZmpG0 - ciGRUxya6awopmVhml9IajBxMExTC8SyKYPsOzV1pAu84/39NluTDuzgPnrf63qe52YAWFf6pIKYpqxk - kPQUpocG/PSvNN+5EEnAqfJcjOTTkoAfA4XA3S1F0HYNYPRaHgUrmUz60WFWwWaqwLChDNZnCpjaZbDo - FbD2KDBkuIGxFxXQa/Mw4yzFm/4syGRFkB9g+lEwVgUrPjt83ufwLuvxy9OG5QUtfs7Ww+1QQdeQTsEO - Ax+ttTHYvHEDbspPo7rkHJ8SkOk+ryUg3KHmrIGHDGJUXOEiOTbCRQlGjeXwLhmwvPgES3MP4Pmmhsuu - RFtd/BrYbsrBa7MEhZlsIqA7GOwu9U/thGfmPha/1GL+gwq3bmtg0cnhenl+FR4zCTE9IoK5U4AMThSS - joXTAovuuh9+hIWPVfjhLsOss4QSrKz40KhiU7DNKIBrMBvvzGfRce8E4g+HIiEyjBb0tcqw+PkuHtcX - oFzOhygjDjkiMdiJHH/NDAx2pWHSIsC4MRWv9KegrTqCKFYwYg+G0IJe7VXMT9dgZrIY3yek+DpeiE82 - Md4P52LKKsTbvjTYurmkdcgKuMhOiUHiURYloQRdDy9jzl35F+wcyMREfzrsvTwMd5yEtek4BZMzosOD - UZwThoiQ7bSgTXPJf7cS/e1pMDanoKcxCTpNAp7WxVHrNpQdgrqERU0mcKWEhRrpbuzduY0WtKgvQpy6 - DyJeGISc/TjDZoIXy6JaJkWRW8m6ZG2pYA+qJbugyt+B4KAttGA9ErI2mUzgoK2b/gj+L2D8BrrbuL5j - y8u4AAAAAElFTkSuQmCC - - - - - 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 diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs b/PROMS/Volian.Controls.Library/vlnTreeView.cs index bce64b2c..2a397b68 100644 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs +++ b/PROMS/Volian.Controls.Library/vlnTreeView.cs @@ -383,6 +383,12 @@ namespace Volian.Controls.Library get { return _MySessionInfo; } set { _MySessionInfo = value; } } + private UserInfo _MyUserInfo; + public UserInfo MyUserInfo + { + get { return _MyUserInfo; } + set { _MyUserInfo = value; } + } #region Local Vars private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); @@ -3047,7 +3053,7 @@ namespace Volian.Controls.Library DragHelper.ImageList_DragMove(formP.X - this.Left, formP.Y - this.Top); DropLocation dl = new DropLocation(this, e, _LastDropLocation == null ? DateTime.Now : _LastDropLocation.LastScroll); string s = string.Empty; - if (dl.DropNode == null) + if (dl.DropNode == null || !AllowedToMove((VETreeNode)dragNode)) { e.Effect = DragDropEffects.None; } @@ -3106,6 +3112,23 @@ namespace Volian.Controls.Library if (dvInfo != null) return true; return false; } + private bool AllowedToMove(VETreeNode dragNode) + { + DocVersionInfo dvInfo = null; + if (IsFolder(dragNode)) + { + FolderInfo fi = dragNode.VEObject as FolderInfo; + return (MyUserInfo.IsAdministrator() || MyUserInfo.IsSetAdministrator(fi)); + } + else if (IsDocVersion(dragNode)) + dvInfo = dragNode.VEObject as DocVersionInfo; + else if (IsProcedure(dragNode)) + dvInfo = (dragNode.VEObject as ProcedureInfo).MyDocVersion; + else if (IsSection(dragNode)) + dvInfo = (dragNode.VEObject as SectionInfo).MyDocVersion; + if (dvInfo != null) return !(MyUserInfo.IsReviewer(dvInfo) || MyUserInfo.IsROEditor(dvInfo)); + return false; + } private static TreeNode GetTreeNodeFromData(IDataObject datobj) { foreach (string s in datobj.GetFormats())