mirror of
https://github.com/bitwarden/server
synced 2025-12-29 06:33:43 +00:00
55 lines
1.8 KiB
C#
55 lines
1.8 KiB
C#
using Bit.Core.Billing.Enums;
|
|
using Bit.Core.Enums;
|
|
using Bit.Infrastructure.EntityFramework.AdminConsole.Models;
|
|
using Bit.Infrastructure.EntityFramework.Models;
|
|
using Bit.RustSDK;
|
|
|
|
namespace Bit.Seeder.Factories;
|
|
|
|
public class OrganizationSeeder
|
|
{
|
|
public static (Organization organization, string key) CreateEnterprise(string name, string domain, int seats)
|
|
{
|
|
var nativeService = RustSdkServiceFactory.CreateSingleton();
|
|
|
|
var keys = nativeService.GenerateOrganizationKeys();
|
|
|
|
var organization = new Organization
|
|
{
|
|
Id = Guid.NewGuid(),
|
|
Name = name,
|
|
BillingEmail = $"billing@{domain}",
|
|
Plan = "Enterprise (Annually)",
|
|
PlanType = PlanType.EnterpriseAnnually,
|
|
Seats = seats,
|
|
|
|
// Currently hardcoded to the values from https://github.com/bitwarden/sdk-internal/blob/main/crates/bitwarden-core/src/client/test_accounts.rs.
|
|
// TODO: These should be dynamically generated by the SDK.
|
|
PublicKey = keys.PublicKey,
|
|
PrivateKey = keys.PrivateKey,
|
|
};
|
|
|
|
return (organization, keys.Key);
|
|
}
|
|
}
|
|
|
|
public static class OrganizationExtensions
|
|
{
|
|
public static OrganizationUser CreateOrganizationUser(this Organization organization, User user, string orgKey)
|
|
{
|
|
var nativeService = RustSdkServiceFactory.CreateSingleton();
|
|
|
|
var userOrgKey = nativeService.GenerateUserOrganizationKey(user.PublicKey!, orgKey);
|
|
|
|
return new OrganizationUser
|
|
{
|
|
Id = Guid.NewGuid(),
|
|
OrganizationId = organization.Id,
|
|
UserId = user.Id,
|
|
Key = userOrgKey,
|
|
Type = OrganizationUserType.Admin,
|
|
Status = OrganizationUserStatusType.Confirmed
|
|
};
|
|
}
|
|
}
|