1
0
mirror of https://github.com/bitwarden/server.git synced 2025-02-26 03:31:34 +01:00

[AC-1895] AC Team code ownership moves: Bitwarden Portal (#3528)

---------

Co-authored-by: Addison Beck <hello@addisonbeck.com>
This commit is contained in:
Thomas Rittson 2024-02-21 09:18:09 +10:00 committed by GitHub
parent 3a6b2d85d3
commit 0abd52b5be
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
34 changed files with 52 additions and 38 deletions

View File

@ -1,5 +1,5 @@
using Bit.Admin.Enums; using Bit.Admin.AdminConsole.Models;
using Bit.Admin.Models; using Bit.Admin.Enums;
using Bit.Admin.Services; using Bit.Admin.Services;
using Bit.Admin.Utilities; using Bit.Admin.Utilities;
using Bit.Core.AdminConsole.Entities; using Bit.Core.AdminConsole.Entities;
@ -23,7 +23,7 @@ using Bit.Core.Vault.Repositories;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace Bit.Admin.Controllers; namespace Bit.Admin.AdminConsole.Controllers;
[Authorize] [Authorize]
public class OrganizationsController : Controller public class OrganizationsController : Controller
@ -38,7 +38,6 @@ public class OrganizationsController : Controller
private readonly IGroupRepository _groupRepository; private readonly IGroupRepository _groupRepository;
private readonly IPolicyRepository _policyRepository; private readonly IPolicyRepository _policyRepository;
private readonly IPaymentService _paymentService; private readonly IPaymentService _paymentService;
private readonly ILicensingService _licensingService;
private readonly IApplicationCacheService _applicationCacheService; private readonly IApplicationCacheService _applicationCacheService;
private readonly GlobalSettings _globalSettings; private readonly GlobalSettings _globalSettings;
private readonly IReferenceEventService _referenceEventService; private readonly IReferenceEventService _referenceEventService;
@ -65,7 +64,6 @@ public class OrganizationsController : Controller
IGroupRepository groupRepository, IGroupRepository groupRepository,
IPolicyRepository policyRepository, IPolicyRepository policyRepository,
IPaymentService paymentService, IPaymentService paymentService,
ILicensingService licensingService,
IApplicationCacheService applicationCacheService, IApplicationCacheService applicationCacheService,
GlobalSettings globalSettings, GlobalSettings globalSettings,
IReferenceEventService referenceEventService, IReferenceEventService referenceEventService,
@ -91,7 +89,6 @@ public class OrganizationsController : Controller
_groupRepository = groupRepository; _groupRepository = groupRepository;
_policyRepository = policyRepository; _policyRepository = policyRepository;
_paymentService = paymentService; _paymentService = paymentService;
_licensingService = licensingService;
_applicationCacheService = applicationCacheService; _applicationCacheService = applicationCacheService;
_globalSettings = globalSettings; _globalSettings = globalSettings;
_referenceEventService = referenceEventService; _referenceEventService = referenceEventService;

View File

@ -8,7 +8,7 @@ using Bit.Core.Utilities;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace Bit.Admin.Controllers; namespace Bit.Admin.AdminConsole.Controllers;
[Authorize] [Authorize]
[SelfHosted(NotSelfHostedOnly = true)] [SelfHosted(NotSelfHostedOnly = true)]

View File

@ -1,5 +1,5 @@
using Bit.Admin.Enums; using Bit.Admin.AdminConsole.Models;
using Bit.Admin.Models; using Bit.Admin.Enums;
using Bit.Admin.Utilities; using Bit.Admin.Utilities;
using Bit.Core; using Bit.Core;
using Bit.Core.AdminConsole.Entities.Provider; using Bit.Core.AdminConsole.Entities.Provider;
@ -15,7 +15,7 @@ using Bit.Core.Utilities;
using Microsoft.AspNetCore.Authorization; using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Mvc; using Microsoft.AspNetCore.Mvc;
namespace Bit.Admin.Controllers; namespace Bit.Admin.AdminConsole.Controllers;
[Authorize] [Authorize]
[SelfHosted(NotSelfHostedOnly = true)] [SelfHosted(NotSelfHostedOnly = true)]

View File

@ -3,7 +3,7 @@ using Bit.Core.AdminConsole.Entities.Provider;
using Bit.Core.AdminConsole.Enums.Provider; using Bit.Core.AdminConsole.Enums.Provider;
using Bit.SharedWeb.Utilities; using Bit.SharedWeb.Utilities;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class CreateProviderModel : IValidatableObject public class CreateProviderModel : IValidatableObject
{ {

View File

@ -11,7 +11,7 @@ using Bit.Core.Utilities;
using Bit.Core.Vault.Entities; using Bit.Core.Vault.Entities;
using Bit.SharedWeb.Utilities; using Bit.SharedWeb.Utilities;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class OrganizationEditModel : OrganizationViewModel public class OrganizationEditModel : OrganizationViewModel
{ {

View File

@ -1,6 +1,6 @@
using Bit.Core.AdminConsole.Entities; using Bit.Core.AdminConsole.Entities;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class OrganizationSelectableViewModel : Organization public class OrganizationSelectableViewModel : Organization
{ {

View File

@ -1,6 +1,7 @@
using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations;
using Bit.Admin.Models;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class OrganizationUnassignedToProviderSearchViewModel : PagedModel<OrganizationSelectableViewModel> public class OrganizationUnassignedToProviderSearchViewModel : PagedModel<OrganizationSelectableViewModel>
{ {

View File

@ -5,7 +5,7 @@ using Bit.Core.Enums;
using Bit.Core.Models.Data.Organizations.OrganizationUsers; using Bit.Core.Models.Data.Organizations.OrganizationUsers;
using Bit.Core.Vault.Entities; using Bit.Core.Vault.Entities;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class OrganizationViewModel public class OrganizationViewModel
{ {

View File

@ -1,6 +1,7 @@
using Bit.Core.AdminConsole.Entities; using Bit.Admin.Models;
using Bit.Core.AdminConsole.Entities;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class OrganizationsModel : PagedModel<Organization> public class OrganizationsModel : PagedModel<Organization>
{ {

View File

@ -2,7 +2,7 @@
using Bit.Core.AdminConsole.Entities.Provider; using Bit.Core.AdminConsole.Entities.Provider;
using Bit.Core.AdminConsole.Models.Data.Provider; using Bit.Core.AdminConsole.Models.Data.Provider;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class ProviderEditModel : ProviderViewModel public class ProviderEditModel : ProviderViewModel
{ {

View File

@ -2,7 +2,7 @@
using Bit.Core.AdminConsole.Enums.Provider; using Bit.Core.AdminConsole.Enums.Provider;
using Bit.Core.AdminConsole.Models.Data.Provider; using Bit.Core.AdminConsole.Models.Data.Provider;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class ProviderViewModel public class ProviderViewModel
{ {

View File

@ -1,6 +1,7 @@
using Bit.Core.AdminConsole.Entities.Provider; using Bit.Admin.Models;
using Bit.Core.AdminConsole.Entities.Provider;
namespace Bit.Admin.Models; namespace Bit.Admin.AdminConsole.Models;
public class ProvidersModel : PagedModel<Provider> public class ProvidersModel : PagedModel<Provider>
{ {

View File

@ -1,3 +1,4 @@
@using Bit.Core.Enums
@model OrganizationViewModel @model OrganizationViewModel
<h2>Connections</h2> <h2>Connections</h2>
<div class="row"> <div class="row">
@ -49,7 +50,7 @@
} }
</td> </td>
<td> <td>
@if(connection.Enabled) @if(connection.Enabled)
{ {
@if(@TempData["ConnectionActivated"] != null && @TempData["ConnectionActivated"].ToString() == @Model.Organization.Id.ToString()) @if(@TempData["ConnectionActivated"] != null && @TempData["ConnectionActivated"].ToString() == @Model.Organization.Id.ToString())
{ {
@ -62,8 +63,8 @@
{ {
@if(connection.Type.Equals(OrganizationConnectionType.CloudBillingSync)) @if(connection.Type.Equals(OrganizationConnectionType.CloudBillingSync))
{ {
<a class="btn btn-outline-secondary btn-sm" <a class="btn btn-outline-secondary btn-sm"
data-id="@connection.Id" asp-controller="Organizations" data-id="@connection.Id" asp-controller="Organizations"
asp-action="TriggerBillingSync" asp-route-id="@Model.Organization.Id"> asp-action="TriggerBillingSync" asp-route-id="@Model.Organization.Id">
Manually Sync Manually Sync
</a> </a>
@ -78,4 +79,4 @@
</table> </table>
</div> </div>
</div> </div>
</div> </div>

View File

@ -1,4 +1,6 @@
@using Bit.Admin.Enums; @using Bit.Admin.Enums;
@using Bit.Admin.Models
@using Bit.Core.Enums
@inject Bit.Admin.Services.IAccessControlService AccessControlService @inject Bit.Admin.Services.IAccessControlService AccessControlService
@model OrganizationEditModel @model OrganizationEditModel
@{ @{
@ -12,7 +14,7 @@
} }
@section Scripts { @section Scripts {
@await Html.PartialAsync("_OrganizationFormScripts") @await Html.PartialAsync("~/AdminConsole/Views/Shared/_OrganizationFormScripts.cshtml")
<script> <script>
(() => { (() => {
@ -77,7 +79,7 @@
new BillingInformationModel { BillingInfo = Model.BillingInfo, OrganizationId = Model.Organization.Id, Entity = "Organization" }) new BillingInformationModel { BillingInfo = Model.BillingInfo, OrganizationId = Model.Organization.Id, Entity = "Organization" })
} }
@await Html.PartialAsync("_OrganizationForm", Model) @await Html.PartialAsync("~/AdminConsole/Views/Shared/_OrganizationForm.cshtml", Model)
<div class="d-flex mt-4"> <div class="d-flex mt-4">
<button type="submit" class="btn btn-primary" form="edit-form">Save</button> <button type="submit" class="btn btn-primary" form="edit-form">Save</button>

View File

@ -1,5 +1,4 @@
@using Bit.SharedWeb.Utilities @using Bit.SharedWeb.Utilities
@using Microsoft.AspNetCore.Mvc.TagHelpers
@model OrganizationUnassignedToProviderSearchViewModel @model OrganizationUnassignedToProviderSearchViewModel
@{ @{

View File

@ -38,7 +38,7 @@
@admin.Status @admin.Status
</td> </td>
<td> <td>
@if(admin.Status.Equals(ProviderUserStatusType.Confirmed) @if(admin.Status.Equals(ProviderUserStatusType.Confirmed)
&& @Model.Provider.Status.Equals(ProviderStatusType.Pending) && @Model.Provider.Status.Equals(ProviderStatusType.Pending)
&& canResendEmailInvite) && canResendEmailInvite)
{ {
@ -48,9 +48,9 @@
} }
else else
{ {
<a class="btn btn-outline-secondary btn-sm" <a class="btn btn-outline-secondary btn-sm"
data-id="@admin.Id" asp-controller="Providers" data-id="@admin.Id" asp-controller="Providers"
asp-action="ResendInvite" asp-route-ownerId="@admin.UserId" asp-action="ResendInvite" asp-route-ownerId="@admin.UserId"
asp-route-providerId="@Model.Provider.Id"> asp-route-providerId="@Model.Provider.Id">
Resend Setup Invite Resend Setup Invite
</a> </a>

View File

@ -4,7 +4,7 @@
} }
@section Scripts { @section Scripts {
@await Html.PartialAsync("_OrganizationFormScripts") @await Html.PartialAsync("~/AdminConsole/Views/Shared/_OrganizationFormScripts.cshtml")
<script> <script>
(() => { (() => {
@ -15,7 +15,7 @@
<h1>New Client Organization</h1> <h1>New Client Organization</h1>
@await Html.PartialAsync("_OrganizationForm", Model) @await Html.PartialAsync("~/AdminConsole/Views/Shared/_OrganizationForm.cshtml", Model)
<div class="d-flex mt-4"> <div class="d-flex mt-4">
<button type="submit" class="btn btn-primary" form="edit-form">Save</button> <button type="submit" class="btn btn-primary" form="edit-form">Save</button>
<div class="ml-auto d-flex"> <div class="ml-auto d-flex">

View File

@ -1,6 +1,7 @@
@using Bit.Core.AdminConsole.Enums.Provider @using Bit.Core.AdminConsole.Enums.Provider
@using Microsoft.AspNetCore.Mvc.TagHelpers @using Microsoft.AspNetCore.Mvc.TagHelpers
@using Bit.Admin.Enums @using Bit.Admin.Enums
@using Bit.Core.Enums
@inject Bit.Admin.Services.IAccessControlService AccessControlService @inject Bit.Admin.Services.IAccessControlService AccessControlService
@model ProviderViewModel @model ProviderViewModel

View File

@ -7,13 +7,13 @@
<dt class="col-sm-4 col-lg-3">Status</dt> <dt class="col-sm-4 col-lg-3">Status</dt>
<dd class="col-sm-8 col-lg-9">@Model.Provider.Status</dd> <dd class="col-sm-8 col-lg-9">@Model.Provider.Status</dd>
<dt class="col-sm-4 col-lg-3">Users</dt> <dt class="col-sm-4 col-lg-3">Users</dt>
<dd class="col-sm-8 col-lg-9">@(Model.Provider.Type == ProviderType.Reseller ? "N/A" : Model.UserCount)</dd> <dd class="col-sm-8 col-lg-9">@(Model.Provider.Type == ProviderType.Reseller ? "N/A" : Model.UserCount)</dd>
<dt class="col-sm-4 col-lg-3">Provider Type</dt> <dt class="col-sm-4 col-lg-3">Provider Type</dt>
<dd class="col-sm-8 col-lg-9">@(Model.Provider.Type.GetDisplayAttribute()?.GetName())</dd> <dd class="col-sm-8 col-lg-9">@(Model.Provider.Type.GetDisplayAttribute()?.GetName())</dd>
<dt class="col-sm-4 col-lg-3">Created</dt> <dt class="col-sm-4 col-lg-3">Created</dt>
<dd class="col-sm-8 col-lg-9">@Model.Provider.CreationDate.ToString()</dd> <dd class="col-sm-8 col-lg-9">@Model.Provider.CreationDate.ToString()</dd>

View File

@ -1,6 +1,7 @@
@using Bit.SharedWeb.Utilities
@using Bit.Admin.Enums; @using Bit.Admin.Enums;
@using Bit.Core.Enums
@using Bit.Core.AdminConsole.Enums.Provider @using Bit.Core.AdminConsole.Enums.Provider
@using Bit.SharedWeb.Utilities
@inject Bit.Admin.Services.IAccessControlService AccessControlService; @inject Bit.Admin.Services.IAccessControlService AccessControlService;
@model OrganizationEditModel @model OrganizationEditModel

View File

@ -1,5 +1,6 @@
@inject IWebHostEnvironment HostingEnvironment @inject IWebHostEnvironment HostingEnvironment
@using Bit.Admin.Utilities @using Bit.Admin.Utilities
@using Bit.Core.Enums
@model OrganizationEditModel @model OrganizationEditModel
<script> <script>

View File

@ -0,0 +1,5 @@
@using Microsoft.AspNetCore.Identity
@using Bit.Admin.AdminConsole
@using Bit.Admin.AdminConsole.Models
@addTagHelper *, Microsoft.AspNetCore.Mvc.TagHelpers
@addTagHelper "*, Admin"

View File

@ -0,0 +1,3 @@
@{
Layout = "_Layout";
}

View File

@ -107,6 +107,7 @@ public class Startup
services.Configure<RazorViewEngineOptions>(o => services.Configure<RazorViewEngineOptions>(o =>
{ {
o.ViewLocationFormats.Add("/Auth/Views/{1}/{0}.cshtml"); o.ViewLocationFormats.Add("/Auth/Views/{1}/{0}.cshtml");
o.ViewLocationFormats.Add("/AdminConsole/Views/{1}/{0}.cshtml");
}); });
// Jobs service // Jobs service