mirror of
https://github.com/bitwarden/server.git
synced 2025-07-03 17:12:49 -05:00
[SM-394] Secrets Manager (#2164)
Long lived feature branch for Secrets Manager Co-authored-by: Thomas Avery <43214426+Thomas-Avery@users.noreply.github.com> Co-authored-by: cd-bitwarden <106776772+cd-bitwarden@users.noreply.github.com> Co-authored-by: CarleyDiaz-Bitwarden <103955722+CarleyDiaz-Bitwarden@users.noreply.github.com> Co-authored-by: Thomas Avery <tavery@bitwarden.com> Co-authored-by: Colton Hurst <colton@coltonhurst.com>
This commit is contained in:
60
src/Infrastructure.EntityFramework/Models/AccessPolicy.cs
Normal file
60
src/Infrastructure.EntityFramework/Models/AccessPolicy.cs
Normal file
@ -0,0 +1,60 @@
|
||||
using AutoMapper;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.Models;
|
||||
|
||||
public class BaseAccessPolicy : Core.Entities.BaseAccessPolicy
|
||||
{
|
||||
public string Discriminator { get; set; }
|
||||
}
|
||||
|
||||
public class AccessPolicyMapperProfile : Profile
|
||||
{
|
||||
public AccessPolicyMapperProfile()
|
||||
{
|
||||
CreateMap<Core.Entities.AccessPolicy, AccessPolicy>().ReverseMap();
|
||||
}
|
||||
}
|
||||
|
||||
public class AccessPolicy : BaseAccessPolicy
|
||||
{
|
||||
}
|
||||
|
||||
public class UserProjectAccessPolicy : AccessPolicy
|
||||
{
|
||||
public Guid? OrganizationUserId { get; set; }
|
||||
public virtual OrganizationUser OrganizationUser { get; set; }
|
||||
public Guid? GrantedProjectId { get; set; }
|
||||
public virtual Project GrantedProject { get; set; }
|
||||
}
|
||||
|
||||
public class UserServiceAccountAccessPolicy : AccessPolicy
|
||||
{
|
||||
public Guid? OrganizationUserId { get; set; }
|
||||
public virtual OrganizationUser OrganizationUser { get; set; }
|
||||
public Guid? GrantedServiceAccountId { get; set; }
|
||||
public virtual ServiceAccount GrantedServiceAccount { get; set; }
|
||||
}
|
||||
|
||||
public class GroupProjectAccessPolicy : AccessPolicy
|
||||
{
|
||||
public Guid? GroupId { get; set; }
|
||||
public virtual Group Group { get; set; }
|
||||
public Guid? GrantedProjectId { get; set; }
|
||||
public virtual Project GrantedProject { get; set; }
|
||||
}
|
||||
|
||||
public class GroupServiceAccountAccessPolicy : AccessPolicy
|
||||
{
|
||||
public Guid? GroupId { get; set; }
|
||||
public virtual Group Group { get; set; }
|
||||
public Guid? GrantedServiceAccountId { get; set; }
|
||||
public virtual ServiceAccount GrantedServiceAccount { get; set; }
|
||||
}
|
||||
|
||||
public class ServiceAccountProjectAccessPolicy : AccessPolicy
|
||||
{
|
||||
public Guid? ServiceAccountId { get; set; }
|
||||
public virtual ServiceAccount ServiceAccount { get; set; }
|
||||
public Guid? GrantedProjectId { get; set; }
|
||||
public virtual Project GrantedProject { get; set; }
|
||||
}
|
16
src/Infrastructure.EntityFramework/Models/ApiKey.cs
Normal file
16
src/Infrastructure.EntityFramework/Models/ApiKey.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using AutoMapper;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.Models;
|
||||
|
||||
public class ApiKey : Core.Entities.ApiKey
|
||||
{
|
||||
public virtual ServiceAccount ServiceAccount { get; set; }
|
||||
}
|
||||
|
||||
public class ApiKeyMapperProfile : Profile
|
||||
{
|
||||
public ApiKeyMapperProfile()
|
||||
{
|
||||
CreateMap<Core.Entities.ApiKey, ApiKey>().ReverseMap();
|
||||
}
|
||||
}
|
22
src/Infrastructure.EntityFramework/Models/Project.cs
Normal file
22
src/Infrastructure.EntityFramework/Models/Project.cs
Normal file
@ -0,0 +1,22 @@
|
||||
using AutoMapper;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.Models;
|
||||
|
||||
public class Project : Core.Entities.Project
|
||||
{
|
||||
public virtual new ICollection<Secret> Secrets { get; set; }
|
||||
public virtual Organization Organization { get; set; }
|
||||
public virtual ICollection<GroupProjectAccessPolicy> GroupAccessPolicies { get; set; }
|
||||
public virtual ICollection<UserProjectAccessPolicy> UserAccessPolicies { get; set; }
|
||||
public virtual ICollection<ServiceAccountProjectAccessPolicy> ServiceAccountAccessPolicies { get; set; }
|
||||
}
|
||||
|
||||
public class ProjectMapperProfile : Profile
|
||||
{
|
||||
public ProjectMapperProfile()
|
||||
{
|
||||
CreateMap<Core.Entities.Project, Project>()
|
||||
.PreserveReferences()
|
||||
.ReverseMap();
|
||||
}
|
||||
}
|
19
src/Infrastructure.EntityFramework/Models/Secret.cs
Normal file
19
src/Infrastructure.EntityFramework/Models/Secret.cs
Normal file
@ -0,0 +1,19 @@
|
||||
using AutoMapper;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.Models;
|
||||
|
||||
public class Secret : Core.Entities.Secret
|
||||
{
|
||||
public virtual new ICollection<Project> Projects { get; set; }
|
||||
public virtual Organization Organization { get; set; }
|
||||
}
|
||||
|
||||
public class SecretMapperProfile : Profile
|
||||
{
|
||||
public SecretMapperProfile()
|
||||
{
|
||||
CreateMap<Core.Entities.Secret, Secret>()
|
||||
.PreserveReferences()
|
||||
.ReverseMap();
|
||||
}
|
||||
}
|
16
src/Infrastructure.EntityFramework/Models/ServiceAccount.cs
Normal file
16
src/Infrastructure.EntityFramework/Models/ServiceAccount.cs
Normal file
@ -0,0 +1,16 @@
|
||||
using AutoMapper;
|
||||
|
||||
namespace Bit.Infrastructure.EntityFramework.Models;
|
||||
|
||||
public class ServiceAccount : Core.Entities.ServiceAccount
|
||||
{
|
||||
public virtual Organization Organization { get; set; }
|
||||
}
|
||||
|
||||
public class ServiceAccountMapperProfile : Profile
|
||||
{
|
||||
public ServiceAccountMapperProfile()
|
||||
{
|
||||
CreateMap<Core.Entities.ServiceAccount, ServiceAccount>().ReverseMap();
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user