Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

If journalists enable NoScript, they don't get warning when deleting source codename #295

Closed
trevortimm opened this issue Jan 28, 2014 · 13 comments · Fixed by #2946
Closed
Labels
help wanted Issues we would definitely appreciate volunteer help with
Milestone

Comments

@trevortimm
Copy link
Contributor

Journalists who have scripts turned off do not get an 'are you sure?' warning when they go to delete a source code name.

The means that journalists engaged in best security practices are ironically more at risk at slipping up and deleting a communications line with a legitimate source.

@diracdeltas
Copy link
Contributor

I've noticed this too.

We could redirect them to a "Are you sure you want to delete these codenames?" page and then force them to click through it before deleting.

@garrettr
Copy link
Contributor

@diracdeltas That would work, but I'd actually encourage taking a different approach (would require some backend work). I really hate the UX of these confirmations, because 99% if I click "delete x", I meant it. But then there's the 1% of times when it was a (potentially catastrophic) accident, and I want to undo it.

So - let's add an "undo" feature instead. Banish confirmations, and instead show what was deleted in the response and give a button to "undo" the change. Github is a great example of a site that uses this pattern (try deleting a comment).

To implement this on the backend, we'll want to use a work queue. This should be straightforward. If you guys agree with this UX change, comment affirmatively and I can start working on implementing that.

@trevortimm Note that other features of the journalist UX (for example, the "select all" and "select none" buttons) won't work if JS is disabled.

@garrettr
Copy link
Contributor

Ack, my example was bad! Deleting a comment uses a JS confirmation and then deletes it with no option to undo. I've seen the suggested pattern elsewhere on Github though, just can't remember where.

@diracdeltas
Copy link
Contributor

This sounds like a good UX improvement. How long would you wait before permanently deleting?

@garrettr
Copy link
Contributor

In my mind, the key use case is the "oops, I hit the wrong button" moment of terror, so the delay doesn't have to be long. 5-10 minutes seems reasonable to me.

@dolanjs
Copy link
Contributor

dolanjs commented Jan 29, 2014

I think that the 5-10 min queue would suffice and this approach is better
than the warning message.
On Jan 28, 2014 8:04 PM, "Garrett Robinson" [email protected]
wrote:

In my mind, the key use case is the "oops, I hit the wrong button" moment
of terror, so the delay doesn't have to be long. 5-10 minutes seems
reasonable to me.

Reply to this email directly or view it on GitHubhttps://github.com//issues/295#issuecomment-33546510
.

@rosatolen
Copy link

Picking this up. https://trello.com/c/IposmE55

@psivesely psivesely changed the title If journalists enable NoScripts, they don't get warning when deleting source codename If journalists enable NoScript, they don't get warning when deleting source codename Nov 6, 2016
@psivesely
Copy link
Contributor

Note this is the same for deleting journalists/ admins.

@redshiftzero redshiftzero added this to the Product Backlog milestone May 10, 2017
@heartsucker
Copy link
Contributor

@redshiftzero Hackathon candidate again?

@redshiftzero redshiftzero added the help wanted Issues we would definitely appreciate volunteer help with label Aug 19, 2017
@redshiftzero
Copy link
Contributor

Good call - added!

@daonb
Copy link
Contributor

daonb commented Nov 4, 2017

This seems the oldest issue for the Hackathon, so I'll have a go. Here's what I figured:

Good security dictates disabling JS. When that happens, the system requires no confirmation for destructive actions, like deletion. The proposed solution is to add all critical actions to a work queue with an activation timer of 10 minutes and give the user 7 minutes to click an Oops button and revert the change.

On the UX side, we need to list all the critical activities. On the front we'll need a simple, template based notification system to display a one line with the last critical activity and an Oops link. On the back we need a work queue (not sure if we have one) and a task runner to handle all critical activities.

@heartsucker
Copy link
Contributor

I think that's actually more complicated. What we could do is have JS buttons start with a default form action pointing to some HTML page that asks for a confirm. Then the JS erases that and replaces it with the confirm popup before going ahead with the action.

I think that's more inline with how some of the other behavior is and more intuitive. I think people assume most actions on websites don't have an "oops" option.

@daonb
Copy link
Contributor

daonb commented Nov 4, 2017

After talking with the guys at lunch, we want to suggest to keep things simple and resolve this granddaddy of an issue. We've got about 3 hours to go in the TLV Hackathon...

Let's replace the js based approval system with a new HTML confirmation page. What @heartsucker suggested is clearly better, but we don't have the time.I suggest we solve this the simplest way and open an fresh issue for the Oops button.

daonb added a commit to daonb/securedrop that referenced this issue Nov 4, 2017
ghost pushed a commit to daonb/securedrop that referenced this issue Nov 23, 2017
ghost pushed a commit to daonb/securedrop that referenced this issue Dec 7, 2017
@ghost ghost closed this as completed in #2946 Feb 2, 2018
@redshiftzero redshiftzero modified the milestones: Product Backlog, 0.6 Feb 27, 2018
This issue was closed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
help wanted Issues we would definitely appreciate volunteer help with
Projects
None yet
Development

Successfully merging a pull request may close this issue.

9 participants