mirror of
https://github.com/bitwarden/android.git
synced 2026-03-18 11:44:32 -05:00
Closed
opened 2025-11-26 23:34:17 -06:00 by GiteaMirror
·
0 comments
No Branch/Tag Specified
main
android-collections
PM-29829/duplicate-items-created-scanning-qrcode
sdlc/sdk-update
PM-25654-preview-attachment
cx/android-architect-agent
PM-30130-remove-archive-feature-flag
premium-upgrade/PM-33510-billing-manager
llm/add-resolving-sdk-updates-skill
premium-upgrade/PM-33509-billing-repository
QA-1523/sanity-test-saucelabs
release/2026.3-rc48
PM-24380/flight-recorder-redact-hostname
PM-26577-app-links-support
PM-26896-autofill-fix
release/2026.2-rc47
PM-32714/fallback-to-web-vault-host
pr-6572
PM-28834/setting-app-layout-horizonos
release/2026.2-rc46
release/2026.1-rc45
PM-30644/added-logs-for-debug
PM-30644/quicktile-nav-not-showing-migration
minor-gradle-updates
release/2026.1-rc42
release/2026.1-rc44
release/2026.1-rc43
PM-28834/set-landscape-on-horizonos-devices
context-rules
devclarity/update-code-review-command
PM-20026/force-ltr-passwords-and-codes
release/2025.12-rc41
cmcg/testCoverage
PM-29014/talkback-support-for-passwords
release/2025.12-rc40
BRE-1305/publish_test
accept-user-certs
autofill-permissions
release/2025.11-rc39
PM-22479/check-all-certificates-validate-asset-links
release/2025.10-rc38
agalles/android-latest
optimize-test-workflows
tier2-test-sharding
retro-agent
PM-27001/skip-account-selection-only-one-exists-cxp
release/2025.10-rc37
agalles/test-1118
release/2025.10-rc36
PM-20593-token-refresh
QA-1126b/adding-native-sanity-test
release/2025.9-rc35
pm-25933/sdk-update-password
release/2025.9-rc34
release/2025.8-rc33
agalles/20250821-release
debug-release-issues
pm-24249-allow-automated-prs-for-sdk-updates
release/2025.8-rc32
release/WORKFLOW-TEST-2025.8-rc28
agalles/20250807release
release/2025.07-rc25
release/hotfix-v2025.7.0-bwa
pm-23311/export-vault-policy-bypass
release/2025.07-rc24
authenticator-pm-sync-flags-issue
ps/implement-sdk-repository-example
release/hotfix-v2025.6.0-bwpm
release/2025.06-rc21
agalles/automate-android-fastlane-patch
release/2025.05-rc20
release/2025.04-rc19
languages/basque
release/2025.03-rc19
update-readme
qrcode/feature
innovation/archive/pm-19153-archive-items
qrcode/2-ui-fields
qrcode/1-page
hold-on-biometric-prompt-alternative
release-notes-process
release/2025.02-rc16
bwa-monorepo
PM-8223/new-device-verification-ux-improvements
pm-18451/exempt-from-policies
test-bwa
cs-workaround-linked-0-copy
release/2025.01-rc15
release/2025.01-rc14
release/2024.12-rc13
pm-16670/sync-leave-notice
821
PM-16695/backport-lean-more-new-device-verification
km/15084-testing
release/hotfix-v2024.11.7
release/2024.11-rc1
pm-11304/collection-add-item-button
PM-14241/disabling-logs-app-crash
poc/offline-editing
new-version-calc
pm-11649/expired-link-services
pm-6702/add-feature-flag
pm-6702/email-verification-feature
pm-9933/marketing-copy-update
pm-6702/registration-flows
update-templates
pm-6701/email-verification-selfhost-registration
v2026.2.1-bwpm
v2026.2.1-bwa
v2026.2.0-bwpm
v2026.2.0-bwa
v2026.1.1-bwa
v2026.1.1-bwpm
temp-test
v2026.1.0-bwpm
v2026.1.0-bwa
v2025.12.1-bwa
v2025.12.1-bwpm
v2025.12.0-bwa
v2025.12.0-bwpm
v2025.11.1-bwpm
v2025.11.1-bwa
v2025.11.0-bwpm
v2025.11.0-bwa
v2025.10.1-bwa
v2025.10.1-bwpm
v2025.10.0-bwa
v2025.10.0-bwpm
v2025.9.1-bwa
v2025.9.1-bwpm
v2025.9.0-bwa
v2025.9.0-bwpm
v2025.8.1-bwa
v2025.8.1-bwpm
v2025.8.0-bwa
v2025.8.0-bwpm
v2025.7.2-bwa
v2025.7.2-bwpm
v2025.7.1-bwa
v2025.7.1-bwpm
v2025.7.0-bwa
v2025.7.0-bwpm
v2025.6.1-bwpm
v2025.6.0-bwa
v2025.6.0-bwpm
v2025.1.0-bwa
v2025.5.0-bwa
v2025.5.0-bwpm
v2025.5.999
2025.4.0
v2025.4.0
untagged-4731eaadac73f3dfbbb8
v2025.3.0
v2025.2.0
untagged-815a165c5d70ffe75bc7
v2025.1.2
v2025.1.1
v2025.1.0
v2024.12.0
untagged-5a76b6392a4c8998c63a
v2024.11.7
v2024.11.6
v2024.11.5
v2024.11.4
v2024.11.3
v2024.11.2
v2024.11.1
v2024.11.0
v2024.10.2
v2024.10.1
v2024.10.0
v2024.9.0
v2024.8.1
v2024.8.0
v2024.7.3
v2024.7.2
v2024.7.1
v2024.7.0
v2024.6.1
v2024.6.0
v2024.5.1
v2024.4.1
v2024.4.2
v2024.4.0
v2024.3.3
v2024.3.1
v2024.3.0
v2024.2.1
v2024.2.0
v2024.1.1
v2024.1.0
v2023.12.0
v2023.10.0
v2023.9.2
maui-single-project-android
v2023.9.1
v2023.9.0
v2023.8.0
v2023.7.0
v2023.5.0
v2023.4.0
v2023.3.2
v2023.3.1
v2023.3.0
v2023.2.0
v2023.1.0
v2022.11.0
v2022.10.0
v2022.9.1
v2022.9.0
v2022.8.0
v2022.6.2
v2022.6.1
v2022.6.0
v2022.05.0
v2.18.0
v2.17.0
v2.16.4
v2.16.3
v2.16.2
v2.16.1
v2.15.0
v2.14.2
v2.14.1
v2.14.0
v2.13.0
v2.12.0
v2.11.3
v2.11.2
v2.11.1
v2.11.0
v2.10.0
v2.9.1
v2.9.0
v2.8.2
v2.8.1
v2.8.0
v2.7.2
v2.7.0
v2.6.1
v2.6.0
v2.5.6
v.2.5.5
v2.5.5
v2.5.4
v2.5.3
v2.5.2
v2.5.1
v2.5.0
v2.4.3
v2.4.2
v2.4.1
v2.4.0
v2.3.1
v2.3.0
v2.2.8
v2.2.7
v2.2.6
v2.2.2
v2.2.1
v2.2.0
v2.1.2
v2.1.0
v2.0.6
v2.0.5
v2.0.4
v2.0.3
v2.0.2
v2.0.1
v2.0.0
v1.22.1
v1.22.0
v1.21.0
v1.20.0
v1.19.0
v1.18.1
v1.18.0
v1.17.0
v1.16.0
v1.15.2
v1.15.1
v1.15.0
v1.14.4
v1.14.1
v1.14.0
v1.13.0
v1.12.2
v1.12.1
v1.12.0
v1.11.1
v1.11.0
v1.10.0
v1.9.0
v1.8.1
v1.8.0
v1.7.0
v1.6.5
v1.6.1
v1.6.0
v1.5.1
v1.5.0
v1.4.4
v1.4.3
v1.4.0
v1.3.0
v1.2.1
v1.2.0
v1.1.0
v1.0.0
v0.0.6
v0.0.5
v0.0.4
v0.0.3
v0.0.2
v0.0.1
No Label
pull-request
Milestone
No items
No Milestone
Projects
Clear projects
No project
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: github-starred/android#3550
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/bitwarden/android/pull/2410
Author: @shane-melton
Created: 3/9/2023
Status: ✅ Merged
Merged: 4/17/2023
Merged by: @shane-melton
Base:
master← Head:AC-1070-expand-master-pass-reqs📝 Commits (10+)
81d5f94[AC-1070] Add EnforceOnLogin property to MasterPasswordPolicyOptions8c3a1af[AC-1070] Add MasterPasswordPolicy property to Identity responses3b0e6c7[AC-1070] Add policy service dependency to auth service721db09[AC-1070] Introduce logic to evaluate master password after successful logind208bc8[AC-1070] Add optional ForcePasswordResetReason to profile / state servicec2284e1[AC-1070] Save ForcePasswordResetReason to state when a weak master password is found during login723df74[AC-1070] Check for a saved ForcePasswordReset reason on TabsPage load force show the update password page7246e18[AC-1070] Make InitAsync virtual4bb4d59[AC-1070] Modify UpdateTempPassword page appearance1d767fe[AC-1070] Add update password method to Api service📊 Changes
23 files changed (+379 additions, -33 deletions)
View changed files
📝
src/App/App.xaml.cs(+8 -0)📝
src/App/Pages/Accounts/BaseChangePasswordViewModel.cs(+3 -6)📝
src/App/Pages/Accounts/LockPageViewModel.cs(+47 -1)📝
src/App/Pages/Accounts/UpdateTempPasswordPage.xaml(+35 -1)📝
src/App/Pages/Accounts/UpdateTempPasswordPageViewModel.cs(+93 -11)📝
src/App/Pages/TabsPage.cs(+10 -0)📝
src/App/Resources/AppResources.Designer.cs(+18 -0)📝
src/App/Resources/AppResources.resx(+6 -0)📝
src/Core/Abstractions/IApiService.cs(+2 -1)📝
src/Core/Abstractions/IStateService.cs(+2 -0)📝
src/Core/Constants.cs(+1 -0)📝
src/Core/Models/Domain/Account.cs(+2 -0)➕
src/Core/Models/Domain/ForcePasswordResetReason.cs(+16 -0)📝
src/Core/Models/Domain/MasterPasswordPolicyOptions.cs(+1 -0)➕
src/Core/Models/Request/PasswordRequest.cs(+10 -0)📝
src/Core/Models/Response/IdentityTokenResponse.cs(+4 -1)📝
src/Core/Models/Response/IdentityTwoFactorResponse.cs(+2 -0)➕
src/Core/Models/Response/VerifyMasterPasswordResponse.cs(+9 -0)📝
src/Core/Services/ApiService.cs(+8 -3)📝
src/Core/Services/AuthService.cs(+75 -4)...and 3 more files
📄 Description
Type of change
Objective
Implement new functionality to evaluate a master password on login if the new option to enforce on login is enabled. If enabled, whenever a user logs in, their master password will be evaluated against the organization's password requirements. If it fails the requirements, the user will be redirected to the update password page and forced to update to a new master password that meets the requirements. The same requirements are also checked during an a vault unlock with master password to ensure existing SSO members are also compliant with the organization's policy.
Related PRs
Required server PR can be found here: https://github.com/bitwarden/server/pull/2714
Clients repo PR with similar functionality for other clients: https://github.com/bitwarden/clients/pull/4795
Code changes
Forcing Password Reset
src/App/App.xaml.cs: Listen for new
forceUpdatePasswordcommand to navigate to the update password page. Similar to theconvertAccountToKeyConnectorcommand.src/App/Pages/TabsPage.cs: On page load, check if there is a
forceResetPasswordReasonsaved to the account's state. If so, fire theforceUpdatePasswordcommand to navigate to the update password page. This is to prevent users from skipping the update password page by restarting the app.Model Changes
src/Core/Models/Domain/MasterPasswordPolicyOptions.cs: Add the new
EnforceOnLoginflag that is now available on the master password policy data.src/Core/Models/Response/IdentityTokenResponse.cs: Add
MasterPasswordPolicyfield that is now returned in the response.src/Core/Models/Response/IdentityTwoFactorResponse.cs: Same as above.
src/Core/Models/Response/VerifyMasterPasswordResponse.cs: New response model that is returned when a user verifies their master password with the server that includes the master password policy for that user (during a vault unlock).
Service Changes
src/Core/Abstractions/IStateService.cs: Add methods to get/set an accounts
forcePasswordResetReason. The auth service will set the value after successful authentication and the password is "weak". It can then be fetched in theTabsPage.csto check if the user should be forced to update their password.src/Core/Services/AuthService.cs: Bulk of the logic change. During password login, the master password is evaluated using the master password policy returned by the Identity response. If the password does not meet requirements, save the reason to the account state to force a password update. Additional logic is in place to support 2FA login flow.
src/Core/Abstractions/IApiService.cs: Add method to update the user's password
Page Changes
src/App/Pages/Accounts/UpdateTempPasswordPage.xaml: Update the warning text to depend on the reason for the password reset. Conditionally show a new "Current master password" field if updating a weak master password (not required for admin password resets)
src/App/Pages/Accounts/UpdateTempPasswordPageViewModel.cs: Add logic to support updating both admin reset passwords and weak master passwords depending on the reason the user is on the page.
Screenshots
Before you submit
dotnet format --verify-no-changes) (required)🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.