1
0
mirror of https://github.com/bitwarden/server.git synced 2025-04-25 23:02:17 -05:00

2539 Commits

Author SHA1 Message Date
Patrick-Pimentel-Bitwarden
ac6bc40d85
feat(2FA): [PM-17129] Login with 2FA Recovery Code
* feat(2FA): [PM-17129] Login with 2FA Recovery Code - Login with Recovery Code working.

* feat(2FA): [PM-17129] Login with 2FA Recovery Code - Feature flagged implementation.

* style(2FA): [PM-17129] Login with 2FA Recovery Code - Code cleanup.

* test(2FA): [PM-17129] Login with 2FA Recovery Code - Tests.
2025-02-13 15:51:36 -05:00
Maciej Zieniuk
c3924bbf3b
[PM-10564] Push notification updates to other clients (#5057)
* PM-10600: Notification push notification

* PM-10600: Sending to specific client types for relay push notifications

* PM-10600: Sending to specific client types for other clients

* PM-10600: Send push notification on notification creation

* PM-10600: Explicit group names

* PM-10600: Id typos

* PM-10600: Revert global push notifications

* PM-10600: Added DeviceType claim

* PM-10600: Sent to organization typo

* PM-10600: UT coverage

* PM-10600: Small refactor, UTs coverage

* PM-10600: UTs coverage

* PM-10600: Startup fix

* PM-10600: Test fix

* PM-10600: Required attribute, organization group for push notification fix

* PM-10600: UT coverage

* PM-10600: Fix Mobile devices not registering to organization push notifications

We only register devices for organization push notifications when the organization is being created. This does not work, since we have a use case (Notification Center) of delivering notifications to all users of organization. This fixes it, by adding the organization id tag when device registers for push notifications.

* PM-10600: Unit Test coverage for NotificationHubPushRegistrationService

Fixed IFeatureService substitute mocking for Android tests.
Added user part of organization test with organizationId tags expectation.

* PM-10600: Unit Tests fix to NotificationHubPushRegistrationService after merge conflict

* PM-10600: Organization push notifications not sending to mobile device from self-hosted.

Self-hosted instance uses relay to register the mobile device against Bitwarden Cloud Api. Only the self-hosted server knows client's organization membership, which means it needs to pass in the organization id's information to the relay. Similarly, for Bitwarden Cloud, the organizaton id will come directly from the server.

* PM-10600: Fix self-hosted organization notification not being received by mobile device.

When mobile device registers on self-hosted through the relay, every single id, like user id, device id and now organization id needs to be prefixed with the installation id. This have been missing in the PushController that handles this for organization id.

* PM-10600: Broken NotificationsController integration test

Device type is now part of JWT access token, so the notification center results in the integration test are now scoped to client type web and all.

* PM-10600: Merge conflicts fix

* merge conflict fix

* PM-10600: Push notification with full notification center content.

Notification Center push notification now includes all the fields.

* PM-10564: Push notification updates to other clients

Cherry-picked and squashed commits:
d9711b6031a1bc1d96b920e521e6f37de1b434ec 6e69c8a0ce9a5ee29df9988b20c6e531c0b4e4a3 01c814595e572911574066802b661c83b116a865 3885885d5f4be39fdc2b8d258867c8a7536491cd 1285a7e994921b0e6f9ba78f9b84d8e7a6ceda2f fcf346985f367c462ef7b65ce7d5d2612f7345cc 28ff53c293f4d37de5fa40d2964f924368e13c95 57804ae27cbf25d88d148f399ce81c1c09997e10 1c9339b6869926e59076202e06341e5d4a403cc7

* null check fix

* logging using template formatting
2025-02-13 14:23:33 +01:00
Alex Morask
5d3294c376
Fix issue with credit card payment (#5399) 2025-02-12 13:42:24 -05:00
Robyn MacCallum
71f293138e
Remove extra BWA sync flags (#5396) 2025-02-12 11:39:17 -05:00
Maciej Zieniuk
b98b74cef6
[PM-10600] Push notification with full notification center content (#5086)
* PM-10600: Notification push notification

* PM-10600: Sending to specific client types for relay push notifications

* PM-10600: Sending to specific client types for other clients

* PM-10600: Send push notification on notification creation

* PM-10600: Explicit group names

* PM-10600: Id typos

* PM-10600: Revert global push notifications

* PM-10600: Added DeviceType claim

* PM-10600: Sent to organization typo

* PM-10600: UT coverage

* PM-10600: Small refactor, UTs coverage

* PM-10600: UTs coverage

* PM-10600: Startup fix

* PM-10600: Test fix

* PM-10600: Required attribute, organization group for push notification fix

* PM-10600: UT coverage

* PM-10600: Fix Mobile devices not registering to organization push notifications

We only register devices for organization push notifications when the organization is being created. This does not work, since we have a use case (Notification Center) of delivering notifications to all users of organization. This fixes it, by adding the organization id tag when device registers for push notifications.

* PM-10600: Unit Test coverage for NotificationHubPushRegistrationService

Fixed IFeatureService substitute mocking for Android tests.
Added user part of organization test with organizationId tags expectation.

* PM-10600: Unit Tests fix to NotificationHubPushRegistrationService after merge conflict

* PM-10600: Organization push notifications not sending to mobile device from self-hosted.

Self-hosted instance uses relay to register the mobile device against Bitwarden Cloud Api. Only the self-hosted server knows client's organization membership, which means it needs to pass in the organization id's information to the relay. Similarly, for Bitwarden Cloud, the organizaton id will come directly from the server.

* PM-10600: Fix self-hosted organization notification not being received by mobile device.

When mobile device registers on self-hosted through the relay, every single id, like user id, device id and now organization id needs to be prefixed with the installation id. This have been missing in the PushController that handles this for organization id.

* PM-10600: Broken NotificationsController integration test

Device type is now part of JWT access token, so the notification center results in the integration test are now scoped to client type web and all.

* PM-10600: Merge conflicts fix

* merge conflict fix

* PM-10600: Push notification with full notification center content.

Notification Center push notification now includes all the fields.
2025-02-12 11:31:03 -05:00
Maciej Zieniuk
ae9bb427a1
[PM-10600] Push notification creation to affected clients (#4923)
* PM-10600: Notification push notification

* PM-10600: Sending to specific client types for relay push notifications

* PM-10600: Sending to specific client types for other clients

* PM-10600: Send push notification on notification creation

* PM-10600: Explicit group names

* PM-10600: Id typos

* PM-10600: Revert global push notifications

* PM-10600: Added DeviceType claim

* PM-10600: Sent to organization typo

* PM-10600: UT coverage

* PM-10600: Small refactor, UTs coverage

* PM-10600: UTs coverage

* PM-10600: Startup fix

* PM-10600: Test fix

* PM-10600: Required attribute, organization group for push notification fix

* PM-10600: UT coverage

* PM-10600: Fix Mobile devices not registering to organization push notifications

We only register devices for organization push notifications when the organization is being created. This does not work, since we have a use case (Notification Center) of delivering notifications to all users of organization. This fixes it, by adding the organization id tag when device registers for push notifications.

* PM-10600: Unit Test coverage for NotificationHubPushRegistrationService

Fixed IFeatureService substitute mocking for Android tests.
Added user part of organization test with organizationId tags expectation.

* PM-10600: Unit Tests fix to NotificationHubPushRegistrationService after merge conflict

* PM-10600: Organization push notifications not sending to mobile device from self-hosted.

Self-hosted instance uses relay to register the mobile device against Bitwarden Cloud Api. Only the self-hosted server knows client's organization membership, which means it needs to pass in the organization id's information to the relay. Similarly, for Bitwarden Cloud, the organizaton id will come directly from the server.

* PM-10600: Fix self-hosted organization notification not being received by mobile device.

When mobile device registers on self-hosted through the relay, every single id, like user id, device id and now organization id needs to be prefixed with the installation id. This have been missing in the PushController that handles this for organization id.

* PM-10600: Broken NotificationsController integration test

Device type is now part of JWT access token, so the notification center results in the integration test are now scoped to client type web and all.

* PM-10600: Merge conflicts fix

* merge conflict fix
2025-02-12 16:46:30 +01:00
Patrick Honkonen
9f5134e070
[PM-3503] Feature flag: Mobile AnonAddy self host alias generation (#5387) 2025-02-12 10:21:12 -05:00
Alex Morask
9c0f9cf43d
[PM-18221] Update credited user's billing location when purchasing premium subscription (#5393)
* Moved user crediting to PremiumUserBillingService

* Fix tests
2025-02-12 09:00:52 -05:00
Brant DeBow
02262476d6
[PM-17562] Add Azure Service Bus for Distributed Events (#5382)
* [PM-17562] Add Azure Service Bus for Distributed Events

* Fix failing test

* Addressed issues mentioned in SonarQube

* Respond to PR feedback

* Respond to PR feedback - make webhook opt-in, remove message body from log
2025-02-11 10:20:06 -05:00
Justin Baur
e01cace189
Turn on TreatWarningsAsError (#5384)
* Turn on TreatWarningsAsError for Release build

- Break Api intentionally

* Fix Api

* Treat warnings as errors no matter the configuration
2025-02-11 08:49:14 -05:00
SmithThe4th
bde11dae31
[PM-14590] Modify Notification database table (#5361)
* Added notification type enum

Added option type to entity

* created migration files

* made sprocs backward compatible

* made sprocs backward compatible

* Fixed linting

* Altered table to require an optional taskId

* formatted code

* Added foreignkey

* Formatted code

* fixed order
2025-02-10 11:39:48 -05:00
Daniel James Smith
d9d76a29a5
Remove generator-tools-modernization feature flag from server (#5377)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-02-07 14:10:10 -05:00
sneakernuts
7e47e1397f
SRE-1912 replaced with new path (#5380) 2025-02-07 08:47:44 -07:00
cyprain-okeke
cc211647d7
[PM-17540]Do not grant re-subscriptions trial period (#5327)
* Remove trial for restarted subscription

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* Resolve the pr comment on initial change

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* Resolve the issue of not saving payment method

* Refactor the taxinfo mapping

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

---------

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>
2025-02-07 15:43:14 +01:00
Bernd Schoolmann
58d2a7ddaa
[PM-17210] Prevent unintentionally corrupting private keys (#5285)
* Prevent unintentionally corrupting private keys

* Deny key update only when replacing existing keys

* Fix incorrect use of existing user public/encrypted private key

* Fix test

* Fix tests

* Re-add test

* Pass through error for set-password

* Fix test

* Increase test coverage and simplify checks
2025-02-06 20:38:50 +00:00
Jonas Hendrickx
a1ef07ea69
Revert "[PM-18028] Attempting to enable automatic tax on customer with invali…" (#5375)
This reverts commit 678d5d5d632447ac3431781d8232971eab713edc.
2025-02-06 17:11:20 +01:00
Jonas Hendrickx
678d5d5d63
[PM-18028] Attempting to enable automatic tax on customer with invalid location (#5374) 2025-02-06 16:34:22 +01:00
Jonas Hendrickx
bc27ec2b9b
[PM-12765] Change error message when subscription canceled and attemp… (#5346) 2025-02-06 15:15:36 +01:00
Rui Tomé
a12b61cc9e
[PM-17168] Sync organization user revoked/restored status immediately via push notification (#5330)
* [PM-17168] Add push notification for revoked and restored organization users

* Add feature flag for push notification on user revoke/restore actions

* Add tests for user revocation and restoration with push sync feature flag enabled
2025-02-06 10:28:12 +00:00
Graham Walker
daf2696a81
PM-16085 - Increase import limitations (#5275)
* PM-16261 move ImportCiphersAsync to the tools team and create services using CQRS design pattern

* PM-16261 fix renaming methods and add unit tests for succes and bad request exception

* PM-16261 clean up old code from test

* make import limits configurable via appsettings

* PM-16085 fix issue with appSettings converting to globalSettings for new cipher import limits
2025-02-05 16:36:18 -06:00
SmithThe4th
46004b9c68
[PM-14381] Add POST /tasks/bulk-create endpoint (#5188)
* [PM-14378] Introduce GetCipherPermissionsForOrganization query for Dapper CipherRepository

* [PM-14378] Introduce GetCipherPermissionsForOrganization method for Entity Framework

* [PM-14378] Add integration tests for new repository method

* [PM-14378] Introduce IGetCipherPermissionsForUserQuery CQRS query

* [PM-14378] Introduce SecurityTaskOperationRequirement

* [PM-14378] Introduce SecurityTaskAuthorizationHandler.cs

* [PM-14378] Introduce SecurityTaskOrganizationAuthorizationHandler.cs

* [PM-14378] Register new authorization handlers

* [PM-14378] Formatting

* [PM-14378] Add unit tests for GetCipherPermissionsForUserQuery

* [PM-15378] Cleanup SecurityTaskAuthorizationHandler and add tests

* [PM-14378] Add tests for SecurityTaskOrganizationAuthorizationHandler

* [PM-14378] Formatting

* [PM-14378] Update date in migration file

* [PM-14378] Add missing awaits

* Added bulk create request model

* Created sproc to create bulk security tasks

* Renamed tasks to SecurityTasksInput

* Added create many implementation for sqlserver and ef core

* removed trailing comma

* created ef implementatin for create many and added integration test

* Refactored request model

* Refactored request model

* created create many tasks command interface and class

* added security authorization handler work temp

* Added the implementation for the create manys tasks command

* Added comment

* Changed return to return list of created security tasks

* Registered command

* Completed bulk create action

* Added unit tests for the command

* removed hard coded table name

* Fixed lint issue

* Added JsonConverter attribute to allow enum value to be passed as string

* Removed makshift security task operations

* Fixed references

* Removed old migration

* Rebased

* [PM-14378] Introduce GetCipherPermissionsForOrganization query for Dapper CipherRepository

* [PM-14378] Introduce GetCipherPermissionsForOrganization method for Entity Framework

* [PM-14378] Add unit tests for GetCipherPermissionsForUserQuery

* Completed bulk create action

* bumped migration version

* Fixed lint issue

* Removed complex sql data type in favour of json string

* Register IGetTasksForOrganizationQuery

* Fixed lint issue

* Removed tasks grouping

* Fixed linting

* Removed unused code

* Removed unused code

* Aligned with client change

* Fixed linting

---------

Co-authored-by: Shane Melton <smelton@bitwarden.com>
2025-02-05 16:56:01 -05:00
Justin Baur
a971a18719
[PM-17957] Pin Transitive Deps (#5371)
* Remove duplicate quartz reference

* Pin Core packages

* Pin Notifications packages
2025-02-05 15:32:27 -05:00
Patrick Honkonen
77364549fa
[PM-16157] Add feature flag for mTLS support in Android client (#5335)
Add a feature flag to control support for selecting a mutual TLS client certificate within the Android client.
2025-02-05 15:03:13 +00:00
Rui Tomé
03c390de74
[PM-15637] Notify Custom Users with “Manage Account Recovery” permission for Device Approval Requests (#5359)
* Add stored procedure to read organization user details by role

* Add OrganizationUserRepository method to retrieve OrganizationUser details by role

* Enhance AuthRequestService to send notifications to custom users with ManageResetPassword permission

* Enhance AuthRequestServiceTests to include custom user permissions and validate notification email recipients
2025-02-05 14:47:06 +00:00
Tom
617bb5015f
Removing the member access feature flag from the server (#5368) 2025-02-05 10:57:19 +01:00
cyprain-okeke
a8a08a0c8f
Remove the feature flag (#5331) 2025-02-05 09:18:23 +01:00
Alex Morask
72b78ed655
Update feature flag name (#5364) 2025-02-04 14:58:54 -05:00
Daniel James Smith
bdbed7adc8
Group tools owned feature flags (#5362)
Co-authored-by: Daniel James Smith <djsmith85@users.noreply.github.com>
2025-02-04 13:31:15 -05:00
Brant DeBow
3f3da558b6
[PM-17562] Refactor existing RabbitMq implementation (#5357)
* [PM-17562] Refactor existing RabbitMq implementation

* Fixed issues noted in PR review
2025-02-04 09:02:43 -05:00
Alex Morask
f1b9bd9a09
[PM-15179] Implement endpoints to add existing organization to CB provider (#5310)
* Implement endpoints to add existing organization to provider

* Run dotnet format

* Support MOE

* Run dotnet format

* Move ProviderClientsController under AC ownership

* Move ProviderClientsControllerTests under AC ownership

* Jared's feedback
2025-02-04 09:02:18 -05:00
renovate[bot]
90f308db34
[deps] Tools: Update aws-sdk-net monorepo (#5278)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2025-02-04 11:09:09 +01:00
Robyn MacCallum
1adc5358a8
Create a single feature flag for the Authenticator sync (#5353)
* Create a single feature flag for the Authenticator sync

* Update feature flag key
2025-02-03 09:35:38 -05:00
Vincent Salucci
669c253bc6
chore: add limit item deletion feature flag constant, refs PM-17214 (#5356) 2025-01-31 12:18:10 -06:00
Justin Baur
ab0cab2072
Fix Events Startup (#5352) 2025-01-30 13:59:58 -05:00
Brant DeBow
5efd68cf51
[PM-17562] Initial POC of Distributed Events (#5323)
* Initial POC of Distributed Events

* Apply suggestions from code review

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>

* Clean up files to support accepted changes. Address PR Feedback

* Removed unneeded using to fix lint warning

* Moved config into a common EventLogging top-level item. Fixed issues from PR review

* Optimized per suggestion from justinbaur

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>

* Updated to add IAsyncDisposable as suggested in PR review

* Updated with suggestion to use KeyedSingleton for the IEventWriteService

* Changed key case to lowercase

---------

Co-authored-by: Justin Baur <19896123+justindbaur@users.noreply.github.com>
2025-01-30 12:07:02 -05:00
Alex Morask
443a147433
Replace StripePaymentService with PremiumUserBillingService in ReplacePaymentMethodAsync call (#5350) 2025-01-30 11:55:05 -05:00
Alex Morask
ad2ea4ca21
Don't enable tax for customer without tax info (#5347) 2025-01-30 10:26:34 -05:00
Shane Melton
2f2ef20c74
Add missing IGetTasksForOrganizationQuery query registration (#5343) 2025-01-29 12:07:03 -08:00
Tom
f1c94a1400
Risk insights feature flag for server (#5328) 2025-01-28 18:52:11 +00:00
Patrick Honkonen
3d273bf494
[PM-15906] Add feature flags for Android single tap passkey flows (#5334)
Add feature flags to control single tap passkey creation and authentication in the Android client.
2025-01-28 13:39:19 -05:00
Jimmy Vo
93f5b34223
Add limit item deletion server code (#5308) 2025-01-28 12:58:04 -05:00
Nick Krantz
4e1e514e83
[PM-11249] Update cipher revision date when an attachment is added or deleted (#4873)
* update the cipher revision date when an attachment is added or deleted

* store the updated cipher in the DB when an attachment is altered

* return cipher from delete attachment endpoint
2025-01-28 09:49:51 -06:00
Brandon Treston
a9a12301af
[PM-17120] add feature flag (#5329)
* add feature flag

* cleanup

* cleanup
2025-01-27 17:01:28 -05:00
Jonas Hendrickx
5562ca9d5e
WIP (#5210) 2025-01-27 15:28:47 +01:00
Rui Tomé
9e718d7336
[PM-15637] Add Email Notification Templates and Logic for Device Approval Requests (#5270)
* Add device approval notification email templates

* Add DeviceApprovalRequestedViewModel for device approval notifications

* Add method to send device approval requested notification email

* Send email notification to Organization Admins when adding a new admin approval auth request

* Add tests for device approval notification email sending in AuthRequestServiceTests

* fix(email-templates): Remove unnecessary triple braces from user name variable in device approval notification emails

* Add feature flag for admin notifications on device approval requests

* Add logging for skipped admin notifications on device approval requests
2025-01-27 10:59:46 +00:00
Rui Tomé
3908edd08f
[PM-12489] Extract OrganizationService.DeleteAsync and OrganizationService.InitiateDeleteAsync into commands (#5279)
* Create organization deletion command with logic extracted from OrganizationService

* Add unit tests for OrganizationDeleteCommand

* Register OrganizationDeleteCommand for dependency injection

* Refactor organization deletion logic to use IOrganizationDeleteCommand and remove legacy IOrganizationService.DeleteAsync method

* Add organization deletion initiation command and refactor service usage

* Enhance organization deletion commands with detailed XML documentation

* Refactor organization command registration to include sign-up and deletion methods
2025-01-27 10:58:08 +00:00
Graham Walker
f2182c2aae
PM-16261 fixing linter issue (#5322) 2025-01-24 13:43:41 -06:00
Alex Morask
f140c7f6c1
[PM-11730] Remove feature flag: AC-2476-deprecate-stripe-sources-api (#5201)
* Removed feature flag

* Run dotnet format

* Fix integration tests
2025-01-24 13:38:35 -05:00
Graham Walker
99a1dbbe02
PM-16261 move ImportCiphersAsync to the tools team (#5245)
* PM-16261 move ImportCiphersAsync to the tools team and create services using CQRS design pattern

* PM-16261 fix renaming methods and add unit tests for succes and bad request exception

* PM-16261 clean up old code from test
2025-01-24 10:57:44 -06:00
cyprain-okeke
ef32e80725
[PM-15807]Move subscription to 'canceled' 7 days after unpaid (#5221)
* Changes to implement the cancel job

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* Resolve the Dependency issues

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* changes when open invoices is more than 10

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

* Move the package reference to ore

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>

---------

Signed-off-by: Cy Okeke <cokeke@bitwarden.com>
2025-01-24 12:02:13 +01:00