* update OrganizationUsersController PUT and POST
* enforces new collection access checks when updating members
* refactor BulkCollectionAuthorizationHandler to avoid repeated db calls
* [AC-1682] Added MySql migration and script
(cherry picked from commit d367f6de6b65343f1e99c9cf928e77215b13c34d)
* [AC-1682] Added Postgres migration and script
(cherry picked from commit 9bde1604da8432a6066fc6b48e88738fdc171869)
* [AC-1682] Added Sqlite migration and script
(cherry picked from commit 262887f9c3e484d5de856b715ee3c40092b4eb5f)
* [AC-1682] dotnet format
(cherry picked from commit 00eea0621c7c1092ea51c936fe2e7389a46109b9)
* [AC-1682] Fixed Sqlite query
(cherry picked from commit 26f5bf8afdf7607d01d56be8ba880ae592a127fc)
* [AC-1682] Drop temp tables if they exist when starting the scripts
(cherry picked from commit c20912f95c237da671a69eba0e39e5449a1a6d60)
* [AC-1682] Removed MySql transaction from script because EF migration already wraps it under its own transaction
(cherry picked from commit 7b54d78d6755788cabcc035f293af04881b0015a)
* [AC-1682] Setting FlexibleCollections = 1 only for Orgs that had data migrated in previous steps
(cherry picked from commit 28bba94d81d3c1a2515882b40829170b42096026)
* [AC-1682] Updated queries to check for OrganizationId
(cherry picked from commit a957530d5ed9caaa42fae6901fceb83b93ae99ce)
* [AC-1682] Fixed MySql script
(cherry picked from commit deee483ab7037f46233ca0802d1fcc698aa4d3d4)
* [AC-1682] Fixed Postgres query
(cherry picked from commit c3ca9ec3c8de625a5cf560c76474ee03eb1a50b2)
* [AC-1682] Fix Sqlite query
(cherry picked from commit fada0a81bf21b89d3debda9d3b51d31b1867631f)
* [AC-1682] Reverted scripts back to enabling Flexible Collections to all existing Orgs
(cherry picked from commit bd3b21b9698f13f57322a1eb5bac9fd1b99f779a)
* [AC-1682] Removed dropping temporary table from scripts
(cherry picked from commit eb7794d592cdd782a64154068046d708d30f371b)
* [AC-1682] Removed other temp table drops
(cherry picked from commit 26768b7bf82fd297fafa2638f59e600e7ac093a5)
* [AC-1978] Fix issue that allows the web app to have the user type Manager available
(cherry picked from commit 2890f78870a8b624c0598c9c39df22c6f05eecc0)
* [AC-1682] Bump dates on migration scripts
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [AC-2323] Added script to migrate all sql organizations to use flexible collections
* [AC-2323] Overriding FlexibleCollectionsSignup to true for local usage
* [AC-2323] Fix script comment
* [AC-2323] Fixed typo
* [AC-2323] Bump up date on migration script
* [AC-2323] Bump migration script date
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Centralize database migration logic
* Clean up unused usings
* Prizatize
* Remove verbose flag from Docker invocation
* Allow certain database operations to be skipped
* Readonly
* [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
* mssql add column and migration
* Add secret access policies to EF models and config
* Clear new access policies on service account delete
* Add SM cleanup code on delete
* Fix EF org user bulk delete
* Run EF migrations
* modify grant_save sql script to migration and Auth SQL scripts to not use merge
* Update formatting for sql files
* Fix formatting for sql files
* Format using Prettier
* Rename 2024-01-03_00_FixGrantSave.sql to 2024-02-12_00_FixGrantSave.sql
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* [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
* SM-1012: Phase 2, removing SM Beta from the server (but not db)
* SM-1012: Add migration for RemoveSMBetaFromOrganization
* SM-1012: Dotnet format
* SM-1012: Undo RemoveSMBetaFromOrganization EF migration
* SM-1012: Redo RemoveSMBetaFromOrganization EF migration
* SM-1012: Ran dotnet format
* Upgrade to .NET 8
* Linting
* Clean up old JSON deserialization code
* More .NET 8-oriented linting
* Light feedback
* Get rid of old test we don't know the root issue for
* Fix a new test
* Remove now-unnecessary Renovate constraint
* Use Any()
* Somehow a 6.0 tooling config we don't need snuck back in
* Space out properties that always change per release
* Bump a few core packages since the last update
* [AC-1682] Data migrations for OrgUsers or Groups with AccessAll enabled
* [AC-1682] Added script to update [dbo].[CollectionUser] with [Manage] = 1 for all users with Manager role or 'EditAssignedCollections' permission
* [AC-1682] Updated sql data migration procedures with performance recommendations
* [AC-1682] Moved data migration scripts to DbScripts_transition folder
* Apply suggestions from code review: Remove Manage permission from Collection assignments
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [AC-1682] Removed unnecessary Collection table join on ManagersEditAssignedCollectionUsers sql script
* [AC-1682] Change JOIN to INNER JOIN in SQL scripts
* [AC-1682] Renamed sql script to recent date and added correct order to file name
* [AC-1682] Add new rows to CollectionUser for Managers and users with EditAssignedCollections permission assigned to groups with collection access
* [AC-1682] Update FC data migration scripts to clear AccessAll flags and set all Managers to Users
* [AC-1682] Updated data migration scripts to bump the account revision date
* [AC-1682] Created Organization_EnableCollectionEnhancements to migrate organization data for flexible collections
* [AC-1682] Added script to migrate all organization data for flexible collections
* [AC-1682] Deleted old data migration scripts
* Revert "[AC-1682] Deleted old data migration scripts"
This reverts commit 54cc6fab8f162448446eeb06822e44e97a2b6534.
* [AC-1682] Modified AccessAllCollectionUsers script to bump revision date by each OrgUser
* [AC-1682] Update data migration script to only enable collection enhancements for organizations that have not yet migrated
* [AC-1682] Updated AccessAllCollectionGroups migration script to use User_BumpAccountRevisionDateByCollectionId
* [AC-1682] Bumped up the date on data migration scripts
* [AC-1682] Added back batching system to AccessAllCollectionUsers data migration script
* [AC-1682] Added data migration script to set FlexibleCollections = 1 for all orgs
* [AC-1682] Modified data migration script to contain multiple transactions
* [AC-1682] Deleted old data migration scripts
* [AC-1682] Placed temp tables outside transactions
* [AC-1682] Removed batching from AllOrgsEnableCollectionEnhancements script
* [AC-1682] Removed bulk data migration script
* [AC-1682] Refactor stored procedure to enable collection enhancements
* [AC-1682] Added missing where clause
* [AC-1682] Modified data migration script to have just one big transaction
* [AC-1682] Combining all updated OrganizationUserIds to bump all revision dates at the same time
* Update src/Sql/dbo/Stored Procedures/Organization_EnableCollectionEnhancements.sql
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* [AC-1682] Renamed aliases
* [AC-1682] Simplified inner queries
* [AC-1682] Bumping each modified groups RevisionDate
* [AC-1682] Removed updating CollectionUser existing records with [ReadOnly] = 0 and [HidePasswords] = 0
* [AC-1682] Updating OrganizationUser RevisionDate
* [AC-1682] Updated the stored procedure file
* [AC-1682] Selecting distinct values to insert into CollectionUser table
* Revert "[AC-1682] Removed updating CollectionUser existing records with [ReadOnly] = 0 and [HidePasswords] = 0"
This reverts commit 086c88f3c62573a2ff0db149423440bf664a40c0.
* [AC-1682] Bumped up the date on the migration script
* [AC-1682] Updating OrganizationUser RevisionDate
---------
Co-authored-by: Thomas Rittson <31796059+eliykat@users.noreply.github.com>
* Tweak EF settings for grant auto-increment
* Go back to zero generated default as that doesn't matter
* Explicit value generation callout
* Go with custom SQL for direct automatic increment
* Proper column creation
* Lint
* [deps]: Update Duende.IdentityServer to v6.3.6
* Fix test
* Grant table changes
* Reassert view
* EF migrations
* Restore non-null key and simpler index
* Master SQL sync
* Lint
* Fix ID setting since the property isn't exposed
* Bump to .7
* Point to new Duende package
* Drop unused indexes first
---------
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>
* update Organization_DeleteById SPROC
* Add migration for user delete
* Updated delete methods for EF support
* added WITH RECOMPILE
* updating sprocs in sql project
* Add recompile
* PM-1658 - Create User_ReadByEmails stored proc
* PM-1658 - Update UserRepository.cs with dapper and EF implementations of GetManyByEmailsAsync using new stored proc
* PM-1658 - OrganizationService.cs - Proved out that the new GetManyByEmailsAsync along with a hash set will allow me to generate a a dict mapping org user ids to a bool representing if they have an org user account or not.
* PM-1658 - OrganizationService.cs - re-implement all send invites logic as part of rebase
* PM-1658 - Add new User_ReadByEmails stored proc to SQL project
* PM-1658 - HandlebarsMailService.cs - (1) Remove unnecessary SendOrganizationInviteEmailAsync method as we can simply use the bulk method for one or more emails (2) Refactor BulkSendOrganizationInviteEmailAsync parameters into new OrganizationInvitesInfo class
* PM-1658 - OrganizationService.cs - rebase commit 2
* PM-1658 - rebase commit 3 - org service + IMailService conflicts resolved
* PM-1658 - Update HandlebarsMailService.cs and OrganizationUserInvitedViewModel.cs to include new query params required client side for accelerating the user through the org invite accept process.
* dotnet format
* PM-1658 - rebase commit 4 - Fix broken OrganizationServiceTests.cs
* PM-1658 TODO cleanup
* PM-1658 - Remove noop for deleted method.
* rebase commit 5 - fix NoopMailService merge conflicts
* PM-1658 - Fix SQL formatting with proper indentations
* PM-1658 - Rename BulkSendOrganizationInviteEmailAsync to SendOrganizationInviteEmailsAsync per PR feedback
* PM-1658 - Per PR Feedback, refactor OrganizationUserInvitedViewModel creation to use new static factory function for better encapsulation of the creation process.
* PM-1658 - Rename OrganizationInvitesInfo.Invites to OrgUserTokenPairs b/c that just makes sense.
* PM-1658 - Per PR feedback, simplify query params sent down to client. Always include whether the user exists but only include the org sso identifier if it is meant to be used (b/c sso is enabled and sso required policy is on)
* dotnet format
* PM-1658 - OrganizationServiceTests.cs - Fix mysteriously failing tests - several tests were falling into logic which created n org users using the organizationUserRepository.CreateAsync instead of the organizationUserRepository.CreateManyAsync method. This meant that I had to add a new mock helper to ensure that those created org users had valid and distinct guids to avoid aggregate exceptions due to my added dict in the latter parts of the invite process.
* PM-1658 - Resolve errors from mistakes made during rebase merge conflict resolutions
* PM-1658 - OrganizationServiceTests.cs - fix new test with mock to make guids unique.
* dotnet format
---------
Co-authored-by: Matt Bishop <mbishop@bitwarden.com>