* [EC-1014] Create Organization Status (Pending/Created) (#2610)
* [EC-427] Add columns 'Type' and 'BillingPhone' to Provider table
* [EC-427] Provider table Type and BillingPhone MySql migrations
* [EC-427] Provider table Type and BillingPhone Postgres migrations
* [EC-427] Add mysql migration script
* [EC-427] Add mysql migration script
* [EC-427] Updated Provider sql script to include default column value
* [EC-427] Removed default value from Provider.Type column
* [EC-427] Changed migration script to include a default value constraint instead of updating the null type
* [EC-427] Updated Sql project Provider table script
* [EC-427] Changed migration script to use 'Create OR Alter' for views and sprocs
* [EC-427] Added default values for 'BillingPhone' and 'Type' fields on sprocs [dbo].[Provider_Create] and [dbo].[Provider_Update]
* [EC-427] Adjusting metadata in migration script
* [EC-427] Updated Provider sprocs SQL script files
* [EC-427] Fixed migration script
* [EC-427] Added sqlite migration
* [EC-427] Add missing Provider_Update sproc default value
* [EC-427] Added missing GO action to migration script
* [EC-428] Redirect to Edit after creating Provider
* Revert "[EC-428] Redirect to Edit after creating Provider"
This reverts commit 6347bca1ed85681710379dbffc09e25b99b93ae6.
* [EC-1014] Create OrganizationStatusType and add Status column to Organizations table
* [EC-1014] Added EF migrations
* [EC-1014] dotnet format
* [EC-1014] Changed Organization.Status from SMALLINT to TINYINT
* [EC-1014] Set Organization.Status default value = 1
* [EC-1014] Setting Organization.Status default value as 1
* [EC-459 / EC-428] Admin panel: Add Provider Type to list and creation flow (#2593)
* [EC-427] Add columns 'Type' and 'BillingPhone' to Provider table
* [EC-427] Provider table Type and BillingPhone MySql migrations
* [EC-427] Provider table Type and BillingPhone Postgres migrations
* [EC-427] Add mysql migration script
* [EC-427] Add mysql migration script
* [EC-427] Updated Provider sql script to include default column value
* [EC-427] Removed default value from Provider.Type column
* [EC-427] Changed migration script to include a default value constraint instead of updating the null type
* [EC-427] Updated Sql project Provider table script
* [EC-427] Changed migration script to use 'Create OR Alter' for views and sprocs
* [EC-427] Added default values for 'BillingPhone' and 'Type' fields on sprocs [dbo].[Provider_Create] and [dbo].[Provider_Update]
* [EC-427] Adjusting metadata in migration script
* [EC-427] Updated Provider sprocs SQL script files
* [EC-427] Fixed migration script
* [EC-427] Added sqlite migration
* [EC-427] Add missing Provider_Update sproc default value
* [EC-427] Added missing GO action to migration script
* [EC-459] Added Type column to Providers list
* [EC-428] Added Type, BusinessName and BillingEmail to CreateProviderModel
* [EC-428] Updated Create Provider view to include new fields
* [EC-428] Updated ProviderService to not create a ProviderUser for the type Reseller
* [EC-428] Added custom validation for Provider fields depending on selected Type
* [EC-428] Redirect to Edit after creating Provider
* [EC-428] Setting Provider status as Created for Resellers
* [EC-428] Redirect on Provider creation depending if self host server
* [EC-428] Split ProviderService.CreateAsync into two methods: CreateMspAsync and CreateResellerAsync
* [EC-428] Created ICreateProviderCommand and added service for injection on Admin.Startup
* [EC-428] Modified Provider views to use DisplayName attribute values
* [EC-428] Moved ICreateProviderCommand to Core project
* [EC-428] Adding ICreateProviderCommand injection next to IProviderService
* [EC-428] Moved CreateProviderCommand to Commercial.Core project
* [EC-459] Added Type column to Providers list
* [EC-428] Added Type, BusinessName and BillingEmail to CreateProviderModel
* [EC-428] Updated Create Provider view to include new fields
* [EC-428] Updated ProviderService to not create a ProviderUser for the type Reseller
* [EC-428] Added custom validation for Provider fields depending on selected Type
* [EC-428] Redirect to Edit after creating Provider
* [EC-428] Setting Provider status as Created for Resellers
* [EC-428] Redirect on Provider creation depending if self host server
* [EC-428] Split ProviderService.CreateAsync into two methods: CreateMspAsync and CreateResellerAsync
* [EC-428] Created ICreateProviderCommand and added service for injection on Admin.Startup
* [EC-428] Modified Provider views to use DisplayName attribute values
* [EC-428] Moved ICreateProviderCommand to Core project
* [EC-428] Adding ICreateProviderCommand injection next to IProviderService
* [EC-428] Moved CreateProviderCommand to Commercial.Core project
* [EC-428] Moved CreateProviderCommand to namespace Bit.Commercial.Core.Providers
* [EC-429] Provider details screen updated with Type, BillingPhone and Organization details (#2666)
* [EC-430] Admin portal: Update organization information screen (#2672)
* [EC-430] Added ProviderOrganizationProviderDetailsView to get Provider details for an Organization
* [EC-430] Added Provider information to Organization Edit/View on Admin panel
* [EC-430] Remove "Add to Reseller" button
* [EC-430] Removed unused property OrganizationEditModel.ClientOwnerEmail
* [EC-430] Replaced IProviderOrganizationRepository.GetProviderDetailsByOrganizationAsync with IProviderRepository.GetByOrganizationIdAsync
* [EC-430] Deleted ProviderOrganizationProviderDetails and ProviderOrganizationProviderDetailsReadByOrganizationIdQuery
* [EC-429] Only show Create/Add Existing Organization buttons for Reseller providers (#2723)
* [EC-432] Add existing Organizations to Provider (#2683)
* [EC-432] Added ProviderOrganizationUnassignedOrganizationDetails_Search stored procedure
* [EC-432] Added IProviderOrganizationRepository.SearchAsync
* [EC-432] Created controller ProviderOrganizationsController to assign Organizations to a Provider
* [EC-432] Filter existing organizations by plans Enterprise or Team
* [EC-432] Existing Organization name links to edit page
* [EC-432] EF filtering out existing organizations by plan type enterprise or teams
* [EC-432] Creating multiple ProviderOrganization records
* [EC-432] Added ProviderOrganizationUnassignedOrganizationDetails_Search stored procedure
* [EC-432] Added IProviderOrganizationRepository.SearchAsync
* [EC-432] Created controller ProviderOrganizationsController to assign Organizations to a Provider
* [EC-432] Filter existing organizations by plans Enterprise or Team
* [EC-432] Existing Organization name links to edit page
* [EC-432] EF filtering out existing organizations by plan type enterprise or teams
* [EC-432] Creating multiple ProviderOrganization records
* [EC-432] Renamed migration script and added missing sproc
* [EC-432] Saving multiple events for the created ProviderOrganizations
* [EC-432] Included unit testing for ProviderService.AddOrganizations and EventService.LogProviderOrganizationEventsAsync
* [EC-432] Removed async from NoopEventService.LogProviderOrganizationEventsAsync
* [EC-432] Remove unused dependency setup in ProviderServiceTests.AddOrganizations_Success
* [EC-432] Renamed AddOrganizations to AddOrganizationsToReseller and removed addingUserId and key arguments
* [EC-432] Added DisplayName attributes to ProviderOrganizationViewModel and used them in the view
* [EC-432] Reverted changes to input fields
* [EC-432] Moved unassigned organizations search to Organizations repo
* [EC-432] Moved AddExistingOrganization action to ProvidersController
* [EC-432] dotnet format
* [EC-432] Fixed unit test issues
* [EC-432] Removed unnecessary Html.DisplayNameFor for labels
* [EC-432] Renamed OrganizationSearchViewModel to OrganizationUnassignedToProviderSearchViewModel
* [EC-432] Modified IEventService.LogProviderOrganizationEventsAsync to receive an IEnumerable as parameter
* [EC-432] Updated IProviderOrganizationRepository and replaced CreateWithManyOrganizations method with CreateManyAsync
* [EC-432] Deleted ProviderOrganization_CreateWithManyOrganizations
* [AC-432] Simplified Organization_UnassignedToProviderSearch query
* [AC-432] Removed unnecessary setup
* [EC-432] Checking if stored procedure exists before creating
* [EC-432] Renamed migration file to recent date
* [EC-435] Admin Portal: Add new Organization creation flow UI (#2707)
* [EC-435] Created _OrganizationForm partial view. Added actions for creating an Organization assigned to a provider
* [EC-435] Remove logic for creating an organization
* [EC-435] Created partial view _OrganizationFormScripts
* [EC-435] Remove unused ReferenceEventType
* [EC-435] Added TODO comment on Organization Create
* [EC-435] Checking if Provider type is Reseller on creating new assigned organization
* [EC-435] Setting the Organization plan type as TeamsMonthly by default when adding to a provider
* [EC-435] Removing unused buttons
* [EC-435] Switched hidden fields to form submit route value
* [EC-435] Moved _OrganizationForm and _OrganizationFormScripts to Shared folder
* [EC-435] Moved Create organization actions from OrganizationsController to ProvidersController
* [EC-435] Fixing bug on saving Organization that would have BillingEmail as null
* [EC-435] Added null check to Provider
* [EC-435] Moved trial buttons script logic to Edit view
* [AC-431] Add new organization invite process (#2737)
* [EC-435] Created _OrganizationForm partial view. Added actions for creating an Organization assigned to a provider
* [EC-435] Remove logic for creating an organization
* [EC-435] Created partial view _OrganizationFormScripts
* [EC-435] Remove unused ReferenceEventType
* [EC-435] Added TODO comment on Organization Create
* [EC-435] Checking if Provider type is Reseller on creating new assigned organization
* [EC-435] Setting the Organization plan type as TeamsMonthly by default when adding to a provider
* [EC-435] Removing unused buttons
* [EC-435] Switched hidden fields to form submit route value
* [EC-435] Moved _OrganizationForm and _OrganizationFormScripts to Shared folder
* [EC-435] Moved Create organization actions from OrganizationsController to ProvidersController
* [AC-431] Added new ReferenceEventType OrganizationCreatedByAdmin
* [AC-431] Added method IOrganizationService.CreateOrganization
* [AC-431] Creating new Organization with Pending status and assigning to Provider
* [AC-431] Added method to IMailService to send invitation to initialize org
* [AC-431] Added methods CreatePendingOrganization and InitPendingOrganization to IOrganizationService
* [AC-431] Org invite includes initOrganization parameter
* [AC-431] Modified existing Accept organization user action to initialize org
* [AC-431] Updated ProvidersController method name
* [AC-431] Created OrganizationUserInitInvitedViewModel to link to 'accept-init-organization' url
* [AC-431] Added action AcceptInit to OrganizationUsersController
* [AC-431] Resend owner invite
* [AC-431] dotnet format
* [AC-431] Removed unused parameter 'addingUserId' from IProviderService.AddOrganization
* [AC-431] Removed setting manual values for CreationDate and RevisionDate
* [AC-431] Updated OrganizationService.InitPendingOrganization to throw exceptions when the Organization does not meet the required criteria
* [AC-431] Modified OrganizationUserInitInvitedViewModel to inherit properties from OrganizationUserInvitedViewModel
* [AC-431] Removed unecessary parameter check
* [AC-431] Moved method description to IOrganizationService.InitPendingOrganization
* [AC-431] Moved ApplicationCacheService.UpsertOrganizationAbilityAsync and ReferenceEventService.RaiseEventAsync to OrganizationService
* [AC-431] Creating collection after creating organization
* [EC-435] Fixing bug on saving Organization that would have BillingEmail as null
* [AC-431] Deleted OrganizationUserInitInvitedViewModel and added parameter InitOrganization to OrganizationUserInvitedViewModel.cs
* [AC-431] Checking if the user has any existing SingleOrg policies before initializing an Org
* [AC-431] Remove commented code
* [EC-435] Added null check to Provider
* [EC-435] Moved trial buttons script logic to Edit view
* [AC-431] Added EncryptedString attribute to OrganizationUserAcceptInitRequestModel.CollectionName
* [AC-431] Refactored plan check condition
* [AC-431] Remove duplicate _applicationCacheService.UpsertOrganizationAbilityAsync call
* [AC-431] Removed IMailService.SendOrganizationInitInviteEmailAsync
* [AC-431] Added parameters ClaimsPrincipal and IUserService to IOrganizationService.CreatePendingOrganization
* [AC-434] Hide Billing screen for Reseller clients (#2783)
* [AC-434] Added ProviderType to ProfileOrganizationResponseModel
* [AC-434] Migration script
* [AC-434] Fixed indentation on migration script
* [AC-434] Hiding sensitive subscription data if the user does not have permissions
* [AC-434] Fixed missing dependency in unit test
* [AC-434] Altered BillingSubscription.Amount and BillingSubscriptionUpcomingInvoice.Amount to nullable
* [AC-434] Replaced CurrentContext.ManageBilling with ViewBillingHistory, ViewSubscription, EditSubscription and EditPaymentMethods
* [AC-434] Reverted change on BillingSubscription.Amount and now setting Subscription.Items = null when User does not have permission
* [AC-434] Added ProviderOrganizationProviderDetails_ReadByUserId
* [AC-434] Added IProviderOrganizationRepository.GetManyByUserAsync
* [AC-434] Added CurrentContext.GetOrganizationProviderDetails
* [AC-434] Remove unneeded join Organization table
* [AC-1255] Search Existing Organizations by partial Email (#2830)
* [AC-1255] Added email search field input validation
* [AC-1255] Reverted added email pattern
* [AC-1255] Modified Organization search by Email to search using substring
* [AC-1276] Displaying an Organizations pending owners if the Organization is in a Pending status (#2834)
* [AC-432] Checking that an existing Organization is not assigned to any Provider before being assigned (#2840)
* [AC-432] Checking if any of the selected Organizations is already assigned to a Provider
* [AC-432] Changed ProviderOrganization_ReadByOrganizationIds to only get count
* [AC-432] Replaced IProviderOrganizationRepository.GetCountByOrganizationIdsAsync with call to IProviderOrganizationRepository.GetByOrganizationId
* [AC-432] undo new line
* [AC-432] Fixed unit test
* Revert "[AC-432] Replaced IProviderOrganizationRepository.GetCountByOrganizationIdsAsync with call to IProviderOrganizationRepository.GetByOrganizationId"
This reverts commit ee6e095e883d933aa0d4c6beec0d4a93777ee2b9.
# Conflicts:
# util/Migrator/DbScripts/2023-03-22_00_ProviderAddExistingOrganizations.sql
* [AC-432] Created new migration script for ProviderOrganization_ReadCountByOrganizationIds
* [EC-584] Removed ListResponseModel from OrganizationExportResponseModel properties
* [EC-584] Added backwards compatibility for client version 2022.9.0
* [EC-584] Added property 'ClientVersion' to ICurrentContext
* [EC-584] Added backwards compatibility for version 2022.10.0
* [EC-584] Change ICurrentContext.ClientVersion from string to Version
* [EC-584] Remove check for versions before 2022.9.0 because they do not use this endpoint
* scim project stub
* some scim models and v2 controllers
* implement some v2 scim endpoints
* fix spacing
* api key auth
* EC-261 - SCIM Org API Key and connection type config
* EC-261 - Fix lint errors/formatting
* updates for okta implementation testing
* fix var ref
* updates from testing with Okta
* implement scim context via provider parsing
* support single and list of ids for add/remove groups
* log ops not handled
* touch up scim context
* group list filtering
* EC-261 - Additional SCIM provider types
* EC-265 - UseScim flag and license update
* EC-265 - SCIM provider type of default (0)
* EC-265 - Add Scim URL and update connection validation
* EC-265 - Model validation and cleanup for SCIM keys
* implement scim org connection
* EC-265 - Ensure ServiceUrl is not persisted to DB
* EC-265 - Exclude provider type from DB if not configured
* EC-261 - EF Migrations for SCIM
* add docker builds for scim
* EC-261 - Fix failing permissions tests
* EC-261 - Fix unit tests and pgsql migrations
* Formatting fixes from linter
* EC-265 - Remove service URL from scim config
* EC-265 - Fix unit tests, removed wayward validation
* EC-265 - Require self-hosted for billing sync org conn
* EC-265 - Fix formatting issues - whitespace
* EC-261 - PR feedback and cleanup
* scim constants rename
* no scim settings right now
* update project name
* delete package lock
* update appsettings configs for scim
* use default scim provider for context
Co-authored-by: Kyle Spearrin <kyle.spearrin@gmail.com>
* SqlServer split manage collection permission
* Clarify names
* Test claims generation
* Test permission serialization
* Simplify claims building
* Use new collections permissions
* Throw on use of deprecated permissions
* Lower case all claims
* Remove todos
* Clean nonexistent project from test solution
* JsonIgnore for both system and newtonsoft json
* Make migrations more robust to multiple runs
* remove duplicate usings
* Remove obsolete permissions
* Test solutions separately to detect failures
* Handle dos line endings
* Fix collections create/update permissions
* Change restore cipher to edit permissions
* Improve formatting
* Simplify map
* Refactor test
* added enum values for new events
* hooked up directory sync event
* upgraded the OrganizationUpgrade ReferenceEvent
* Added metadata to the OrganizationUserInvited event noting if this is the first event sent from an organization
* Added metadata to the AdjustedSeats event
* Implemented vaultImported event
* Implemented FirstGroupAdded event
* Implemented FirstCollectionAdded event
* Implemented FirstSecretAdded event type
* Implemented SalesAssisted reference event
* changed events to match updated requirements
* renamed an event enum
* Get limited life attachment download URL
This change limits url download to a 1min lifetime.
This requires moving to a new container to allow for non-public blob
access.
Clients will have to call GetAttachmentData api function to receive the download
URL. For backwards compatibility, attachment URLs are still present, but will not
work for attachments stored in non-public access blobs.
* Make GlobalSettings interface for testing
* Test LocalAttachmentStorageService equivalence
* Remove comment
* Add missing globalSettings using
* Simplify default attachment container
* Default to attachments containe for existing methods
A new upload method will be made for uploading to attachments-v2.
For compatibility for clients which don't use these new methods, we need
to still use the old container. The new container will be used only for
new uploads
* Remove Default MetaData fixture.
* Keep attachments container blob-level security for all instances
* Close unclosed FileStream
* Favor default value for noop services
* Add Disable Send policy
* Test DisableSend policy
* PR Review
* Update tests for using CurrentContext
This required making an interface for CurrentContext and mocking out
the members used. The interface can be expanded as needed for tests.
I moved CurrentContext to a folder, which changes the namespace
and causes a lot of file touches, but most are just adding a reference
* Fix failing test
* Update exemption to include all exempt users
* Move all CurrentContext usages to ICurrentContext
* PR review. Match messaging with Web