qgis / QGIS-Enhancement-Proposals

QEP's (QGIS Enhancement Proposals) are used in the process of creating and discussing new enhancements for QGIS

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

A better experience for first time plugin manager users

timlinux opened this issue · comments

QGIS Enhancement: A better experience for first time plugin manager users

Date 2024/03/06

Author Tim Sutton (@timlinux)

Contact tim@kartoza.com

maintainer @timlinux

Version QGIS 3.38 and beyond

Summary

For a long time I have been unhappy about our security posture with regards to python plugins. Today I happened to see that Jupyter gives their users exactly the experience I think we should be giving our users, so I decided to actually write this QEP.

image

Proposed Solution

For any new profile or new install, block the plugin manager until the user has explicitly accepted the terms, an adapted version of which I provide below:

The QGIS development team is excited to have a robust third-party plugin community. Although we do a basic review of third-party plugins, this review process is not exhaustive and some plugins may introduce security risks or contain malicious code that runs on your machine. Moreover in order to work, this plugin manager needs to fetch data from web services. Do you agree to activate this feature?

I really like the visual design approach they took, making the 'accept' button RED and the 'deny' button gray.

Affected Files

Probably these:

  • QGIS/src/ui/qgspluginmanagerbase.ui
  • QGIS/src/app/pluginmanager/qgspluginmanager.h
  • QGIS/src/app/pluginmanager/qgspluginmanager_texts.cpp
  • QGIS/src/app/pluginmanager/qgspluginmanager.cpp

Performance Implications

None

Further Considerations/Improvements

None

Backwards Compatibility

Would be great to backport this to LTR

Issue Tracking ID(s)

Votes

(required)

Will it affected pre-installed plugin or plugin that installed manually (e.g. copying the plugin to the profile directory) ? Or only the plugin manager dialog only?

@ismailsunni the idea would be to 'cover' the plugins dialog with this message the first time it is used. So it would have no effect if you already have plugins installed manually in the plugin dir.

I would also add in the future some scanner feature that prevents compiled binaries to be silently shipped

+1

For any new profile or new install, block the plugin manager until the user has explicitly accepted the terms

I guess this means we need to think about our Core plugins currently available through this dialog, namely Processing, metasearch... whether they are moved out of the manager dialog, or we only block access to third-party plugins once in the manager dialog.