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

Improve confirm access dialog for browser plugin #2143

Merged

Conversation

varjolintu
Copy link
Member

Improves the confirm access dialog when requesting credentials from KeePassXC-Browser.

Description

When confirm access dialog is displayed it's possible to select one or more credentials which are allowed or denied. All credentials are selected by default. Only the selected credentials are affected with the remember checkbox. Permissions to non-selected credentials will remain the same.

Motivation and context

Previously you could select one credential from the popup but the selection didn't actually do anything. All credentials were still allowed or denied.

How has this been tested?

Manually.

Types of changes

  • ✅ New feature (non-breaking change which adds functionality)

Checklist:

  • ✅ I have read the CONTRIBUTING document. [REQUIRED]
  • ✅ My code follows the code style of this project. [REQUIRED]
  • ✅ All new and existing tests passed. [REQUIRED]
  • ✅ I have compiled and verified my code with -DWITH_ASAN=ON. [REQUIRED]

@varjolintu varjolintu added this to the v2.3.4 milestone Jul 22, 2018
@varjolintu varjolintu force-pushed the confirm_dialog_improvement branch from dc20748 to d0be8cd Compare July 22, 2018 16:03
Copy link
Member

@droidmonkey droidmonkey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The whole dialog needs to be rethinked. In fact, with this change the meaning of "Approve" and "Deny" change depending on your selections. It is not entirely obvious to the user what will happen. When you "Deny" selected entries you are implicitly approving non-selected entries. That is a little weird to me.

I think we should discuss this function, and move this to 2.4

src/browser/BrowserService.cpp Outdated Show resolved Hide resolved
}

return false;
return (res == QDialog::Accepted) ? selectedEntriesList : nonSelectedEntriesList;;
Copy link
Member

@droidmonkey droidmonkey Aug 20, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove extra semi-colon. Why would you return the non-selected entries??

edit: answered my own question in the general comment, non selected entries are implicitly approved when "Deny" is selected.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved yes, but the setting is not remembered. What would you suggest that will happen when user has e.g. three entries and denies only one of them?

src/browser/BrowserAccessControlDialog.cpp Outdated Show resolved Hide resolved
src/browser/BrowserService.cpp Outdated Show resolved Hide resolved
@droidmonkey droidmonkey modified the milestones: v2.3.4, v2.4.0 Aug 20, 2018
@varjolintu varjolintu force-pushed the confirm_dialog_improvement branch from d0be8cd to 8b96f5c Compare August 20, 2018 06:47
@droidmonkey droidmonkey changed the base branch from release/2.3.4 to develop August 22, 2018 16:37
@droidmonkey
Copy link
Member

Don't know why this was closed, reopened.

@droidmonkey droidmonkey reopened this Aug 22, 2018
@droidmonkey droidmonkey changed the title Improvements to confirm access dialog Improve confirm access dialog for browser plugin Sep 19, 2018
src/browser/BrowserService.cpp Outdated Show resolved Hide resolved
src/browser/BrowserService.cpp Outdated Show resolved Hide resolved
@droidmonkey
Copy link
Member

@varjolintu do you want to keep this PR or start over from scratch? I believe this needs to be addressed along with the UX updates on the extension side.

@varjolintu
Copy link
Member Author

@droidmonkey I'd like to keep this PR. I'm going to rebase it soon and see if everything still works.

@varjolintu varjolintu force-pushed the confirm_dialog_improvement branch from 52ab8bc to 19b0f38 Compare June 19, 2019 07:26
@varjolintu
Copy link
Member Author

Rebased.

@droidmonkey droidmonkey modified the milestones: v2.5.0, v2.5.1 Oct 5, 2019
@droidmonkey droidmonkey force-pushed the confirm_dialog_improvement branch from 19b0f38 to 0e2ab0a Compare October 18, 2019 21:18
@droidmonkey droidmonkey dismissed stale reviews from phoerious and themself October 18, 2019 21:19

outdated

@droidmonkey droidmonkey modified the milestones: v2.5.1, v2.6.0 Nov 2, 2019
@droidmonkey droidmonkey force-pushed the confirm_dialog_improvement branch from 0e2ab0a to 85fd6e5 Compare November 18, 2019 03:46
@droidmonkey droidmonkey force-pushed the confirm_dialog_improvement branch from 85fd6e5 to ab6daf2 Compare January 5, 2020 17:07
@droidmonkey
Copy link
Member

droidmonkey commented Jan 5, 2020

Made significant edits to the workflow (as a new commit):

image

@droidmonkey droidmonkey force-pushed the confirm_dialog_improvement branch 2 times, most recently from 68164d0 to 586f097 Compare January 5, 2020 17:18
Copy link
Member

@phoerious phoerious left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Two nitpicks.

src/browser/BrowserAccessControlDialog.cpp Outdated Show resolved Hide resolved
src/browser/BrowserService.cpp Outdated Show resolved Hide resolved
@droidmonkey droidmonkey force-pushed the confirm_dialog_improvement branch from 586f097 to 1e1a444 Compare January 6, 2020 02:33
* Disable access to entries immediately within the dialog
* Use checkboxes instead of row selection
* Add button to deny all access immediately
@droidmonkey droidmonkey force-pushed the confirm_dialog_improvement branch from 1e1a444 to 1ebdf13 Compare January 28, 2020 04:04
@droidmonkey droidmonkey dismissed phoerious’s stale review January 30, 2020 00:20

changes were made

@droidmonkey droidmonkey merged commit 0383aa1 into keepassxreboot:develop Jan 30, 2020
@varjolintu varjolintu deleted the confirm_dialog_improvement branch January 30, 2020 07:00
droidmonkey added a commit that referenced this pull request Jul 7, 2020
Added

- Custom Light and Dark themes [#4110, #4769, #4791, #4796, #4892, #4915]
- Compact mode to use classic Group and Entry line height [#4910]
- View menu to quickly switch themes, compact mode, and toggle UI elements [#4910]
- Search for groups and scope search to matched groups [#4705]
- Save Database Backup feature [#4550]
- Sort entries by "natural order" and move lines up/down [#4357]
- Option to launch KeePassXC on system startup/login [#4675]
- Caps Lock warning on password input fields [#3646]
- Add "Size" column to entry view [#4588]
- Browser-like tab experience using Ctrl+[Num] (Alt+[Num] on Linux) [#4063, #4305]
- Password Generator: Define additional characters to choose from [#3876]
- Reports: Database password health check (offline) [#3993]
- Reports: HIBP online service to check for breached passwords [#4438]
- Auto-Type: DateTime placeholders [#4409]
- Browser: Show group name in results sent to browser extension [#4111]
- Browser: Ability to define a custom browser location (macOS and Linux only) [#4148]
- Browser: Ability to change root group UUID and inline edit connection ID [#4315, #4591]
- CLI: `db-info` command [#4231]
- CLI: Use wl-clipboard if xclip is not available (Linux) [#4323]
- CLI: Incorporate xclip into snap builds [#4697]
- SSH Agent: Key file path env substitution, SSH_AUTH_SOCK override, and connection test [#3769, #3801, #4545]
- SSH Agent: Context menu actions to add/remove keys [#4290]

Changed

- Complete replacement of default database icons [#4699]
- Complete replacement of application icons [#4066, #4161, #4203, #4411]
- Complete rewrite of documentation and manpages using Asciidoctor [#4937]
- Complete refactor of config files; separate between local and roaming [#4665]
- Complete refactor of browser integration and proxy code [#4680]
- Complete refactor of hardware key integration (YubiKey and OnlyKey) [#4584, #4843]
- Significantly improve performance when saving and opening databases [#4309, #4833]
- Remove read-only detection for database files [#4508]
- Overhaul of password fields and password generator [#4367]
- Replace instances of "Master Key" with "Database Credentials" [#4929]
- Change settings checkboxes to positive phrasing for consistency [#4715]
- Improve UX of using entry actions (focus fix) [#3893]
- Set expiration time to Now when enabling entry expiration [#4406]
- Always show "New Entry" in context menu [#4617]
- Issue warning before adding large attachments [#4651]
- Improve importing OPVault [#4630]
- Improve AutoOpen capability [#3901, #4752]
- Check for updates every 7 days even while still running [#4752]
- Improve Windows installer UI/UX [#4675]
- Improve config file handling of portable distribution [#4131, #4752]
- macOS: Hide dock icon when application is hidden to tray [#4782]
- Browser: Use unlock dialog to improve UX of opening a locked database [#3698]
- Browser: Improve database and entry settings experience [#4392, #4591]
- Browser: Improve confirm access dialog [#2143, #4660]
- KeeShare: Improve monitoring file changes of shares [#4720]
- CLI: Rename `create` command to `db-create` [#4231]
- CLI: Cleanup `db-create` options (`--set-key-file` and `--set-password`) [#4313]
- CLI: Use stderr for help text and password prompts [#4086, #4623]
- FdoSecrets: Display existing secret service process [#4128]

Fixed

- Fix changing focus around the main window using tab key [#4641]
- Fix search field clearing while still using the application [#4368]
- Improve search help widget displaying on macOS and Linux [#4236]
- Return keyboard focus after editing an entry [#4287]
- Reset database path after failed "Save As" [#4526]
- Use SHA256 Digest for Windows code signing [#4129]
- Improve handling of ccache when building [#4104, #4335]
- macOS: Properly re-hide application window after browser integration and Auto-Type usage [#4909]
- Auto-Type: Fix crash when performing on new entry [#4132]
- Browser: Send legacy HTTP settings to recycle bin [#4589]
- Browser: Fix merging browser keys [#4685]
- CLI: Fix encoding when exporting database [#3921]
- SSH Agent: Improve reliability and underlying code [#3833, #4256, #4549, #4595]
- FdoSecrets: Fix crash when editing settings before service is enabled [#4332]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants