Skip to content

Commit 81bff5e

Browse files
authored
[PM-11622] use organization domains (#5560)
* DBO changes * Add migration scripts * wip * wip * wip * add EF migrations * run dotnet format * cleanup * revert business logic * wip * add update statement to mssql migration script * fix user service tests * increment license, add UseOrganizationDomains * add migration helpers to seed initial value from UseSso * clean up * cleanup * fix mssql migrations * fix license version and test * fix file names * fix license json * add missing property to license test * rename file * fix migrations * fix migration * add WHERE to helper scripts * separate schema/data migrations * restore comment * Merge conflict * fix migrations * add new property to migration * wip * fix file names * fix file name
1 parent 9e2562f commit 81bff5e

53 files changed

Lines changed: 10139 additions & 72 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/Admin/AdminConsole/Controllers/OrganizationsController.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -462,6 +462,7 @@ private void UpdateOrganization(Organization organization, OrganizationEditModel
462462
organization.UsersGetPremium = model.UsersGetPremium;
463463
organization.UseSecretsManager = model.UseSecretsManager;
464464
organization.UseRiskInsights = model.UseRiskInsights;
465+
organization.UseOrganizationDomains = model.UseOrganizationDomains;
465466
organization.UseAdminSponsoredFamilies = model.UseAdminSponsoredFamilies;
466467

467468
//secrets

src/Admin/AdminConsole/Models/OrganizationEditModel.cs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,7 @@ public OrganizationEditModel(
102102
MaxAutoscaleSmSeats = org.MaxAutoscaleSmSeats;
103103
SmServiceAccounts = org.SmServiceAccounts;
104104
MaxAutoscaleSmServiceAccounts = org.MaxAutoscaleSmServiceAccounts;
105-
105+
UseOrganizationDomains = org.UseOrganizationDomains;
106106
_plans = plans;
107107
}
108108

@@ -186,6 +186,8 @@ public OrganizationEditModel(
186186
public int? SmServiceAccounts { get; set; }
187187
[Display(Name = "Max Autoscale Machine Accounts")]
188188
public int? MaxAutoscaleSmServiceAccounts { get; set; }
189+
[Display(Name = "Use Organization Domains")]
190+
public bool UseOrganizationDomains { get; set; }
189191

190192
/**
191193
* Creates a Plan[] object for use in Javascript
@@ -215,6 +217,7 @@ public object GetPlansHelper() =>
215217
Has2fa = p.Has2fa,
216218
HasApi = p.HasApi,
217219
HasSso = p.HasSso,
220+
HasOrganizationDomains = p.HasOrganizationDomains,
218221
HasKeyConnector = p.HasKeyConnector,
219222
HasScim = p.HasScim,
220223
HasResetPassword = p.HasResetPassword,
@@ -315,6 +318,7 @@ public Organization ToOrganization(Organization existingOrganization)
315318
existingOrganization.MaxAutoscaleSmSeats = MaxAutoscaleSmSeats;
316319
existingOrganization.SmServiceAccounts = SmServiceAccounts;
317320
existingOrganization.MaxAutoscaleSmServiceAccounts = MaxAutoscaleSmServiceAccounts;
321+
existingOrganization.UseOrganizationDomains = UseOrganizationDomains;
318322
return existingOrganization;
319323
}
320324
}

src/Admin/AdminConsole/Views/Shared/_OrganizationForm.cshtml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -124,6 +124,10 @@
124124
<input type="checkbox" class="form-check-input" asp-for="UseSso" disabled='@(canEditPlan ? null : "disabled")'>
125125
<label class="form-check-label" asp-for="UseSso"></label>
126126
</div>
127+
<div class="form-check">
128+
<input type="checkbox" class="form-check-input" asp-for="UseOrganizationDomains" disabled='@(canEditPlan ? null : "disabled")'>
129+
<label class="form-check-label" asp-for="UseOrganizationDomains"></label>
130+
</div>
127131
<div class="form-check">
128132
<input type="checkbox" class="form-check-input" asp-for="UseKeyConnector" disabled='@(canEditPlan ? null : "disabled")'>
129133
<label class="form-check-label" asp-for="UseKeyConnector"></label>

src/Admin/AdminConsole/Views/Shared/_OrganizationFormScripts.cshtml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@
6969
document.getElementById('@(nameof(Model.UseGroups))').checked = plan.hasGroups;
7070
document.getElementById('@(nameof(Model.UsePolicies))').checked = plan.hasPolicies;
7171
document.getElementById('@(nameof(Model.UseSso))').checked = plan.hasSso;
72+
document.getElementById('@(nameof(Model.UseOrganizationDomains))').checked = hasOrganizationDomains;
7273
document.getElementById('@(nameof(Model.UseScim))').checked = plan.hasScim;
7374
document.getElementById('@(nameof(Model.UseDirectory))').checked = plan.hasDirectory;
7475
document.getElementById('@(nameof(Model.UseEvents))').checked = plan.hasEvents;

src/Api/AdminConsole/Models/Response/Organizations/OrganizationResponseModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -64,6 +64,7 @@ public OrganizationResponseModel(
6464
LimitItemDeletion = organization.LimitItemDeletion;
6565
AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
6666
UseRiskInsights = organization.UseRiskInsights;
67+
UseOrganizationDomains = organization.UseOrganizationDomains;
6768
UseAdminSponsoredFamilies = organization.UseAdminSponsoredFamilies;
6869
}
6970

@@ -111,6 +112,7 @@ public OrganizationResponseModel(
111112
public bool LimitItemDeletion { get; set; }
112113
public bool AllowAdminAccessToAllCollectionItems { get; set; }
113114
public bool UseRiskInsights { get; set; }
115+
public bool UseOrganizationDomains { get; set; }
114116
public bool UseAdminSponsoredFamilies { get; set; }
115117
}
116118

src/Api/AdminConsole/Models/Response/ProfileOrganizationResponseModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ public ProfileOrganizationResponseModel(
7373
AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
7474
UserIsClaimedByOrganization = organizationIdsClaimingUser.Contains(organization.OrganizationId);
7575
UseRiskInsights = organization.UseRiskInsights;
76+
UseOrganizationDomains = organization.UseOrganizationDomains;
7677
UseAdminSponsoredFamilies = organization.UseAdminSponsoredFamilies;
7778

7879
if (organization.SsoConfig != null)
@@ -153,6 +154,7 @@ public bool UserIsManagedByOrganization
153154
/// </remarks>
154155
public bool UserIsClaimedByOrganization { get; set; }
155156
public bool UseRiskInsights { get; set; }
157+
public bool UseOrganizationDomains { get; set; }
156158
public bool UseAdminSponsoredFamilies { get; set; }
157159
public bool IsAdminInitiated { get; set; }
158160
}

src/Api/AdminConsole/Models/Response/ProfileProviderOrganizationResponseModel.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@ public ProfileProviderOrganizationResponseModel(ProviderUserOrganizationDetails
5050
LimitItemDeletion = organization.LimitItemDeletion;
5151
AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
5252
UseRiskInsights = organization.UseRiskInsights;
53+
UseOrganizationDomains = organization.UseOrganizationDomains;
5354
UseAdminSponsoredFamilies = organization.UseAdminSponsoredFamilies;
5455
}
5556
}

src/Api/Models/Response/PlanResponseModel.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ public PlanResponseModel(Plan plan, string obj = "plan")
3232
HasTotp = plan.HasTotp;
3333
Has2fa = plan.Has2fa;
3434
HasSso = plan.HasSso;
35+
HasOrganizationDomains = plan.HasOrganizationDomains;
3536
HasResetPassword = plan.HasResetPassword;
3637
UsersGetPremium = plan.UsersGetPremium;
3738
UpgradeSortOrder = plan.UpgradeSortOrder;
@@ -71,6 +72,7 @@ public PlanResponseModel(Organization organization, string obj = "plan") : base(
7172
public bool Has2fa { get; set; }
7273
public bool HasApi { get; set; }
7374
public bool HasSso { get; set; }
75+
public bool HasOrganizationDomains { get; set; }
7476
public bool HasResetPassword { get; set; }
7577
public bool UsersGetPremium { get; set; }
7678

src/Core/AdminConsole/Entities/Organization.cs

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -114,6 +114,11 @@ public class Organization : ITableObject<Guid>, IStorableSubscriber, IRevisable,
114114
/// </summary>
115115
public bool UseRiskInsights { get; set; }
116116

117+
/// <summary>
118+
/// If true, the organization can claim domains, which unlocks additional enterprise features
119+
/// </summary>
120+
public bool UseOrganizationDomains { get; set; }
121+
117122
/// <summary>
118123
/// If set to true, admins can initiate organization-issued sponsorships.
119124
/// </summary>
@@ -319,5 +324,6 @@ public void UpdateFromLicense(OrganizationLicense license, IFeatureService featu
319324
SmSeats = license.SmSeats;
320325
SmServiceAccounts = license.SmServiceAccounts;
321326
UseRiskInsights = license.UseRiskInsights;
327+
UseOrganizationDomains = license.UseOrganizationDomains;
322328
}
323329
}

src/Core/AdminConsole/Models/Data/Organizations/OrganizationAbility.cs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public OrganizationAbility(Organization organization)
2626
LimitItemDeletion = organization.LimitItemDeletion;
2727
AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
2828
UseRiskInsights = organization.UseRiskInsights;
29+
UseOrganizationDomains = organization.UseOrganizationDomains;
2930
UseAdminSponsoredFamilies = organization.UseAdminSponsoredFamilies;
3031
}
3132

@@ -46,5 +47,6 @@ public OrganizationAbility(Organization organization)
4647
public bool LimitItemDeletion { get; set; }
4748
public bool AllowAdminAccessToAllCollectionItems { get; set; }
4849
public bool UseRiskInsights { get; set; }
50+
public bool UseOrganizationDomains { get; set; }
4951
public bool UseAdminSponsoredFamilies { get; set; }
5052
}

0 commit comments

Comments
 (0)