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