* initial commit of `CipherOrganizationPermission_GetManyByUserId`
* create queries to get all of the security tasks that are actionable by a user
- A task is "actionable" when the user has manage permissions for that cipher
* rename query
* return the user's email from the query as well
* Add email notification for at-risk passwords
- Added email layouts for security tasks
* add push notification for security tasks
* update entity framework to match stored procedure plus testing
* update date of migration and remove orderby
* add push service to security task controller
* rename `SyncSecurityTasksCreated` to `SyncNotification`
* remove duplicate return
* remove unused directive
* remove unneeded new notification type
* use `createNotificationCommand` to alert all platforms
* return the cipher id that is associated with the security task and store the security task id on the notification entry
* Add `TaskId` to the output model of `GetUserSecurityTasksByCipherIdsAsync`
* move notification logic to command
* use TaskId from `_getSecurityTasksNotificationDetailsQuery`
* add service
* only push last notification for each user
* formatting
* refactor `CreateNotificationCommand` parameter to `sendPush`
* flip boolean in test
* update interface to match usage
* do not push any of the security related notifications to the user
* add `PendingSecurityTasks` push type
* add push notification for pending security tasks
* Add Manage permission to UserCipherDetails and CipherDetails_ReadByIdUserId
* Add Manage property to CipherDetails and UserCipherDetailsQuery
* Add integration test for CipherRepository Manage permission rules
* Update CipherDetails_ReadWithoutOrganizationsByUserId to include Manage permission
* Refactor UserCipherDetailsQuery to include detailed permission and organization properties
* Refactor CipherRepositoryTests to improve test organization and readability
- Split large test method into smaller, focused methods
- Added helper methods for creating test data and performing assertions
- Improved test coverage for cipher permissions in different scenarios
- Maintained existing test logic while enhancing code structure
* Refactor CipherRepositoryTests to consolidate cipher permission tests
- Removed redundant helper methods for permission assertions
- Simplified test methods for GetCipherPermissionsForOrganizationAsync, GetManyByUserIdAsync, and GetByIdAsync
- Maintained existing test coverage for cipher manage permissions
- Improved code readability and reduced code duplication
* Add integration test for CipherRepository group collection manage permissions
- Added new test method GetCipherPermissionsForOrganizationAsync_ManageProperty_RespectsCollectionGroupRules
- Implemented helper method CreateCipherInOrganizationCollectionWithGroup to support group-based collection permission testing
- Verified manage permissions are correctly applied based on group collection access settings
* Add @Manage parameter to Cipher stored procedures
- Updated CipherDetails_Create, CipherDetails_CreateWithCollections, and CipherDetails_Update stored procedures
- Added @Manage parameter with comment "-- not used"
- Included new stored procedure implementations in migration script
- Consistent with previous work on adding Manage property to cipher details
* Update UserCipherDetails functions to reorder Manage and ViewPassword columns
* Reorder Manage and ViewPassword properties in cipher details queries
* Bump date in migration script
* 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
* Add ssh key item type
* Add fingerprint
* Limit ssh key ciphers to new clients
* Fix enc string length for 4096 bit rsa keys
* Remove keyAlgorithm from ssh cipher
* Add featureflag and exclude mobile from sync
* Add ssh-agent flag
* [PM-2383] Add bulk add/remove collection cipher repository methods
* [PM-2383] Add additional authorization helpers for CiphersControlle
* [PM-2383] Add /bulk-collections endpoint to CiphersController.cs
* [PM-2383] Add EF implementation for new CollectionCipherRepository methods
* [PM-2383] Ensure V1 logic only applies when the flag is enabled for new bulk functionality
* [AC-1124] Add GetManyUnassignedOrganizationDetailsByOrganizationIdAsync to the CipherRepository
* [AC-1124] Introduce IOrganizationCiphersQuery.cs to replace some CipherService queries
* [AC-1124] Add additional CipherDetails model that includes CollectionIds
* [AC-1124] Update CiphersController and response models
- Add new endpoint for assigned ciphers
- Update existing endpoint to only return all ciphers when feature flag is enabled the user has access
* [AC-1124] Add migration script
* [AC-1124] Add follow up ticket for Todos
* [AC-1124] Fix feature service usage after merge with main
* [AC-1124] Optimize unassigned ciphers query
* [AC-1124] Update migration script date
* [AC-1124] Update migration script date
* [AC-1124] Formatting
* Add checksum to Login Uri models
* Revert "Revert "Add checksum to Login Uri models (#3318)" (#3417)"
This reverts commit b44887d125f8100410a987447a7dc342d22eaf83.
* PM-4810 Bumped up minimum version
---------
Co-authored-by: Carlos Gonçalves <cgoncalves@bitwarden.com>
Co-authored-by: bnagawiecki <107435978+bnagawiecki@users.noreply.github.com>
Co-authored-by: Carlos Gonçalves <carlosmaccam@gmail.com>
* [EC-598] feat: add support for saving fido2 keys
* [EC-598] feat: add additional data
* [EC-598] feat: add counter, nonDiscoverableId; remove origin
* [EC-598] fix: previous incomplete commit
* [EC-598] fix: previous incomplete commit.. again
* [EC-598] fix: failed merge
* [EC-598] fix: move files around to match new structure
* [EC-598] feat: add implementation for non-discoverable credentials
* [EC-598] chore: remove some changes introduced by vs
* [EC-598] fix: linting issues
* [PM-1500] Add feature flag to enable pass keys (#2916)
* Added feature flag to enable pass keys
* Renamed enable pass keys to fido2 vault credentials
* only sync fido2key ciphers on clients >=2023.9.0 (#3244)
* Renamed fido2key property username to userDisplayName (#3172)
* [PM-1859] Renamed NonDiscoverableId to credentialId (#3198)
* PM-1859 Refactor to credentialId
* PM-1859 Removed unnecessary import
---------
Co-authored-by: Andreas Coroiu <andreas.coroiu@gmail.com>
* [PM-3807] Store all passkeys as login cipher type (#3261)
* [PM-3807] feat: add discoverable property to fido2key
* [PM-3807] feat: remove standalone Fido2Key
* [PM-3807] chore: clean up unusued constant
* [PM-3807] fix: remove standadlone Fido2Key property that I missed
* [PM-3807] Store passkeys in array (#3268)
* [PM-3807] feat: store passkeys in array
* [PM-3807] amazing adventures with the c# linter
* [PM-3980] Added creationDate property to the Fido2Key object (#3279)
* Added creationDate property to the Fido2Key object
* Fixed lint issues
* fixed comments
* made createionDate required
* [PM-3808] [Storage v2] Add old client/new server backward compatibility (#3262)
* [PM-3807] feat: add discoverable property to fido2key
* [PM-3807] feat: remove standalone Fido2Key
* [PM-3807] chore: clean up unusued constant
* [PM-3808] feat: add fido2 compatibility check before saving ciphers
* Resolved merge conflicts.
* Setting minimum version for QA.
---------
Co-authored-by: Todd Martin <tmartin@bitwarden.com>
* [PM-4054] Rename Fido2Key to Fido2Credential (#3306)
* Add server version compatibility check for Fido2Credentials on sharing with org (#3328)
* Added compatibility checks.
* Refactored into separate methods for easier removal.
* Added check on ShareMany
* Updated method order to be consistent.
* Linting
* Updated minimum server version for release, as well as defaulting the feature on for self-hosted.
* Added trailing space.
* Removed extra assignment
---------
Co-authored-by: gbubemismith <gsmithwalter@gmail.com>
Co-authored-by: SmithThe4th <gsmith@bitwarden.com>
Co-authored-by: Todd Martin <tmartin@bitwarden.com>
Co-authored-by: Kyle Spearrin <kspearrin@users.noreply.github.com>
Co-authored-by: Carlos Gonçalves <carlosmaccam@gmail.com>
Co-authored-by: Todd Martin <106564991+trmartin4@users.noreply.github.com>
Co-authored-by: Oscar Hinton <Hinton@users.noreply.github.com>