From 2cf6edd0889fd87a1ba9e3d4106a3a8e0268da52 Mon Sep 17 00:00:00 2001
From: hongjli <3117313295@qq.com>
Date: 星期二, 17 十月 2023 15:10:30 +0800
Subject: [PATCH] Web端场景权限BUG修复

---
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def                   |    8 ++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_PanelScenarioSelection.def                           |   21 ++++++++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioSelection.def                  |    8 ++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderCurrentUser_OnDataChanged.def |   33 ++++++++++++++++
 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def                    |   14 +++++++
 _Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def                                         |   13 ++++++
 6 files changed, 97 insertions(+), 0 deletions(-)

diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioSelection.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioSelection.def
new file mode 100644
index 0000000..c8a46d0
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupScenarioSelection.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component ActionBarGroupScenarioSelection #extension
+{
+  Children:
+  [
+    #child: PanelScenarioSelection
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
new file mode 100644
index 0000000..08ac6ea
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
@@ -0,0 +1,8 @@
+Quintiq file version 2.0
+Component ActionBarPageScenarioSelection #extension
+{
+  Children:
+  [
+    #child: ActionBarGroupScenarioSelection
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_PanelScenarioSelection.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_PanelScenarioSelection.def
new file mode 100644
index 0000000..bd276b6
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_PanelScenarioSelection.def
@@ -0,0 +1,21 @@
+Quintiq file version 2.0
+Component PanelScenarioSelection #extension
+{
+  Children:
+  [
+    Component DropDownListScenario id:DropDownListScenario_886 #extension
+    {
+      Children:
+      [
+        Component DataExtractorScenarios id:DataExtractorScenarios_484 #extension
+        {
+          Properties:
+          [
+            FilterArguments: 'availablescenarios:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderAvailableScenarios'
+            FixedFilter: 'object.IsLoaded() and not object.IsDeleted() and availablescenarios.Find( object ) >= 0'
+          ]
+        }
+      ]
+    }
+  ]
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderCurrentUser_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderCurrentUser_OnDataChanged.def
new file mode 100644
index 0000000..7f368bd
--- /dev/null
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_DataHolderCurrentUser_OnDataChanged.def
@@ -0,0 +1,33 @@
+Quintiq file version 2.0
+#parent: DataHolderCurrentUser
+Response OnDataChanged () id:Response_TIANMA_JITUAN_ApplicationMacroPlanner_DataHolderCurrentUser_OnDataChanged
+{
+  #keys: '[414702.1.131671499]'
+  CanBindMultiple: false
+  DefinitionID: 'Responsedef_WebComponent_OnDataChanged'
+  GroupServerCalls: true
+  QuillAction
+  {
+    Body:
+    [*
+      user := QuintiqUser::CurrentUser();
+      scenarionodes := construct( ScenarioNodes );
+      
+      if( user.IsAdministrator()
+          or not exists( ScenarioManager, ScenarioNode.ScenarioAuthorization, sa, true ) )
+      {
+        scenarionodes := selectset( ScenarioManager, ScenarioNode, scenarionode, true );
+      }
+      else
+      {
+        scenarionodes := selectset( ScenarioManager, ScenarioNode, scenarionode,
+                                    guard( scenarionode.astype( ScenarioFolder ).IsRecycleBin(), false )
+                                    or scenarionode.CreatedBy().ToUpper() = user.ShortName().ToUpper()
+                                    or exists( scenarionode, ScenarioAuthorization, sa,
+                                               user.IsMemberOfGroup( sa.Name() ) ) );
+      }
+      
+      DataHolderAvailableScenarios.Data( &scenarionodes );
+    *]
+  }
+}
diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
index 4f48b76..49e8c72 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -14,6 +14,7 @@
         #child: applicationDevelopmentActionBarPageDef_1
         #child: ActionBarPagePlan
         #child: ActionBarPageInventory
+        #child: ActionBarPageScenarioSelection
       ]
     }
     Component DataHolderCapacityAndSaleBudgeFilterItem
@@ -66,5 +67,18 @@
         Taborder: 44
       ]
     }
+    Component DataHolderAvailableScenarios
+    {
+      #keys: '[414702.1.131690403]'
+      BaseType: 'WebDataHolder'
+      Databinding: 'structured[ScenarioNode]*'
+      Properties:
+      [
+        Taborder: 45
+      ]
+    }
+    Component DataHolderCurrentUser #extension
+    {
+    }
   ]
 }
diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
index 71c782e..29091a5 100644
--- a/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
+++ b/_Main/UI/MacroPlannerWebApp/Component_FormScenarioManager/Component_ListScenario.def
@@ -124,6 +124,19 @@
           ]
         }
       ]
+      Properties:
+      [
+        FilterArguments: 'availablescenarios:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderAvailableScenarios'
+        FixedFilter: 'availablescenarios.Find( object ) >= 0'
+      ]
+    }
+    Component DataExtractorScenario #extension
+    {
+      Properties:
+      [
+        FilterArguments: 'availablescenarios:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderAvailableScenarios'
+        FixedFilter: 'availablescenarios.Find( object ) >= 0'
+      ]
     }
   ]
 }

--
Gitblit v1.9.3