ubsicap / paratext_demo_plugins

Sample code to demonstrate how to create a Paratext plugin
2 stars 4 forks source link

API Enhancement Request - Roles #34

Open steve-pence opened 1 year ago

steve-pence commented 1 year ago

We are requesting enhancement of the plugin API's support for permissions to include user roles on projects. Some plugin functionality currently nearing completion for Global Publishing Services should be restricted to project administrators. Lack of this could seriously undermine acceptance of the plugin by the translation community.

Currently, the plugin API properly supports all types of project level permissions except roles. It is possible for a plugin to check whether the user has edit rights on a certain book. There is support to know if the user holds the following lower level permissions: Terms, Renderings, Spellings, Passages, and Progress. Unfortunately, the API currently is missing the essential higher level information contained in Paratext's concept of role, i.e. to know if a user is an Administrator, Translator, Consultant/Typesetter, or Observer.

The GPS application provides functionality that allows a team to "dedicate" one of a project's Extra books for exclusive use of the plugin to assist translation of map terms. The plugin overwrites the entire contents of the chosen book, provides a custom versification, and then loads map-related project renderings into those verses. While we believe this is valuable functionality, it obviously has the potential to be destructive in untrained hands. Our plugin provides appropriate warnings, and offers to create a point in project history prior to taking action that could overwrite existing data. Still, we feel that this type of process needs to be restricted to administrators of the project. Paratext itself properly restricts project management functions such as book creation and deletion to project administrators. We think it will be the translation community's strong expectation that similar functions offered by Paratext plugins have similar safeguards.

It is our understanding that exposing this important functionality is not technically difficult to implement. GPS would greatly appreciate it if this functionality could be added at your earliest convenience.