AndrewPoppe / UserRightsHistory

This external module for REDCap provides a history of user access and permissions in a project.
GNU General Public License v3.0
3 stars 0 forks source link

Address gaps in REDCap's logging #6

Open AndrewPoppe opened 2 years ago

AndrewPoppe commented 2 years ago

If this module is to move to a format based on parsing REDCap's logs, then there are gaps that need to be addressed.

When a project is created in the certain ways, the logs do not store users, user rights, roles, role assignments, instruments, etc. Little can be inferred. Based on logs alone, any given user could have access to the project, any roles could exist, etc. This situation exists when projects are copied, created from a template (the template that was used is not even stored), created via xml, and created as a Clinical Data Mart project.

Furthermore, when users, roles, and role assignments are imported, the actual changes are not logged.

Similarly, when a data dictionary is imported, the instrument changes are not logged.

There are likely other scenarios. This makes an effort to move to a logs-based model for this EM difficult. The primary benefit of doing so is that the EM is able to see history from before it is enabled in the system. However, unless a project was created as an empty project and never imported a data dictionary, users, roles, role assignments, etc., then we would depend on the module to fill in the gaps. This most likely can only be done prospectively by inserting information into the logs as actions are taken. A snapshot of the current state of all projects could be taken when the module is enabled as well. However, the current functionality of the module already does those things in effect, by taking snapshots initially and whenever changes are detected. The percentage of projects that could benefit from a redesign now seems quite small.

AndrewPoppe commented 1 year ago

this branch is likely dead due to this issue, but keep for reference in case something changes with how things are logged in REDCap.