Skip to content

[PM-17823]Add feature toggle for admin sponsored families to admin portal #5595

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

Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
08924e1
WIP
Mar 11, 2025
989f64d
WIP
Mar 11, 2025
c03190d
WIP
Mar 11, 2025
effd0b7
WIP
Mar 11, 2025
5b89586
WIP
Mar 12, 2025
ef207e5
WIP
Mar 14, 2025
f752050
WIP
Mar 14, 2025
841ce94
WIP
Mar 14, 2025
8cc1969
WIP
Mar 14, 2025
e923af2
WIP
Mar 14, 2025
7f8fa66
WIP
Mar 14, 2025
b06cff0
WIP
Mar 14, 2025
7fd4f4c
WIP
Mar 14, 2025
56167aa
WIP
Mar 14, 2025
b3ede1d
WIP
Mar 14, 2025
73a2533
WIP
Mar 14, 2025
daefc14
WIP
Mar 14, 2025
2d57112
WIP
Mar 14, 2025
ac0691f
WIP
Mar 14, 2025
c457b0b
WIP
Mar 14, 2025
bbb109c
Add `Notes` column to `OrganizationSponsorships` table
Mar 26, 2025
f6ec513
Add feature flag to `CreateAdminInitiatedSponsorshipHandler`
Mar 26, 2025
43f790a
Unit tests for `CreateSponsorshipHandler`
Mar 26, 2025
ba7b907
More tests for `CreateSponsorshipHandler`
Mar 26, 2025
6c3ee36
Forgot to add `Notes` column to `OrganizationSponsorships` table in tโ€ฆ
Mar 26, 2025
5b858a0
`CreateAdminInitiatedSponsorshipHandler` unit tests
Mar 26, 2025
052c2dd
Fix `CreateSponsorshipCommandTests`
Mar 26, 2025
f6143b1
Encrypt the notes field
Mar 26, 2025
990df5e
Wrong business logic checking for invalid permissions.
Mar 26, 2025
b24c25f
Wrong business logic checking for invalid permissions.
Mar 26, 2025
6c79756
Merge remote-tracking branch 'origin/PM-17830' into PM-17830
Mar 26, 2025
a010c09
Remove design patterns
Mar 26, 2025
b0fbaff
Merge branch 'main' into PM-17830
Mar 26, 2025
07f3f39
duplicate definition in Constants.cs
Mar 27, 2025
6fbc823
Merge branch 'main' into PM-17830
Mar 28, 2025
197b474
Add the admin sponsored families to admin portal
cyprain-okeke Apr 2, 2025
7ce347f
Add a feature flag
cyprain-okeke Apr 2, 2025
05a0f5a
Rename the migration file name
cyprain-okeke Apr 3, 2025
3ffc00d
Resolve the existing conflict and remove added file
cyprain-okeke Apr 3, 2025
2a5aba6
Add a migration for the change
cyprain-okeke Apr 3, 2025
8b0399f
Merge branch 'main' into pm-17823-Add-feature-toggle-for-admin-sponsoโ€ฆ
cyprain-okeke Apr 16, 2025
fa1a6be
Merge branch 'main' into pm-17823-Add-feature-toggle-for-admin-sponsoโ€ฆ
cyprain-okeke Apr 17, 2025
ef74c9e
Remove the migration Because is already added
cyprain-okeke Apr 17, 2025
43f0f8e
Resolve the failing migration
cyprain-okeke Apr 17, 2025
adc49bc
Merge branch 'main' into pm-17823-Add-feature-toggle-for-admin-sponsoโ€ฆ
cyprain-okeke Apr 17, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -462,6 +462,7 @@
organization.UsersGetPremium = model.UsersGetPremium;
organization.UseSecretsManager = model.UseSecretsManager;
organization.UseRiskInsights = model.UseRiskInsights;
organization.UseAdminSponsoredFamilies = model.UseAdminSponsoredFamilies;

Check warning on line 465 in src/Admin/AdminConsole/Controllers/OrganizationsController.cs

View check run for this annotation

Codecov / codecov/patch

src/Admin/AdminConsole/Controllers/OrganizationsController.cs#L465

Added line #L465 was not covered by tests

//secrets
organization.SmSeats = model.SmSeats;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,11 @@
@using Bit.Admin.Enums;
@using Bit.Core
@using Bit.Core.Enums
@using Bit.Core.AdminConsole.Enums.Provider
@using Bit.Core.Billing.Enums
@using Bit.SharedWeb.Utilities
@inject Bit.Admin.Services.IAccessControlService AccessControlService;
@inject Bit.Core.Services.IFeatureService FeatureService

@model OrganizationEditModel

Expand Down Expand Up @@ -146,6 +148,13 @@
<input type="checkbox" class="form-check-input" asp-for="UseCustomPermissions" disabled='@(canEditPlan ? null : "disabled")'>
<label class="form-check-label" asp-for="UseCustomPermissions"></label>
</div>
@if(FeatureService.IsEnabled(FeatureFlagKeys.PM17772_AdminInitiatedSponsorships))
{
<div class="form-check">
<input type="checkbox" class="form-check-input" asp-for="UseAdminSponsoredFamilies" disabled='@(canEditPlan ? null : "disabled")'>
<label class="form-check-label" asp-for="UseAdminSponsoredFamilies"></label>
</div>
}
</div>
<div class="col-3">
<h3>Password Manager</h3>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,127 @@
CREATE OR ALTER PROCEDURE [dbo].[Organization_Update]
@Id UNIQUEIDENTIFIER,
@Identifier NVARCHAR(50),
@Name NVARCHAR(50),
@BusinessName NVARCHAR(50),
@BusinessAddress1 NVARCHAR(50),
@BusinessAddress2 NVARCHAR(50),
@BusinessAddress3 NVARCHAR(50),
@BusinessCountry VARCHAR(2),
@BusinessTaxNumber NVARCHAR(30),
@BillingEmail NVARCHAR(256),
@Plan NVARCHAR(50),
@PlanType TINYINT,
@Seats INT,
@MaxCollections SMALLINT,
@UsePolicies BIT,
@UseSso BIT,
@UseGroups BIT,
@UseDirectory BIT,
@UseEvents BIT,
@UseTotp BIT,
@Use2fa BIT,
@UseApi BIT,
@UseResetPassword BIT,
@SelfHost BIT,
@UsersGetPremium BIT,
@Storage BIGINT,
@MaxStorageGb SMALLINT,
@Gateway TINYINT,
@GatewayCustomerId VARCHAR(50),
@GatewaySubscriptionId VARCHAR(50),
@ReferenceData VARCHAR(MAX),
@Enabled BIT,
@LicenseKey VARCHAR(100),
@PublicKey VARCHAR(MAX),
@PrivateKey VARCHAR(MAX),
@TwoFactorProviders NVARCHAR(MAX),
@ExpirationDate DATETIME2(7),
@CreationDate DATETIME2(7),
@RevisionDate DATETIME2(7),
@OwnersNotifiedOfAutoscaling DATETIME2(7),
@MaxAutoscaleSeats INT,
@UseKeyConnector BIT = 0,
@UseScim BIT = 0,
@UseCustomPermissions BIT = 0,
@UseSecretsManager BIT = 0,
@Status TINYINT = 0,
@UsePasswordManager BIT = 1,
@SmSeats INT = null,
@SmServiceAccounts INT = null,
@MaxAutoscaleSmSeats INT = null,
@MaxAutoscaleSmServiceAccounts INT = null,
@SecretsManagerBeta BIT = 0,
@LimitCollectionCreation BIT = null,
@LimitCollectionDeletion BIT = null,
@AllowAdminAccessToAllCollectionItems BIT = 0,
@UseRiskInsights BIT = 0,
@LimitItemDeletion BIT = 0,
@UseAdminSponsoredFamilies BIT = 0
AS
BEGIN
SET NOCOUNT ON

UPDATE
[dbo].[Organization]
SET
[Identifier] = @Identifier,
[Name] = @Name,
[BusinessName] = @BusinessName,
[BusinessAddress1] = @BusinessAddress1,
[BusinessAddress2] = @BusinessAddress2,
[BusinessAddress3] = @BusinessAddress3,
[BusinessCountry] = @BusinessCountry,
[BusinessTaxNumber] = @BusinessTaxNumber,
[BillingEmail] = @BillingEmail,
[Plan] = @Plan,
[PlanType] = @PlanType,
[Seats] = @Seats,
[MaxCollections] = @MaxCollections,
[UsePolicies] = @UsePolicies,
[UseSso] = @UseSso,
[UseGroups] = @UseGroups,
[UseDirectory] = @UseDirectory,
[UseEvents] = @UseEvents,
[UseTotp] = @UseTotp,
[Use2fa] = @Use2fa,
[UseApi] = @UseApi,
[UseResetPassword] = @UseResetPassword,
[SelfHost] = @SelfHost,
[UsersGetPremium] = @UsersGetPremium,
[Storage] = @Storage,
[MaxStorageGb] = @MaxStorageGb,
[Gateway] = @Gateway,
[GatewayCustomerId] = @GatewayCustomerId,
[GatewaySubscriptionId] = @GatewaySubscriptionId,
[ReferenceData] = @ReferenceData,
[Enabled] = @Enabled,
[LicenseKey] = @LicenseKey,
[PublicKey] = @PublicKey,
[PrivateKey] = @PrivateKey,
[TwoFactorProviders] = @TwoFactorProviders,
[ExpirationDate] = @ExpirationDate,
[CreationDate] = @CreationDate,
[RevisionDate] = @RevisionDate,
[OwnersNotifiedOfAutoscaling] = @OwnersNotifiedOfAutoscaling,
[MaxAutoscaleSeats] = @MaxAutoscaleSeats,
[UseKeyConnector] = @UseKeyConnector,
[UseScim] = @UseScim,
[UseCustomPermissions] = @UseCustomPermissions,
[UseSecretsManager] = @UseSecretsManager,
[Status] = @Status,
[UsePasswordManager] = @UsePasswordManager,
[SmSeats] = @SmSeats,
[SmServiceAccounts] = @SmServiceAccounts,
[MaxAutoscaleSmSeats] = @MaxAutoscaleSmSeats,
[MaxAutoscaleSmServiceAccounts] = @MaxAutoscaleSmServiceAccounts,
[SecretsManagerBeta] = @SecretsManagerBeta,
[LimitCollectionCreation] = @LimitCollectionCreation,
[LimitCollectionDeletion] = @LimitCollectionDeletion,
[AllowAdminAccessToAllCollectionItems] = @AllowAdminAccessToAllCollectionItems,
[UseRiskInsights] = @UseRiskInsights,
[LimitItemDeletion] = @LimitItemDeletion,
[UseAdminSponsoredFamilies] = @UseAdminSponsoredFamilies
WHERE
[Id] = @Id
END
GO
Loading