Only show certain App Switcher icons when account has DF access

Added a dictionary where additional user rights can be set.
A plugin such as the DigitalFactory can update this dictionary
if certain account rights change. The `account.additionalRights`
is intended to allow us some flexibility, without breaking the API
in the future.

The Application Switcher now queries the additional account rights,
which is updated by the DF plugin to only show `My printers`,
`Digital Library` and `Print jobs` when the user has access to the
DF.

Contributes to CURA-8624
This commit is contained in:
Jelle Spijker 2021-10-18 15:35:17 +02:00
parent 629f695ef7
commit 666880ad20
No known key found for this signature in database
GPG key ID: 6662DC033BE6B99A
3 changed files with 31 additions and 14 deletions

View file

@ -33,63 +33,63 @@ Popup
thumbnail: UM.Theme.getIcon("PrinterTriple", "high"),
description: catalog.i18nc("@tooltip:button", "Monitor printers in Ultimaker Digital Factory."),
link: "https://digitalfactory.ultimaker.com/app/printers?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printers",
dfRequired: true
DFAccessRequired: true
},
{
displayName: "Digital Library", //Not translated, since it's a brand name.
thumbnail: UM.Theme.getIcon("Library", "high"),
description: catalog.i18nc("@tooltip:button", "Create print projects in Digital Library."),
link: "https://digitalfactory.ultimaker.com/app/library?utm_source=cura&utm_medium=software&utm_campaign=switcher-library",
dfRequired: true
DFAccessRequired: true
},
{
displayName: catalog.i18nc("@label:button", "Print jobs"),
thumbnail: UM.Theme.getIcon("FoodBeverages"),
description: catalog.i18nc("@tooltip:button", "Monitor print jobs and reprint from your print history."),
link: "https://digitalfactory.ultimaker.com/app/print-jobs?utm_source=cura&utm_medium=software&utm_campaign=switcher-digital-factory-printjobs",
dfRequired: true
DFAccessRequired: true
},
{
displayName: "Ultimaker Marketplace", //Not translated, since it's a brand name.
thumbnail: UM.Theme.getIcon("Shop", "high"),
description: catalog.i18nc("@tooltip:button", "Extend Ultimaker Cura with plugins and material profiles."),
link: "https://marketplace.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-marketplace-materials",
dfRequired: false
DFAccessRequired: false
},
{
displayName: "Ultimaker Academy", //Not translated, since it's a brand name.
thumbnail: UM.Theme.getIcon("Knowledge"),
description: catalog.i18nc("@tooltip:button", "Become a 3D printing expert with Ultimaker e-learning."),
link: "https://academy.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-academy",
dfRequired: false
DFAccessRequired: false
},
{
displayName: catalog.i18nc("@label:button", "Ultimaker support"),
thumbnail: UM.Theme.getIcon("Help", "high"),
description: catalog.i18nc("@tooltip:button", "Learn how to get started with Ultimaker Cura."),
link: "https://support.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-support",
dfRequired: false
DFAccessRequired: false
},
{
displayName: catalog.i18nc("@label:button", "Ask a question"),
thumbnail: UM.Theme.getIcon("Speak", "high"),
description: catalog.i18nc("@tooltip:button", "Consult the Ultimaker Community."),
link: "https://community.ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-community",
dfRequired: false
DFAccessRequired: false
},
{
displayName: catalog.i18nc("@label:button", "Report a bug"),
thumbnail: UM.Theme.getIcon("Bug", "high"),
description: catalog.i18nc("@tooltip:button", "Let developers know that something is going wrong."),
link: "https://github.com/Ultimaker/Cura/issues/new/choose",
dfRequired: false
DFAccessRequired: false
},
{
displayName: "Ultimaker.com", //Not translated, since it's a URL.
thumbnail: UM.Theme.getIcon("Browser"),
description: catalog.i18nc("@tooltip:button", "Visit the Ultimaker website."),
link: "https://ultimaker.com/?utm_source=cura&utm_medium=software&utm_campaign=switcher-umwebsite",
dfRequired: false
DFAccessRequired: false
}
]
@ -99,7 +99,7 @@ Popup
iconSource: modelData.thumbnail
tooltipText: modelData.description
isExternalLink: true
visible: modelData.dfRequired ? Cura.API.account.isLoggedIn : true
visible: modelData.DFAccessRequired ? Cura.API.account.isLoggedIn & Cura.API.account.additionalRights["df_access"] : true
onClicked: Qt.openUrlExternally(modelData.link)
}