Make WordPress Core

Opened 6 years ago

Last modified 4 years ago

#44000 new enhancement

Add notification bubble to Tools menu for data export/erase requests

Reported by: scottdeluzio's profile scott.deluzio Owned by:
Milestone: Future Release Priority: normal
Severity: normal Version:
Component: Privacy Keywords: has-patch needs-refresh
Focuses: Cc:

Description

Currently, when a user has confirmed their GDPR export or erase request the site admin does not receive a notification or any visual indication that the request has been confirmed. Outside of visiting the Export/Erase pages they will have no way of knowing whether or not the request has been confirmed.
I'm suggesting a notification bubble (similar to when there are comments or plugin updates available) that will indicate the total number of export and erase requests that have been confirmed.

Attachments (8)

44000.patch (2.1 KB) - added by scott.deluzio 6 years ago.
Adds notification bubble to Tools menu for GDPR export/erase confirmations
remove-export-requests-with-44000.patch.jpg (26.7 KB) - added by birgire 6 years ago.
44000.2.diff (2.3 KB) - added by birgire 6 years ago.
tools-bubble-count.jpg (11.4 KB) - added by birgire 6 years ago.
44000.3.diff (1.7 KB) - added by birgire 6 years ago.
44000.4.diff (3.9 KB) - added by birgire 6 years ago.
tools-submenu-bubbles.JPG (14.3 KB) - added by birgire 6 years ago.
germain-tools-menu.png (7.8 KB) - added by scott.deluzio 4 years ago.
German tools menu

Download all attachments as: .zip

Change History (27)

@scott.deluzio
6 years ago

Adds notification bubble to Tools menu for GDPR export/erase confirmations

#1 @scott.deluzio
6 years ago

  • Keywords gdpr added

#2 @birgire
6 years ago

@scott.deluzio thanks for the patch.

I tested 44000.patch but got three notices when I deleted requests.

See remove-export-requests-with-44000.patch.jpg.

Last edited 6 years ago by birgire (previous) (diff)

@birgire
6 years ago

#3 @birgire
6 years ago

44000.2.diff is a suggestion that uses the wp_count_user_requests() function approach in #44034. The patch there would need to be applied here as well to test.

This counts the confirmed user requests for both export and erase, adds them together and displays a bubble count next to the Tools menu.

It also checks for the erase_others_personal_data and erase_others_personal_data capabilities, before displaying the bubble count.

So this approach can handle the case if user has e.g. erase_others_personal_data but not export_others_personal_data, so it would only display the bubble count for confirmed erase requests.

Further adjustments would be to add bubble counts to the sub-menus.

Version 2, edited 6 years ago by birgire (previous) (next) (diff)

#4 @birgire
6 years ago

44000.3.diff takes a similar approach as #43954 (43954.2.diff) and adds the Tools bubble directly into the wp-admin/menu.php file, instead of using a filter. It also re-uses the .plugin-count and .plugin-updates CSS classes as well.

I don't think we can add the submenus directly to the wp-admin/menu.php file as well, because we don't have specific submenu files, to use the in the $submenu['tools.php'] array. So we could look further into what's the best way to add bubbles to the submenus here.

ps: We array cast the counting object, in 44000.2.diff and 44000.3.diff, since it seems problematic to do $obj->request-confirmed with a dash in the property name.

Last edited 6 years ago by birgire (previous) (diff)

@birgire
6 years ago

@birgire
6 years ago

#5 @birgire
6 years ago

44000.4.diff adds the bubble count to the corresponding submenus of the Tools menu, but there's not enough space for it, as we can see in tools-submenu-bubbles.JPG.

#6 @scott.deluzio
6 years ago

@birgire thanks for the feedback/updates on this. Regarding the issue you pointed out in 44000.4.diff with there not being enough space for the bubble. Could that be resolved by a float:left; style on the bubble? The bubbles would then be on the correct line, and the text would then wrap to a new line.

Alternatively, renaming the submenus to shorter names would fix this issue. Something like Export PII, and Erase PII, perhaps?

This ticket was mentioned in Slack in #gdpr-compliance by scottdeluzio. View the logs.


6 years ago

#8 follow-up: @birgire
6 years ago

@scott.deluzio, thanks for the feedback

Hopefully there are some workarounds to avoid two lines per menu item

but I don't see an obvious solution at the moment.

I fear that renaming the menu items would be hard, but that would solve the problem :)

What does PII stand for?

I also played with the width of the menu wrap wider to see the effect on the "Export Personal Data" item:

178px (allows 4 digits)
174px (allows 3 digits)
169px (allows 2 digits)
160px (allows no digit)

but the 160px width is most likely not going to be changed.

#9 @desrosj
6 years ago

  • Component changed from General to Privacy

Moving to the new Privacy component.

#10 in reply to: ↑ 8 @scott.deluzio
6 years ago

Replying to birgire:

What does PII stand for?

PII stands for Personally Identifiable Information. However, with your comment I realize that is not obvious to everyone, and isn't likely to translate well either so perhaps that isn't the best idea.

#11 @desrosj
6 years ago

  • Summary changed from Add notification bubble to Tools menu for GDPR export/erase requests to Add notification bubble to Tools menu for data export/erase requests

#12 @desrosj
6 years ago

  • Keywords gdpr removed

Removing the GDPR keyword. This has been replaced by the new Privacy component and privacy focuses in Trac.

#13 @pento
5 years ago

  • Version trunk deleted

#14 @xkon
4 years ago

I'm personally not much in favor of extra bubbles on the menus. I do understand that the bubbles would be visible from any page while navigating through wp-admin but since Requests target a very specific audience there's no need to have a permanent "look here" factor on the admin area for anyone that has access to view those menus.

We do have a ticket (#49035) on introducing information regarding the Requests at the Dashboard via an existing or new widget.

Would the dashboard widget help as a solution on a quick view of the Requests statuses instead of this approach @scottdeluzio?

#15 @scott.deluzio
4 years ago

@xkon that could work as a solution too. I know for my own personal workflow, I spend very little time looking at the Dashboard, so I would have to be intentional about looking there to see if there were any requests. That's just one person's usage of the Dashboard though, so I can't say that's typical at all.

The purpose of having the bubble would be so that you'd see the notification no matter where you were in the admin, considering some users may login and bypass the Dashboard altogether. Limiting the notice to the Dashboard assumes that people actually pay attention to the Dashboard, and if they do, that they won't "hide" the Dashboard widget showing this information.

I think your comment about Requests targeting a very specific audience can be satisfied by only showing the bubble to just the users who can act on those Requests rather than any user who can see the menu.

#16 @xkon
4 years ago

  • Milestone changed from Awaiting Review to 5.4

Ah, thanks for the reply @scottdeluzio! As always the more minds the better.

And yes I do hear clear & loud that not everyone tends to look at the Dashboard (I'm including myself there as well haha).

I think your comment about Requests targeting a very specific audience can be satisfied by only showing the bubble to just the users who can act on those Requests rather than any user who can see the menu.

This actually made me re-think my reply and yes showing the menus (and the bubbles along with them) will be definitely an option too and this also gives a nice plus as we're currently looking at #44176 that adjusts the capabilities so "privacy roles" can also be created with more granular control. So, that might as well take care of both concerns.

I'll mark this for 5.4 in case we can push both tickets together, so we can re-check the patch here and think of what options we have to avoid the menu breaking in 2 lines due to the longer text.

Export PII and Erase PII, don't look bad to me at all but I'm not sure how often we're able to change strings in this way, as well as if PII would be understandable to all Admins. We do know what PII stands for, but not the majority of the userbase :).

@scott.deluzio
4 years ago

German tools menu

#17 @scott.deluzio
4 years ago

Regarding Export PII and Erase PII, I agree that it probably isn't understandable to all English speaking admins. It may be even more confusing to non-English speaking admins, and those who are trying to translate the text. It may be best to avoid the abbreviations, and leave it as-is (for now anyway).

We're also looking at it from a strictly English perspective. The "Export Personal Data" and "Erase Personal Data" strings translate to much longer strings of text in several other languages.

"Export Personal Data" in English
versus
"Personenbezogene Daten exportieren" in German, for example which does wrap to two lines. https://translate.wordpress.org/projects/wp/dev/de/formal/?filters%5Bstatus%5D=either&filters%5Boriginal_id%5D=6015221&filters%5Btranslation_id%5D=55290459

There are others that are longer than English too. It may just be something we have to live with for the time being.

This ticket was mentioned in Slack in #core-privacy by xkon. View the logs.


4 years ago

#19 @davidbaumwald
4 years ago

  • Keywords needs-refresh added
  • Milestone changed from 5.4 to Future Release

This ticket needs a refreshed patch, and with 5.4 Beta 1 approaching tomorrow, this is being moved to Future Release. If any maintainer or committer feels this can be included in 5.4 or wishes to assume ownership during a specific cycle, feel free to update the milestone accordingly.

Note: See TracTickets for help on using tickets.