From 4ae86b7d3438b305a2b201137b9ee320017c6d25 Mon Sep 17 00:00:00 2001 From: Thomas Rittson <31796059+eliykat@users.noreply.github.com> Date: Mon, 26 Feb 2024 02:26:08 +1000 Subject: [PATCH] [AC-2213] Add Flexible Collections information in the Bitwarden Portal (#3801) * Add Flexible Collections information in the Bitwarden Portal * Add collection management settings * Add headings --- .../Models/OrganizationViewModel.cs | 28 +++++++--- .../Organizations/_ViewInformation.cshtml | 51 ++++++++++++------- 2 files changed, 54 insertions(+), 25 deletions(-) diff --git a/src/Admin/AdminConsole/Models/OrganizationViewModel.cs b/src/Admin/AdminConsole/Models/OrganizationViewModel.cs index 99cda6835f..7706389d10 100644 --- a/src/Admin/AdminConsole/Models/OrganizationViewModel.cs +++ b/src/Admin/AdminConsole/Models/OrganizationViewModel.cs @@ -9,11 +9,15 @@ namespace Bit.Admin.AdminConsole.Models; public class OrganizationViewModel { - public OrganizationViewModel() { } + public OrganizationViewModel() + { + } public OrganizationViewModel(Organization org, Provider provider, IEnumerable connections, - IEnumerable orgUsers, IEnumerable ciphers, IEnumerable collections, - IEnumerable groups, IEnumerable policies, int secretsCount, int projectCount, int serviceAccountsCount, + IEnumerable orgUsers, IEnumerable ciphers, + IEnumerable collections, + IEnumerable groups, IEnumerable policies, int secretsCount, int projectCount, + int serviceAccountsCount, int occupiedSmSeatsCount) { @@ -34,12 +38,12 @@ public class OrganizationViewModel : OrganizationUserStatusType.Confirmed; Owners = string.Join(", ", orgUsers - .Where(u => u.Type == OrganizationUserType.Owner && u.Status == organizationUserStatus) - .Select(u => u.Email)); + .Where(u => u.Type == OrganizationUserType.Owner && u.Status == organizationUserStatus) + .Select(u => u.Email)); Admins = string.Join(", ", orgUsers - .Where(u => u.Type == OrganizationUserType.Admin && u.Status == organizationUserStatus) - .Select(u => u.Email)); + .Where(u => u.Type == OrganizationUserType.Admin && u.Status == organizationUserStatus) + .Select(u => u.Email)); SecretsCount = secretsCount; ProjectsCount = projectCount; ServiceAccountsCount = serviceAccountsCount; @@ -65,4 +69,14 @@ public class OrganizationViewModel public int ServiceAccountsCount { get; set; } public int OccupiedSmSeatsCount { get; set; } public bool UseSecretsManager => Organization.UseSecretsManager; + + public string GetCollectionManagementSetting(bool collectionManagementSetting) + { + if (!Organization.FlexibleCollections) + { + return "N/A"; + } + + return collectionManagementSetting ? "On" : "Off"; + } } diff --git a/src/Admin/AdminConsole/Views/Organizations/_ViewInformation.cshtml b/src/Admin/AdminConsole/Views/Organizations/_ViewInformation.cshtml index 19432cd4f7..df9b93e4db 100644 --- a/src/Admin/AdminConsole/Views/Organizations/_ViewInformation.cshtml +++ b/src/Admin/AdminConsole/Views/Organizations/_ViewInformation.cshtml @@ -26,24 +26,6 @@
Using 2FA
@(Model.Organization.TwoFactorIsEnabled() ? "Yes" : "No")
-
Items
-
@Model.CipherCount
- -
Collections
-
@Model.CollectionCount
- -
Secrets
-
@(Model.UseSecretsManager ? Model.SecretsCount: "N/A")
- -
Projects
-
@(Model.UseSecretsManager ? Model.ProjectsCount: "N/A")
- -
Service Accounts
-
@(Model.UseSecretsManager ? Model.ServiceAccountsCount: "N/A")
- -
Secrets Manager Seats
-
@(Model.UseSecretsManager ? Model.OccupiedSmSeatsCount: "N/A" )
-
Groups
@Model.GroupCount
@@ -59,3 +41,36 @@
Modified
@Model.Organization.RevisionDate.ToString()
+ +

Password Manager

+
+
Items
+
@Model.CipherCount
+ +
Collections
+
@Model.CollectionCount
+ +
Collection management enhancements
+
@(Model.Organization.FlexibleCollections ? "On" : "Off")
+ +
Administrators manage all collections
+
@(Model.GetCollectionManagementSetting(Model.Organization.AllowAdminAccessToAllCollectionItems))
+ +
Limit collection creation to administrators
+
@(Model.GetCollectionManagementSetting(Model.Organization.LimitCollectionCreationDeletion))
+
+ +

Secrets Manager

+
+
Secrets
+
@(Model.UseSecretsManager ? Model.SecretsCount: "N/A")
+ +
Projects
+
@(Model.UseSecretsManager ? Model.ProjectsCount: "N/A")
+ +
Service Accounts
+
@(Model.UseSecretsManager ? Model.ServiceAccountsCount: "N/A")
+ +
Secrets Manager Seats
+
@(Model.UseSecretsManager ? Model.OccupiedSmSeatsCount: "N/A" )
+