-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[PM-18770] Convert Organization to Business Unit #5610
base: main
Are you sure you want to change the base?
[PM-18770] Convert Organization to Business Unit #5610
Conversation
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #5610 +/- ##
==========================================
+ Coverage 45.66% 48.79% +3.12%
==========================================
Files 1597 1603 +6
Lines 72490 73001 +511
Branches 6495 6544 +49
==========================================
+ Hits 33101 35619 +2518
+ Misses 37974 35901 -2073
- Partials 1415 1481 +66 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
New Issues (1)Checkmarx found the following issues in this Pull Request
|
@@ -133,10 +133,10 @@ public IActionResult CreateReseller() | |||
return View(new CreateResellerProviderModel()); | |||
} | |||
|
|||
[HttpGet("providers/create/multi-organization-enterprise")] | |||
public IActionResult CreateMultiOrganizationEnterprise(int enterpriseMinimumSeats, string ownerEmail = null) | |||
[HttpGet("providers/create/business-unit")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We’re changing the endpoint route here. How are we accounting for backward compatibility with existing clients during the transition?
Do we have some kind of URL rewrite in place to map the old route to the new one?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Hi @JimmyVo16, thanks for the review.
Since these changes are for the Admin Portal specifically, there's no existing clients that are communicating with it; it's all the same server-side application. As such, for any release of this application prior to this, that controller action will serve up /providers/create/multi-organization-enterprise
and after this is released, it will serve up /providers/create/business-unit
, but the functionality will remain exactly the same.
@@ -198,18 +198,18 @@ public async Task<IActionResult> CreateReseller(CreateResellerProviderModel mode | |||
return RedirectToAction("Edit", new { id = provider.Id }); | |||
} | |||
|
|||
[HttpPost("providers/create/multi-organization-enterprise")] | |||
[HttpPost("providers/create/business-unit")] |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as this question.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
See above.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just one question from the AC side.
|
🎟️ Tracking
https://bitwarden.atlassian.net/browse/PM-18770
📔 Objective
This PR accomplishes the following:
InitiateConversion
: Begins the process of converting an organization into a business unit by running some validation, creating the necessary entities and sending out the invite.FinalizeConversion
: Finalizes the process of converting an organization to a business unit by updating the organization's subscription as well as assigning the correct client-side keys to the provider's linking records.ResendConversionInvite
: Resends the invite outlined in number 2.ResetConversion
: Deletes all of the entities created as part ofInitiateConversion
. This is useful in the case the Bitwarden Administrator accidentally entered the wrong Provider Admin email or otherwise wants to abandon the conversion.FinalizeConversion
operation.ProviderType
to the sync'sProfileResponse
. This is necessary as to determine the type of a provider after retrieving it from the client's state. This provider type is used to pivot some UI elements from saying "Provider Portal" to "Business Unit Portal".clients
PR: bitwarden/clients#14131📸 Screenshots
Screen.Recording.2025-04-04.at.1.56.56.PM.mov
⏰ Reminders before review
🦮 Reviewer guidelines
:+1:
) or similar for great changes:memo:
) or ℹ️ (:information_source:
) for notes or general info:question:
) for questions:thinking:
) or 💭 (:thought_balloon:
) for more open inquiry that's not quite a confirmed issue and could potentially benefit from discussion:art:
) for suggestions / improvements:x:
) or:warning:
) for more significant problems or concerns needing attention:seedling:
) or ♻️ (:recycle:
) for future improvements or indications of technical debt:pick:
) for minor or nitpick changes