Commit Graph

1624 Commits

Author SHA1 Message Date
cyprain-okeke
bbc1a315e2 billing/pm-24665/license-file-generation-should-fail-for-unpaid-subscription (#7444)
* Add changes for unpaid subscriptions

* Remove the unpaid status and update the test

* Add changes for premium user

* Fix the lint error

* remove subscriptionInfo and use subscription

* Fix file encoding issue

* SubscriptionLicenseValidator.cs is deleted

* Fix the lint error
2026-04-21 13:58:16 +01:00
Eli Grubb
9e1215ae8e [PM-27278] add AccountKeysRequestModel to RegisterFinishRequestModel for account encryption v2 support (#6798)
Deprecating V1 User Asymmetric Key information in favor of new V2 User Asymmetric Account Keys structure.

This PR adds support for the new AccountKeys structure while maintaining support for the legacy UserAsymmetricKey-based flow. Validation is updated to check either AccountKeys or UserAsymmetricKeys are updated. Tests include modeling for both scenarios.
2026-04-21 12:10:56 +09:00
Jared McCannon
94f2bc3bf9 [PM-25056] - Deadlock testing fix (#7478)
* This wraps the delete method in a retry loop in order to protect the delete calls when cleaning up test data.

* Removing database test clean up as these databases should be ephemeral
2026-04-20 09:42:45 -05:00
John Harrington
535fa15825 [PM-33501] Prevent orphaned Sends during user and org deletion (#7386) 2026-04-20 06:52:48 -07:00
Vincent Salucci
cd4e44cb04 chore: remove leftover indirect reference to create default location ff (#7499) 2026-04-18 09:10:48 +10:00
sven-bitwarden
911a5da476 Make PUT Policy identical to PUT Policy/VNext (#7485) 2026-04-17 11:28:26 -05:00
Jared McCannon
21a7e94dc9 [PM-32073] - Added Bulk Get Org Ability (#7476)
* Added bulk get method and cleaned up some test stuff.

* Changes from Code Review
2026-04-17 11:59:18 -04:00
Justin Baur
48060b0867 [PM-35150] Make Setup testable and add test for install (#7445)
* Make `Setup` testable and add test for install

* Update util/Setup/Program.cs

Co-authored-by: Derek Nance <dnance@bitwarden.com>

* Update other callsites

---------

Co-authored-by: Derek Nance <dnance@bitwarden.com>
2026-04-17 10:47:41 -04:00
Patrick-Pimentel-Bitwarden
e113dbd263 feat: [PM-32626] standardize unlock and authentication validation
- Standardize validation on `RegisterFinishRequestModel` so Auth and Unlock data are both required and consistently validated
  - Add salt validation to both unlock and authentication data
  - Enforce that Auth and Unlock data contain matching values
  - Keep validation backwards compatible with older clients
  - Add and update unit tests covering the new validation rules and error messages

Co-authored-by: Ike Kottlowski <ikottlowski@bitwarden.com>
2026-04-17 10:47:09 -04:00
Stephon Brown
94fd9af1f5 [PM-32853] Add Trial Initiation Metadata for Marketing or Product (#7462)
* feat(billing): add FromMarketing property to subscription purchase model

* feat(billing): expose FromMarketing in cloud hosted subscription request

* feat(stripe): define TrialInitiationPath metadata key

* feat(billing): propagate FromMarketing to Stripe trial initiation path

* test(billing): verify Stripe trial initiation path metadata

* fix(billing): run dotnet format
2026-04-17 09:26:34 -05:00
Vijay Oommen
a42eb6c31b PM-22228 Added Phishing events (#7427) 2026-04-17 09:12:33 -05:00
Jimmy Vo
914d412206 [PM-32069] Add ExtendedProviderAbilityCacheService (#7447) 2026-04-17 08:45:15 -04:00
cyprain-okeke
279c3bc94a [PM-24927] Add payment optional support to trial initiation flow (#7418)
* Implement the payment option properties

* Fix the lint error

* Remove payment-optional feature flag
2026-04-17 13:16:11 +01:00
Thomas Rittson
bb5506e934 [PM-34595] Update provider controllers to use authz attribute (#7450)
* Also decouple ProviderClientsController from Billing Team code

* Also add noop authorize attribute where no additional
  authorization is required

* Also remove unused ICurrentContext getters
2026-04-17 07:49:49 +10:00
Brandon Treston
3667f85a00 [PM-35234] Prevent appending duplicate org user in validator request (#7486)
* prevent appending duplicate org user in validator request

* pr feedback
2026-04-16 14:16:30 -04:00
SmithThe4th
bc1818041b [PM-34060] Add bank account item type (#7112)
* Added new bank account type, added minimum version logic and sync filters

* Formatted changes

* changed condition for filtering bank account types

* Fixed tests

* Updated feature flag

* Added comment

* updated feature flag and updated dto

* update ticket for minimum bank account version

* add event types for bank account

* fix client version being null bug

---------

Co-authored-by: Nick Krantz <nick@livefront.com>
2026-04-16 12:32:51 -05:00
Jared Snider
28902acec8 Auth/Innovation/PM-4517 - Device Management - Add Last Activity Date (#7302)
* PM-4517 - Add LastActivityDate to Device entity, interfaces, DTOs, and response models

Adds the LastActivityDate nullable DateTime property to the Device entity,
IDeviceRepository interface (BumpLastActivityDateByIdAsync and
BumpLastActivityDateByIdentifierAsync), DeviceAuthDetails DTO,
DeviceResponseModel, DeviceAuthRequestResponseModel, and the
DevicesLastActivityDate feature flag key in Constants.

* PM-4517 - Add BumpDeviceLastActivityDateCommand with distributed cache guard

Adds IBumpDeviceLastActivityDateCommand and IDeviceLastActivityCacheService
interfaces with their implementations. The cache service uses the persistent
keyed IDistributedCache (Cosmos DB in cloud, SQL Server in self-hosted) with
a 48h TTL to guard against redundant DB writes within the same calendar day.
Moves device DI registration into a consolidated AddDeviceServices() extension.

* PM-4517 - Add LastActivityDate SQL schema, stored procedures, and MSSQL migration

Adds LastActivityDate DATETIME2 column to the Device table. Updates Device_Create
and Device_Update stored procedures. Adds Device_BumpLastActivityDateById and
Device_BumpLastActivityDateByIdentifier stored procedures with a CAST AS DATE
guard as a fallback against redundant writes when the application-layer cache
is unavailable.

* PM-4517 - Implement LastActivityDate repository methods and EF migrations

Implements BumpLastActivityDateByIdAsync and BumpLastActivityDateByIdentifierAsync
in both Dapper (via stored procedures) and EF (via ExecuteUpdateAsync with a
date-level guard). Adds EF migrations for Postgres, SQLite, and MySQL.

* PM-4517 - Bump device LastActivityDate on login and refresh token

Wires IBumpDeviceLastActivityDateCommand into BaseRequestValidator (login path,
keyed on device.Id) and CustomTokenRequestValidator (refresh token path, keyed
on device identifier from subject claims). Both call sites are feature-flagged
behind DevicesLastActivityDate.

* PM-4517 - Move AddDeviceServices() to AddBaseServices alongside IDeviceService

Device services are not user features — co-locating them with IDeviceService
in AddBaseServices is more cohesive than nesting them inside AddUserServices.

* PM-4517 - Swallow transient LastActivityDate bump failures to prevent auth disruption

* PM-4517 - Fix DeviceAuthDetails Dapper constructor parameter order to match LastActivityDate column position

* PM-4517 - Add edge case tests for BumpDeviceLastActivityForRefreshAsync guard conditions

* PM-4517 - Add tests for BumpLastActivityDate flag-disabled, null-device, and happy-path cases

* PM-4517 - Add PM-34091 cleanup TODOs to all DevicesLastActivityDate feature flag sites

* PM-4517 - Refine PM-34091 cleanup TODOs and add missing feature flag disabled test for refresh path

* PM-4517 - Remove redundant LastActivityDate shadow property from DeviceAuthDetails

* PM-4517 - Use CultureInfo.InvariantCulture in date string formatting for CA1305

* PM-4517 - Make _bumpDeviceLastActivityDateCommand protected in base to remove duplicate field in derived class

* PM-4517 - Scope device last activity cache key by userId to prevent cross-user collisions

The Device table's unique constraint is (UserId, Identifier), not Identifier alone,
so two users can share the same device identifier (e.g. account switching in a browser).
Scoping the cache key to device:last-activity:{userId}:{identifier} ensures that a cache
hit for one user never suppresses a DB write for another.

Also adds userId to BumpByIdAsync signature and reorders params to be consistent with
BumpByIdentifierAsync(string identifier, Guid userId).

* PM-4517 - Widen try-catch in TryBumpDeviceLastActivityForRefreshAsync and add happy-path test

Renames BumpDeviceLastActivityForRefreshAsync to TryBumpDeviceLastActivityForRefreshAsync
to signal the swallow-on-error intent. Moves the try-catch to wrap the entire method body,
including GetSubjectId() which can throw InvalidOperationException, so no exception can
escape and disrupt token refresh. Also moves the XML doc comment to RecordActivityForInstallation
where it belongs, and adds a happy-path test verifying BumpByIdentifierAsync is called
with the correct identifier and userId.

* PM-4517 - Capture DateTime.UtcNow once in EF bump methods to ensure consistent timestamp

Avoids a minor inconsistency where the WHERE filter and SET clause could evaluate
DateTime.UtcNow at slightly different moments, aligning behavior with the SQL stored
procedures which use a single @RevisionDate parameter.

* PM-4517 - Preserve LastActivityDate on Device_Update when null to prevent regressions

Device_Update previously overwrote LastActivityDate unconditionally, meaning any unrelated
device update (push token rotation, trust changes, deactivation) could silently regress a
recently-bumped value. COALESCE preserves the existing DB value when NULL is passed, while
still allowing callers to set it in the same write by passing a non-NULL value. The EF
ReplaceAsync override applies the same semantics via IsModified = false. Integration test
added to cover the preserve-on-null behaviour across all DB providers.

* PM-4517 - Add docs

* PM-4517 - Adjust docs

* PM-4517 - Add test coverage for BumpLastActivityDateByIdentifierAsync

* PM-4517 - Per PR feedback, add docs on IDeviceLastActivityCacheService

* PM-4517 - Per PR feedback, adjust IBumpDeviceLastActivityDateCommand.BumpById to be bump by device instead b/c it has all what we need.

* PM-4517 - Per PR feedback, add tech debt ticket.

* PM-4517 - Rename BumpByIdentifierAsync to BumpByIdentifierAndUserIdAsync across the board.

* PM-4517 - Per PR feedback, adjust stored proc names to meet SQL style requirements

* PM-4517 - Replace COALESCE with CASE in Device_Update to prevent stale non-null LastActivityDate overwrites

* PM-4517 - Add EF repository feature parity for replace logic + test to ensure we don't run into this again.

* PM-4517 - Fix DB migration order after main merge.

* PM-4517 - Regenerate EF DB migrations

* PM-4517 - actually regenerate EF DB migrations

* PM-4517 - Add LastActivityDate to Device_ReadActiveWithPendingAuthRequestsByUserId and integration tests
2026-04-16 11:45:26 -04:00
sven-bitwarden
ec01e81b05 [PM-33866] Revocation Reasons: DDL Edition (#7432)
* Initial pass of revocation reason

* 2'nd pass, with tests, of revocation reason

* separate migration concerns, begin using new bulk sprocs

* remove old RevokeManyByIdAsync in favor of RevokeManyAsync

* fix migrations order

* Adjust other missing sprocs

* begrudgingly formats file

* No longer drop now-deprecated sprocs

* Add more views to refresh

* re-adds stored procs

* formatting from restoration

* Fix naming

* Modify sproc file name to match name
2026-04-15 14:20:45 -05:00
Jared McCannon
d9aef5c58f [PM-32068] - Org Ability Extended Cache (#7443)
* Added extended cache implementation for org ability.

* fixed up events

* Moved utilities to service class. Moved tests to integration tests - with specific endpoints tested. moved registration to ext method
2026-04-15 09:46:16 -05:00
Conner Turnbull
9e49955045 [PM-31909] Remove m3 flagged logic (#7352)
* Remove pm-26462-milestone-3 flag from PricingClient

Simplify FamiliesAnnually2025 lookup to always return "families-2025".
Remove PreProcessFamiliesPreMigrationPlan deployment safeguard method
and its call sites. Remove unused IFeatureService constructor dependency.

* Remove pm-26462-milestone-3 flag from UpcomingInvoiceHandler.HandleForOrganizationAsync

Remove milestone3 variable and parameter from
AlignOrganizationSubscriptionConcernsAsync. Simplify guard clause
to only check plan type.

* Update PricingClientTests after pm-26462-milestone-3 removal

Remove IFeatureService from test setup. Delete tests for flag-disabled
safeguard behavior. Clean up remaining test names.

* Update UpcomingInvoiceHandlerTests after pm-26462-milestone-3 removal

Remove all feature flag mock setup lines for PM26462_Milestone_3.
Delete test methods that verified flag-disabled behavior.

* Merge GetPlan lookup key test regions into one
2026-04-14 15:31:56 -04:00
Jordan Aasen
d9518c0eac [PM-30751] - add secure SSRF protection for internal IPs (#7256)
* secure SSRP protection for internal requests

* remove nullable enable

* explicitly handle redirect requests for SSRF

* track current uri in SsrfProtectionHandler. add followRedirects option in AddSsrfProtection

* preserve request method for 301 and 302 requests

* Migrate admin HttpClient usages to IHttpClientFactory

* add missing dep
2026-04-14 10:13:33 -07:00
Jared McCannon
f2141b93d2 [PM-34390] - Fixing Group/Provider User (#7431)
* Added attributes for all groups controller methods. Fixed ProviderUsers get endpoint. udpated tests.

* Added integration tests and removed faux regions
2026-04-14 07:38:14 +10:00
Jared Snider
e0225f9e03 Auth/PM-34130 - Fix DeviceAuthDetails constructor and stored procedure for EDD compliance (#7416)
* PM-34130 - Fix DeviceAuthDetails constructor and stored procedure for EDD compliance

Replace positional 14-arg Dapper constructor with parameterless constructor and
property-setter mapping; rename AuthRequestCreatedAt to AuthRequestCreationDate;
convert IsTrusted to a computed property; update stored procedure to use explicit
column list instead of SELECT D.* for EDD-safe name-based Dapper mapping; add
migration script; expand integration tests for full field mapping, IsTrusted logic,
Unlock type eligibility, inactive device exclusion, and empty device list.

* PM-34130 - Fix EF constructor in DeviceAuthDetails to copy all Device fields

Copy UserId, PushToken, RevisionDate, EncryptedPrivateKey, and Active from
the source Device in the EF constructor. Previously these fields were omitted,
causing IsTrusted to always return false for EF-sourced results.

* PM-34130 - PR feedback resolution

* PM-34130 - Fix migration sort from main merge
2026-04-13 15:50:18 -04:00
Matt Gibson
2e6bf44504 Add SeederApi PlayData delete scheduled job (#7281)
* Use Quartz-based hosted service to clear old play data

We need to stop possible bloat of databases should users of a seeded data fail to appropriately clean up after themselves.

Using the hosted services present in other projects, this adds an alive job and play data delete job to the SeederApi

* Trigger play data delete frequently enough for dev servers

Development servers are unlikely to be running at midnight UTC, so we need to delete more frequently to ensure data is cleaned up. The Job still deletes things older than a day, it just checks much more frequently, now.

* Fixup sonarqube

* Fixup parallel test issues with jobs hosted services

* Remove alive job and unneeded fixme

* Revert "Remove alive job and unneeded fixme"

This reverts commit 0c10e4a675.

* Simplify alive job

Used the wrong job as a template, the api alive job is much more like what we want.

* Update readme to callout ephemeral data
2026-04-13 09:57:23 -07:00
Kyle Spearrin
1cd125e9d9 allow account recovery for revoked status users (#7446) 2026-04-13 10:27:55 +01:00
Conner Turnbull
22398808fa Fix test clock awareness in schedule-aware cancellation (#7440)
* Fix test clock awareness in schedule-aware cancellation

* Update test mocks for SubscriptionGetOptions parameter
2026-04-10 12:16:43 -04:00
Conner Turnbull
aad805a976 [PM-34866][PM-34865] Fix EnableAutomaticTaxAsync to update schedule phases (#7437)
* [PM-34866] Fix EnableAutomaticTaxAsync to update schedule phases

* Use test clock frozen time for phase filtering

* Expand test_clock on customer subscription fetches
2026-04-10 15:50:41 +00:00
Stephon Brown
52ff4a7613 [PM-33301] Add Functionality for Upgrading Using PayPal (#7183)
* feat(billing): implement paypal payments for premium organization upgrade

* test(billing): add paypal payment scenarios for organization upgrade

* tests(billing): simplify tests

* fix(billing): run dotnet format

* style(billing): formatting

* refactor(billing): inline subscription detail fetching logic

* fix(billing): use OrganizationId for PayPal invoice payment

* refactor(billing): simplify subscription item quantity to 1 for upgrades

* feat(subscriber): add type-checking properties to SubscriberId

* refactor(tests): update result assertion to use 'Success' property

* fix(billing) run dotnet format

* feat(billing): implement payment method pre-check for organization upgrade

* feat(billing): refine Stripe subscription payment behavior for default incomplete

* test(billing): update and add tests for organization upgrade command

* chore(billing): clarify comment on user subscription removal

* feat(payment): add type helper properties to masked payment method

* refactor(billing): replace IHasPaymentMethodQuery with IGetPaymentMethodQuery

* feat(billing): prohibit bank accounts for organization upgrades

* refactor(billing): simplify subscription payment behavior logic

* test(billing): update premium organization upgrade bank account test

* feat(billing): allow premium organization upgrade with verified bank accounts

* test(billing): add test for premium organization upgrade with verified bank account

* style(files): remove byte order mark from files

* refactor(billing): centralize premium upgrade billing logic
2026-04-10 11:22:02 -04:00
Kyle Denney
18525843bb [PM-26043] Fix bug: can't add secrets manager to legacy plans (#7414)
* [PM-26043] refactored AddSecretsManagerSubscriptionCommand

move to billing, fix bug unable to add secrets manager to legacy plan by moving all validation into command and skipping the disabled check

* forgot BillingCommandResult is being deprecated

* cleanup

* add unit test coverage

* one more test

* pr feedback

* forgot to fix in actual code file
2026-04-10 09:46:30 -05:00
Jimmy Vo
0bb818bc97 [PM-34147] Add GetManyConfirmedAcceptedDetailsByUserAsync to IOrganizationUserRepository (#7399) 2026-04-10 09:28:28 -04:00
Rui Tomé
3dd72f6118 [PM-22450] Bump Collection.RevisionDate on edits and access changes (#7380)
* Fix UpdateCollectionCommand to set RevisionDate using TimeProvider and update corresponding tests. Adjust tests to verify correct RevisionDate assignment during collection updates.

* Enhance BulkAddCollectionAccessCommand to include revision date in access updates. Update ICollectionRepository and its implementations to accept revision date parameter. Modify stored procedure to update collection revision dates accordingly. Add tests to verify correct behavior of access creation and revision date updates.

* Update GroupRepository and stored procedures to bump RevisionDate for affected collections during group creation and updates. Enhance integration tests to verify that collection revision dates are correctly updated when groups are created or modified.

* Implement revision date updates for affected collections in OrganizationUserRepository and related stored procedures. Add integration tests to ensure revision dates are correctly bumped during organization user creation and updates.

* Update database migration script

* Update migration script summary

* Refactor OrganizationUserReplaceTests to create collection first

* Refactor stored procedures to use Common Table Expressions (CTEs) for updating RevisionDate of affected collections. This change improves readability and maintainability by consolidating the logic for identifying affected collections in Group_UpdateWithCollections and OrganizationUser_UpdateWithCollections procedures.

* Enhance OrganizationUser_CreateManyWithCollectionsAndGroups stored procedure to accept RevisionDate parameter for updating affected collections. Update OrganizationUserRepository to utilize the provided RevisionDate when available, ensuring accurate revision date management during organization user operations.

* Refactor OrganizationUser_CreateManyWithCollectionsGroups and migration script to utilize temporary table for CollectionUser data insertion. This change improves performance and maintains consistency in updating RevisionDate for affected collections.

* Refactor OrganizationUserRepository to consistently use RevisionDate from created OrganizationUsers when updating affected collections. This change enhances the accuracy of revision date management across the repository.

* Refactor tests to ensure consistent handling of RevisionDate across Group and Collection repositories. Update assertions to compare RevisionDate directly, improving accuracy in revision date management during tests.

* Restore BOM in Group_UpdateWithCollections and OrganizationUser_UpdateWithCollections

* Refactor GroupRepository and OrganizationUserRepository to improve handling of RevisionDate. Updated collection filtering logic to use HashSet for efficiency and ensured that affected collections are filtered by OrganizationId, enhancing accuracy in revision date management.

* Bump migration script date

* Remove internal set from RevisionDate on Group and OrganizationUser

The Dapper repositories use a System.Text.Json serialize/deserialize
round-trip to build *WithCollections objects. System.Text.Json silently
skips properties with non-public setters, so RevisionDate was reverting
to DateTime.UtcNow instead of preserving the value set in C#.

* Refactor OrganizationUser_CreateManyWithCollectionsGroups and migration script to improve the logic for updating RevisionDate. The update now uses INNER JOINs to ensure accurate filtering of collections based on OrganizationId and CollectionUser data, enhancing the precision of revision date management.

* Fix sprocs styling

* Added early return to OrganizationUserRepository.CreateManyAsync if the supplied parameter is empty
2026-04-10 07:27:27 +01:00
Jared
b3c8950838 [PM-26383] Remove feature flag from server-side for autoconfirm (#7402)
* Refactor organization user confirmation logic by removing direct feature flag checks. Updated related commands and tests to utilize policy requirements instead of feature service checks for automatic user confirmation. Cleaned up organization form view by simplifying checkbox rendering for automatic user confirmation.

* Refactor ProviderService to remove feature service dependency for automatic user confirmation. Updated logic to streamline policy requirement checks and cleaned up related tests by removing unnecessary feature flag assertions.

* Enhance tests for automatic user confirmation policy requirements. Updated multiple test classes to include checks for `AutomaticUserConfirmationPolicyRequirement`, ensuring no auto-confirm restrictions are applied by default. Refactored related assertions in `AcceptOrgUserCommandTests`, `ConfirmOrganizationUserCommandTests`, `RestoreOrganizationUserCommandTests`, and others to streamline compliance validation logic.

* Enhance tests for automatic user confirmation policy across multiple test classes. Added checks for `AutomaticUserConfirmationPolicyRequirement` in `ConfirmOrganizationUserCommandTests`, `RestoreOrganizationUserCommandTests`, and `SelfHostedOrganizationSignUpCommandTests`, ensuring compliance validation logic is streamlined and consistent. Updated assertions to reflect new policy requirements.

* Implement mock for AutomaticUserConfirmationPolicyRequirement in ProviderServiceTests to enhance test coverage for user confirmation policies.

* Update ProviderServiceTests to include mocks for AutomaticUserConfirmationPolicyRequirement, enhancing test coverage for user acceptance scenarios.

* Refactor test method names in EmergencyAccessServiceTests for clarity by removing feature flag references, improving readability and maintainability of the test suite.
2026-04-09 12:56:23 -04:00
Kyle Denney
bd7e8bb248 [PM-31894] remove storage reconciliation job and flags (#7424) 2026-04-09 10:08:03 -05:00
Stephon Brown
4883d4995e chore(mail): update 'renewal' to 'subscription' in Families email subject (#7406) 2026-04-09 10:31:13 -04:00
Rui Tomé
e10b13f0eb [PM-34178] Add entities, repository and database migrations for Organization Invite Link feature (#7407)
* Add feature flag for Organization Invite Links

* Add OrganizationInviteLink database entity

* Add OrganizationInviteLink table sql script and also OrganizationInviteLinkView that reads from it

* Add OrganizationInviteLink stored procedures for CRUD operations

* Add SQL migration script

* Add EF migrations

* Add EF configurations

* Add IOrganizationInviteLinkRepository and integration tests

* Add OrganizationInviteLinkRepository Dapper implementation

* refactor(tests): Update OrganizationInviteLinkRepositoryTests to use [Theory] attribute for test cases
2026-04-09 15:22:38 +01:00
Jimmy Vo
45ac58b7b5 [PM-34146] Add GetManyConfirmedAcceptedByUserIdAsync(Guid userId) to the IPolicyRepository interface (#7392) 2026-04-09 10:21:09 -04:00
Thomas Rittson
9ceab46d2d Remove missed uses of PolicyRequirements flag (#7426)
This is being used for the RequireSso policy only.
This commit removes the remaining other references.
2026-04-09 07:18:06 -07:00
Jimmy Vo
a29fe6f922 [PM-33044] Provider Ability Refactor EventService (#7411) 2026-04-09 09:48:25 -04:00
Vijay Oommen
aff701b3c0 PM-33194 single integration of a type only (#7280) 2026-04-09 08:14:42 -05:00
John Harrington
ebbf6dd0fa [PM-34383] Add import validation allowing providers to perform imports (#7394)
* resolve auth bypass and enable nullable (tech debt)

* fix failing test
2026-04-08 14:44:17 -07:00
Patrick-Pimentel-Bitwarden
7c4fa752c7 fix(change-email): [PM-34742] Change Email Sets Salt (#7422)
* fix(change-email): [PM-34742] Change Email Sets Salt (#7422) - Fixed email and salt being able to be separated. Added test to confirm rollback on stripe failure.
2026-04-08 17:26:39 +00:00
Patrick-Pimentel-Bitwarden
fc0ce255af Revert "fix(change-email): [PM-34742] Change Email Sets Salt (#7413)" (#7421)
This reverts commit 13eecfd605.
2026-04-08 11:05:57 -04:00
Patrick-Pimentel-Bitwarden
74c4aced74 fix(refactor): [PM-34246] Rename Set Password to Finalize Onboarding (#7328)
* fix(refactor): [PM-34246] Rename Set Password to Finalize Onboarding - Initial set of renames take two.

* fix(refactor): [PM-34246] Rename Set Password to Finalize Onboarding - Updated function name.

* fix(refactor): [PM-34246] Rename Set Password to Finalize Onboarding - Fixed test.

* fix(refactor): [PM-34246] Rename Set Password to Finalize Onboarding - Unborked tests.

* fix(refactor): [PM-34246] Rename Set Password to Finalize Onboarding - Changed test names.
2026-04-08 11:00:17 -04:00
Jared McCannon
eb251d9bf8 Removing not scim check from api-key and rotate-api-key (#7403) 2026-04-08 09:58:58 -05:00
Alex Morask
a5052d8d0f fix(billing): skip ended schedule phases when updating storage (#7420) 2026-04-08 09:51:03 -05:00
sven-bitwarden
54023cac9a [PM-33213] Remove FeatureFlag Around ResetPassword && PolicyRequirements (#7188)
* Remove policy requirement feature flags around ResetPassword policyˆ

* Remove unused elements

* Remove unused elements

* Remove more unused elements

* More unused elements!

* remove policy requirement for organizationscontroller

* Fix test to revert to PolicyQuery

* Remove unused code

* Restore PolicyQuery for OrganizationService

* Add TODOs indicating why we are staying on policyquery
2026-04-08 09:44:55 -05:00
Graham Walker
f6e858b296 PM-34686 initial commmit (#7398) 2026-04-08 07:43:05 -05:00
Patrick-Pimentel-Bitwarden
13eecfd605 fix(change-email): [PM-34742] Change Email Sets Salt (#7413)
* fix(change-email): [PM-34742] Change Email Sets Salt - Fixed prelogin to respond back with salt data coming from database.

* fix(change-email): [PM-34742] Change Email Sets Salt - Fixed change email.

* test(change-email): [PM-34742] Change Email Sets Salt - Updated and added more tests
2026-04-07 18:47:19 -04:00
Jordan Aasen
d038dfa261 [PM-33500] - delete attachments from deleted ciphers (#7208)
* delete attachments from deleted ciphers

* add DeleteAttachmentsForOrganizationAsync to cipher service. update specs

* fix test

* only grab cipherId for attachments deletion

* add missing directive

---------

Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
2026-04-07 21:12:59 +00:00
Alex Morask
aa1aa58190 fix(billing): use top-level ProrationBehavior on schedule updates for immediate storage invoicing (#7410) 2026-04-07 15:09:21 -05:00