mirror of
https://github.com/bitwarden/server.git
synced 2025-07-01 08:02:49 -05:00
Merge branch 'master' into flexible-collections/deprecate-custom-collection-perm
This commit is contained in:
5
.github/renovate.json
vendored
5
.github/renovate.json
vendored
@ -175,7 +175,8 @@
|
|||||||
],
|
],
|
||||||
"force": {
|
"force": {
|
||||||
"constraints": {
|
"constraints": {
|
||||||
"dotnet": "6.0.413"
|
"dotnet": "6.0.100"
|
||||||
}
|
}
|
||||||
}
|
},
|
||||||
|
"ignoreDeps": ["dotnet-sdk"]
|
||||||
}
|
}
|
||||||
|
@ -863,8 +863,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"NSec.Cryptography": {
|
"NSec.Cryptography": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1177,8 +1177,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2415,43 +2415,43 @@
|
|||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -967,8 +967,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1310,8 +1310,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2578,56 +2578,56 @@
|
|||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Scim.Models;
|
using Bit.Scim.Models;
|
||||||
|
|
||||||
namespace Bit.Scim.Groups.Interfaces;
|
namespace Bit.Scim.Groups.Interfaces;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Scim.Models;
|
using Bit.Scim.Models;
|
||||||
|
|
||||||
namespace Bit.Scim.Groups.Interfaces;
|
namespace Bit.Scim.Groups.Interfaces;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Scim.Models;
|
using Bit.Scim.Models;
|
||||||
|
|
||||||
namespace Bit.Scim.Groups.Interfaces;
|
namespace Bit.Scim.Groups.Interfaces;
|
||||||
|
@ -1,8 +1,8 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.AdminConsole.Services;
|
using Bit.Core.AdminConsole.Services;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Scim.Groups.Interfaces;
|
using Bit.Scim.Groups.Interfaces;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Scim.Context;
|
using Bit.Scim.Context;
|
||||||
|
@ -971,8 +971,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1314,8 +1314,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2582,71 +2582,71 @@
|
|||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1118,8 +1118,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1461,8 +1461,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2742,71 +2742,71 @@
|
|||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using Bit.Commercial.Core.AdminConsole.Services;
|
using Bit.Commercial.Core.AdminConsole.Services;
|
||||||
using Bit.Commercial.Core.Test.AdminConsole.AutoFixture;
|
using Bit.Commercial.Core.Test.AdminConsole.AutoFixture;
|
||||||
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.Entities.Provider;
|
using Bit.Core.AdminConsole.Entities.Provider;
|
||||||
using Bit.Core.AdminConsole.Enums.Provider;
|
using Bit.Core.AdminConsole.Enums.Provider;
|
||||||
using Bit.Core.AdminConsole.Models.Business.Provider;
|
using Bit.Core.AdminConsole.Models.Business.Provider;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Bit.Commercial.Core.SecretsManager.Queries.Projects;
|
using Bit.Commercial.Core.SecretsManager.Queries.Projects;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Bit.Commercial.Core.SecretsManager.Queries.ServiceAccounts;
|
using Bit.Commercial.Core.SecretsManager.Queries.ServiceAccounts;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.SecretsManager.Repositories;
|
using Bit.Core.SecretsManager.Repositories;
|
||||||
|
@ -980,8 +980,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"NSec.Cryptography": {
|
"NSec.Cryptography": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1312,8 +1312,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2657,74 +2657,74 @@
|
|||||||
"commercial.core": {
|
"commercial.core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )"
|
"Core": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"common": {
|
"common": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoFixture.AutoNSubstitute": "[4.17.0, )",
|
"AutoFixture.AutoNSubstitute": "4.17.0",
|
||||||
"AutoFixture.Xunit2": "[4.17.0, )",
|
"AutoFixture.Xunit2": "4.17.0",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Kralizek.AutoFixture.Extensions.MockHttp": "[1.2.0, )",
|
"Kralizek.AutoFixture.Extensions.MockHttp": "1.2.0",
|
||||||
"Microsoft.NET.Test.Sdk": "[17.1.0, )",
|
"Microsoft.NET.Test.Sdk": "17.1.0",
|
||||||
"NSubstitute": "[4.3.0, )",
|
"NSubstitute": "4.3.0",
|
||||||
"xunit": "[2.4.1, )"
|
"xunit": "2.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core.test": {
|
"core.test": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoFixture.AutoNSubstitute": "[4.17.0, )",
|
"AutoFixture.AutoNSubstitute": "4.17.0",
|
||||||
"AutoFixture.Xunit2": "[4.17.0, )",
|
"AutoFixture.Xunit2": "4.17.0",
|
||||||
"Common": "[2023.10.3, )",
|
"Common": "2023.10.3",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Kralizek.AutoFixture.Extensions.MockHttp": "[1.2.0, )",
|
"Kralizek.AutoFixture.Extensions.MockHttp": "1.2.0",
|
||||||
"Microsoft.NET.Test.Sdk": "[17.1.0, )",
|
"Microsoft.NET.Test.Sdk": "17.1.0",
|
||||||
"NSubstitute": "[4.3.0, )",
|
"NSubstitute": "4.3.0",
|
||||||
"xunit": "[2.4.1, )"
|
"xunit": "2.4.1"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,6 +4,7 @@ using System.Text;
|
|||||||
using System.Text.Encodings.Web;
|
using System.Text.Encodings.Web;
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
|
using Bit.Infrastructure.EntityFramework.AdminConsole.Models;
|
||||||
using Bit.Infrastructure.EntityFramework.Repositories;
|
using Bit.Infrastructure.EntityFramework.Repositories;
|
||||||
using Bit.IntegrationTestCommon.Factories;
|
using Bit.IntegrationTestCommon.Factories;
|
||||||
using Bit.Scim.Models;
|
using Bit.Scim.Models;
|
||||||
@ -196,11 +197,11 @@ public class ScimApplicationFactory : WebApplicationFactoryBase<Startup>
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<Infrastructure.EntityFramework.Models.Organization> GetSeedingOrganizations()
|
private List<Organization> GetSeedingOrganizations()
|
||||||
{
|
{
|
||||||
return new List<Infrastructure.EntityFramework.Models.Organization>()
|
return new List<Organization>()
|
||||||
{
|
{
|
||||||
new Infrastructure.EntityFramework.Models.Organization { Id = TestOrganizationId1, Name = "Test Organization 1", UseGroups = true }
|
new Organization { Id = TestOrganizationId1, Name = "Test Organization 1", UseGroups = true }
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1223,8 +1223,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1576,8 +1576,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2972,107 +2972,107 @@
|
|||||||
"common": {
|
"common": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoFixture.AutoNSubstitute": "[4.17.0, )",
|
"AutoFixture.AutoNSubstitute": "4.17.0",
|
||||||
"AutoFixture.Xunit2": "[4.17.0, )",
|
"AutoFixture.Xunit2": "4.17.0",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Kralizek.AutoFixture.Extensions.MockHttp": "[1.2.0, )",
|
"Kralizek.AutoFixture.Extensions.MockHttp": "1.2.0",
|
||||||
"Microsoft.NET.Test.Sdk": "[17.1.0, )",
|
"Microsoft.NET.Test.Sdk": "17.1.0",
|
||||||
"NSubstitute": "[4.3.0, )",
|
"NSubstitute": "4.3.0",
|
||||||
"xunit": "[2.4.1, )"
|
"xunit": "2.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"identity": {
|
"identity": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"SharedWeb": "[2023.10.3, )",
|
"SharedWeb": "2023.10.3",
|
||||||
"Swashbuckle.AspNetCore.SwaggerGen": "[6.5.0, )"
|
"Swashbuckle.AspNetCore.SwaggerGen": "6.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"integrationtestcommon": {
|
"integrationtestcommon": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Common": "[2023.10.3, )",
|
"Common": "2023.10.3",
|
||||||
"Identity": "[2023.10.3, )",
|
"Identity": "2023.10.3",
|
||||||
"Microsoft.AspNetCore.Mvc.Testing": "[6.0.5, )",
|
"Microsoft.AspNetCore.Mvc.Testing": "6.0.5",
|
||||||
"Microsoft.Extensions.Configuration": "[6.0.1, )"
|
"Microsoft.Extensions.Configuration": "6.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scim": {
|
"scim": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"SharedWeb": "[2023.10.3, )"
|
"SharedWeb": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3,7 +3,6 @@ using Bit.Core.AdminConsole.Entities;
|
|||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.AdminConsole.Services;
|
using Bit.Core.AdminConsole.Services;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Scim.Groups;
|
using Bit.Scim.Groups;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Scim.Context;
|
using Bit.Scim.Context;
|
||||||
|
@ -2,7 +2,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Scim.Context;
|
using Bit.Scim.Context;
|
||||||
|
@ -1097,8 +1097,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1450,8 +1450,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2825,90 +2825,90 @@
|
|||||||
"common": {
|
"common": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoFixture.AutoNSubstitute": "[4.17.0, )",
|
"AutoFixture.AutoNSubstitute": "4.17.0",
|
||||||
"AutoFixture.Xunit2": "[4.17.0, )",
|
"AutoFixture.Xunit2": "4.17.0",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Kralizek.AutoFixture.Extensions.MockHttp": "[1.2.0, )",
|
"Kralizek.AutoFixture.Extensions.MockHttp": "1.2.0",
|
||||||
"Microsoft.NET.Test.Sdk": "[17.1.0, )",
|
"Microsoft.NET.Test.Sdk": "17.1.0",
|
||||||
"NSubstitute": "[4.3.0, )",
|
"NSubstitute": "4.3.0",
|
||||||
"xunit": "[2.4.1, )"
|
"xunit": "2.4.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scim": {
|
"scim": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"SharedWeb": "[2023.10.3, )"
|
"SharedWeb": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"sdk": {
|
"sdk": {
|
||||||
"version": "6.0.415",
|
"version": "6.0.100",
|
||||||
"rollForward": "latestFeature"
|
"rollForward": "latestFeature"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -8,7 +8,7 @@
|
|||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<PackageReference Include="BenchmarkDotNet" Version="0.13.2" />
|
<PackageReference Include="BenchmarkDotNet" Version="0.13.10" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
|
@ -4,22 +4,20 @@
|
|||||||
"net6.0": {
|
"net6.0": {
|
||||||
"BenchmarkDotNet": {
|
"BenchmarkDotNet": {
|
||||||
"type": "Direct",
|
"type": "Direct",
|
||||||
"requested": "[0.13.2, )",
|
"requested": "[0.13.10, )",
|
||||||
"resolved": "0.13.2",
|
"resolved": "0.13.10",
|
||||||
"contentHash": "82IflYxY8qnQXEA3kXtqC9pntrkJYJZbQ9PV7hEV/XcfCtOdwLz84ilyO8tLRVbiliWttvmt/v44P+visN+fPQ==",
|
"contentHash": "p/LrTtR5TlwhZIvy2hG9VzTFWEDPS90r3QP9Q9pL4/B1iXzC/JNrpYyCWW3Xeg4vuiq/qV8hvJkJmT1sj+5LSw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"BenchmarkDotNet.Annotations": "0.13.2",
|
"BenchmarkDotNet.Annotations": "0.13.10",
|
||||||
"CommandLineParser": "2.4.3",
|
"CommandLineParser": "2.9.1",
|
||||||
|
"Gee.External.Capstone": "2.3.0",
|
||||||
"Iced": "1.17.0",
|
"Iced": "1.17.0",
|
||||||
"Microsoft.CodeAnalysis.CSharp": "3.0.0",
|
"Microsoft.CodeAnalysis.CSharp": "4.1.0",
|
||||||
"Microsoft.Diagnostics.Runtime": "2.2.332302",
|
"Microsoft.Diagnostics.Runtime": "2.2.332302",
|
||||||
"Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2",
|
"Microsoft.Diagnostics.Tracing.TraceEvent": "3.0.2",
|
||||||
"Microsoft.DotNet.PlatformAbstractions": "3.1.6",
|
"Microsoft.DotNet.PlatformAbstractions": "3.1.6",
|
||||||
"Perfolizer": "0.2.1",
|
"Perfolizer": "[0.2.1]",
|
||||||
"System.Management": "6.0.0",
|
"System.Management": "5.0.0"
|
||||||
"System.Reflection.Emit": "4.7.0",
|
|
||||||
"System.Reflection.Emit.Lightweight": "4.7.0",
|
|
||||||
"System.Threading.Tasks.Extensions": "4.5.4"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"AspNetCoreRateLimit": {
|
"AspNetCoreRateLimit": {
|
||||||
@ -153,8 +151,8 @@
|
|||||||
},
|
},
|
||||||
"BenchmarkDotNet.Annotations": {
|
"BenchmarkDotNet.Annotations": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "0.13.2",
|
"resolved": "0.13.10",
|
||||||
"contentHash": "+SGOYyXT6fiagbtrni38B8BqBgjruYKU3PfROI0lDIYo8jQ+APUmLKMEswK7zwR5fEOCrDmoAHSH6oykBkqPgA=="
|
"contentHash": "abYKp+P5NBuam7q0w7AFgOYF3nqAvKBw6MLq96Kjk1WdaRDNpgBc6uCgOP4pVIH/g0IF9d4ubnFLBwiJuIAHMw=="
|
||||||
},
|
},
|
||||||
"BitPay.Light": {
|
"BitPay.Light": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -181,8 +179,8 @@
|
|||||||
},
|
},
|
||||||
"CommandLineParser": {
|
"CommandLineParser": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.4.3",
|
"resolved": "2.9.1",
|
||||||
"contentHash": "U2FC9Y8NyIxxU6MpFFdWWu1xwiqz/61v/Doou7kmVjpeIEMLWyiNNkzNlSE84kyJ0O1LKApuEj5z48Ow0Hi4OQ=="
|
"contentHash": "OE0sl1/sQ37bjVsPKKtwQlWDgqaxWgtme3xZz7JssWUzg5JpMIyHgCTY9MVMxOg48fJ1AgGT3tgdH5m/kQ5xhA=="
|
||||||
},
|
},
|
||||||
"DnsClient": {
|
"DnsClient": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -236,6 +234,11 @@
|
|||||||
"resolved": "3.0.1",
|
"resolved": "3.0.1",
|
||||||
"contentHash": "mgjcuGETuYSCUEaZG+jQeeuuEMkDLc4GDJHBvKDdOz6oSOWp5adPdWP4btZx7Pi+9fu4szN3JIjJmby67MaILw=="
|
"contentHash": "mgjcuGETuYSCUEaZG+jQeeuuEMkDLc4GDJHBvKDdOz6oSOWp5adPdWP4btZx7Pi+9fu4szN3JIjJmby67MaILw=="
|
||||||
},
|
},
|
||||||
|
"Gee.External.Capstone": {
|
||||||
|
"type": "Transitive",
|
||||||
|
"resolved": "2.3.0",
|
||||||
|
"contentHash": "2ap/rYmjtzCOT8hxrnEW/QeiOt+paD8iRrIcdKX0cxVwWLFa1e+JDBNeECakmccXrSFeBQuu5AV8SNkipFMMMw=="
|
||||||
|
},
|
||||||
"Handlebars.Net": {
|
"Handlebars.Net": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.1.2",
|
"resolved": "2.1.2",
|
||||||
@ -447,29 +450,29 @@
|
|||||||
},
|
},
|
||||||
"Microsoft.CodeAnalysis.Analyzers": {
|
"Microsoft.CodeAnalysis.Analyzers": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.6.2-beta2",
|
"resolved": "3.3.3",
|
||||||
"contentHash": "rg5Ql73AmGCMG5Q40Kzbndq7C7S4XvsJA+2QXfZBCy2dRqD+a7BSbx/3942EoRUJ/8Wh9+kLg2G2qC46o3f1Aw=="
|
"contentHash": "j/rOZtLMVJjrfLRlAMckJLPW/1rze9MT1yfWqSIbUPGRu1m1P0fuo9PmqapwsmePfGB5PJrudQLvmUOAMF0DqQ=="
|
||||||
},
|
},
|
||||||
"Microsoft.CodeAnalysis.Common": {
|
"Microsoft.CodeAnalysis.Common": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "3.0.0",
|
"resolved": "4.1.0",
|
||||||
"contentHash": "HEnLZ9Op5IoXeuokhfSLIXstXfEyPzXhQ/xsnvUmxzb+7YpwuLk57txArzGs/Wne5bWmU7Uey4Q1jUZ3++heqg==",
|
"contentHash": "bNzTyxP3iD5FPFHfVDl15Y6/wSoI7e3MeV0lOaj9igbIKTjgrmuw6LoVJ06jUNFA7+KaDC/OIsStWl/FQJz6sQ==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.CodeAnalysis.Analyzers": "2.6.2-beta2",
|
"Microsoft.CodeAnalysis.Analyzers": "3.3.3",
|
||||||
"System.Collections.Immutable": "1.5.0",
|
"System.Collections.Immutable": "5.0.0",
|
||||||
"System.Memory": "4.5.1",
|
"System.Memory": "4.5.4",
|
||||||
"System.Reflection.Metadata": "1.6.0",
|
"System.Reflection.Metadata": "5.0.0",
|
||||||
"System.Runtime.CompilerServices.Unsafe": "4.5.0",
|
"System.Runtime.CompilerServices.Unsafe": "5.0.0",
|
||||||
"System.Text.Encoding.CodePages": "4.5.0",
|
"System.Text.Encoding.CodePages": "4.5.1",
|
||||||
"System.Threading.Tasks.Extensions": "4.5.0"
|
"System.Threading.Tasks.Extensions": "4.5.4"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Microsoft.CodeAnalysis.CSharp": {
|
"Microsoft.CodeAnalysis.CSharp": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "3.0.0",
|
"resolved": "4.1.0",
|
||||||
"contentHash": "hWFUxc0iUbVvIKWJODErOeOa5GiqZuEcetxaCfHqZ04zHy0ZCLx3v4/TdF/6Erx1mXPHfoT2Tiz5rZCQZ6OyxQ==",
|
"contentHash": "sbu6kDGzo9bfQxuqWpeEE7I9P30bSuZEnpDz9/qz20OU6pm79Z63+/BsAzO2e/R/Q97kBrpj647wokZnEVr97w==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Microsoft.CodeAnalysis.Common": "[3.0.0]"
|
"Microsoft.CodeAnalysis.Common": "[4.1.0]"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"Microsoft.CSharp": {
|
"Microsoft.CSharp": {
|
||||||
@ -957,8 +960,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"NSec.Cryptography": {
|
"NSec.Cryptography": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1279,8 +1282,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -1324,8 +1327,8 @@
|
|||||||
},
|
},
|
||||||
"System.CodeDom": {
|
"System.CodeDom": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "6.0.0",
|
"resolved": "5.0.0",
|
||||||
"contentHash": "CPc6tWO1LAer3IzfZufDBRL+UZQcj5uS207NHALQzP84Vp/z6wF0Aa0YZImOQY8iStY0A2zI/e3ihKNPfUm8XA=="
|
"contentHash": "JPJArwA1kdj8qDAkY2XGjSWoYnqiM7q/3yRNkt6n28Mnn95MuEGkZXUbPBf7qc3IjwrGY5ttQon7yqHZyQJmOQ=="
|
||||||
},
|
},
|
||||||
"System.Collections": {
|
"System.Collections": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1700,10 +1703,12 @@
|
|||||||
},
|
},
|
||||||
"System.Management": {
|
"System.Management": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "6.0.0",
|
"resolved": "5.0.0",
|
||||||
"contentHash": "sHsESYMmPDhQuOC66h6AEOs/XowzKsbT9srMbX71TCXP58hkpn1BqBjdmKj1+DCA/WlBETX1K5WjQHwmV0Txrg==",
|
"contentHash": "MF1CHaRcC+MLFdnDthv4/bKWBZnlnSpkGqa87pKukQefgEdwtb9zFW6zs0GjPp73qtpYYg4q6PEKbzJbxCpKfw==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"System.CodeDom": "6.0.0"
|
"Microsoft.NETCore.Platforms": "5.0.0",
|
||||||
|
"Microsoft.Win32.Registry": "5.0.0",
|
||||||
|
"System.CodeDom": "5.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"System.Memory": {
|
"System.Memory": {
|
||||||
@ -1925,8 +1930,15 @@
|
|||||||
},
|
},
|
||||||
"System.Reflection.Emit": {
|
"System.Reflection.Emit": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "4.7.0",
|
"resolved": "4.3.0",
|
||||||
"contentHash": "VR4kk8XLKebQ4MZuKuIni/7oh+QGFmZW3qORd1GvBq/8026OpW501SzT/oypwiQl4TvT8ErnReh/NzY9u+C6wQ=="
|
"contentHash": "228FG0jLcIwTVJyz8CLFKueVqQK36ANazUManGaJHkO0icjiIypKW7YLWLIWahyIkdh5M7mV2dJepllLyA1SKg==",
|
||||||
|
"dependencies": {
|
||||||
|
"System.IO": "4.3.0",
|
||||||
|
"System.Reflection": "4.3.0",
|
||||||
|
"System.Reflection.Emit.ILGeneration": "4.3.0",
|
||||||
|
"System.Reflection.Primitives": "4.3.0",
|
||||||
|
"System.Runtime": "4.3.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"System.Reflection.Emit.ILGeneration": {
|
"System.Reflection.Emit.ILGeneration": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1940,8 +1952,14 @@
|
|||||||
},
|
},
|
||||||
"System.Reflection.Emit.Lightweight": {
|
"System.Reflection.Emit.Lightweight": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "4.7.0",
|
"resolved": "4.3.0",
|
||||||
"contentHash": "a4OLB4IITxAXJeV74MDx49Oq2+PsF6Sml54XAFv+2RyWwtDBcabzoxiiJRhdhx+gaohLh4hEGCLQyBozXoQPqA=="
|
"contentHash": "oadVHGSMsTmZsAF864QYN1t1QzZjIcuKU3l2S9cZOwDdDueNTrqq1yRj7koFfIGEnKpt6NjpL3rOzRhs4ryOgA==",
|
||||||
|
"dependencies": {
|
||||||
|
"System.Reflection": "4.3.0",
|
||||||
|
"System.Reflection.Emit.ILGeneration": "4.3.0",
|
||||||
|
"System.Reflection.Primitives": "4.3.0",
|
||||||
|
"System.Runtime": "4.3.0"
|
||||||
|
}
|
||||||
},
|
},
|
||||||
"System.Reflection.Extensions": {
|
"System.Reflection.Extensions": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1956,8 +1974,8 @@
|
|||||||
},
|
},
|
||||||
"System.Reflection.Metadata": {
|
"System.Reflection.Metadata": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "1.6.0",
|
"resolved": "5.0.0",
|
||||||
"contentHash": "COC1aiAJjCoA5GBF+QKL2uLqEBew4JsCkQmoHKbN3TlOZKa2fKLz5CpiRQKDz0RsAOEGsVKqOD5bomsXq/4STQ=="
|
"contentHash": "5NecZgXktdGg34rh1OenY1rFNDCI8xSjFr+Z4OU4cU06AQHUdRnIIEeWENu3Wl4YowbzkymAIMvi3WyK9U53pQ=="
|
||||||
},
|
},
|
||||||
"System.Reflection.Primitives": {
|
"System.Reflection.Primitives": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -2522,43 +2540,43 @@
|
|||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ using Bit.Admin.Utilities;
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.OrganizationConnectionConfigs;
|
using Bit.Core.Models.OrganizationConnectionConfigs;
|
||||||
@ -21,7 +20,6 @@ using Bit.Core.Utilities;
|
|||||||
using Bit.Core.Vault.Repositories;
|
using Bit.Core.Vault.Repositories;
|
||||||
using Microsoft.AspNetCore.Authorization;
|
using Microsoft.AspNetCore.Authorization;
|
||||||
using Microsoft.AspNetCore.Mvc;
|
using Microsoft.AspNetCore.Mvc;
|
||||||
using Stripe;
|
|
||||||
|
|
||||||
namespace Bit.Admin.Controllers;
|
namespace Bit.Admin.Controllers;
|
||||||
|
|
||||||
@ -50,7 +48,6 @@ public class OrganizationsController : Controller
|
|||||||
private readonly ISecretRepository _secretRepository;
|
private readonly ISecretRepository _secretRepository;
|
||||||
private readonly IProjectRepository _projectRepository;
|
private readonly IProjectRepository _projectRepository;
|
||||||
private readonly IServiceAccountRepository _serviceAccountRepository;
|
private readonly IServiceAccountRepository _serviceAccountRepository;
|
||||||
private readonly IStripeSyncService _stripeSyncService;
|
|
||||||
|
|
||||||
public OrganizationsController(
|
public OrganizationsController(
|
||||||
IOrganizationService organizationService,
|
IOrganizationService organizationService,
|
||||||
@ -74,8 +71,7 @@ public class OrganizationsController : Controller
|
|||||||
ICurrentContext currentContext,
|
ICurrentContext currentContext,
|
||||||
ISecretRepository secretRepository,
|
ISecretRepository secretRepository,
|
||||||
IProjectRepository projectRepository,
|
IProjectRepository projectRepository,
|
||||||
IServiceAccountRepository serviceAccountRepository,
|
IServiceAccountRepository serviceAccountRepository)
|
||||||
IStripeSyncService stripeSyncService)
|
|
||||||
{
|
{
|
||||||
_organizationService = organizationService;
|
_organizationService = organizationService;
|
||||||
_organizationRepository = organizationRepository;
|
_organizationRepository = organizationRepository;
|
||||||
@ -99,7 +95,6 @@ public class OrganizationsController : Controller
|
|||||||
_secretRepository = secretRepository;
|
_secretRepository = secretRepository;
|
||||||
_projectRepository = projectRepository;
|
_projectRepository = projectRepository;
|
||||||
_serviceAccountRepository = serviceAccountRepository;
|
_serviceAccountRepository = serviceAccountRepository;
|
||||||
_stripeSyncService = stripeSyncService;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
[RequirePermission(Permission.Org_List_View)]
|
[RequirePermission(Permission.Org_List_View)]
|
||||||
@ -213,19 +208,6 @@ public class OrganizationsController : Controller
|
|||||||
throw new BadRequestException("Plan does not support Secrets Manager");
|
throw new BadRequestException("Plan does not support Secrets Manager");
|
||||||
}
|
}
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
if (!string.IsNullOrWhiteSpace(organization.GatewayCustomerId) && !string.IsNullOrWhiteSpace(organization.BillingEmail))
|
|
||||||
{
|
|
||||||
await _stripeSyncService.UpdateCustomerEmailAddress(organization.GatewayCustomerId, organization.BillingEmail);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
catch (StripeException stripeException)
|
|
||||||
{
|
|
||||||
_logger.LogError(stripeException, "Failed to update billing email address in Stripe for Organization with ID '{organizationId}'", organization.Id);
|
|
||||||
throw;
|
|
||||||
}
|
|
||||||
|
|
||||||
await _organizationRepository.ReplaceAsync(organization);
|
await _organizationRepository.ReplaceAsync(organization);
|
||||||
await _applicationCacheService.UpsertOrganizationAbilityAsync(organization);
|
await _applicationCacheService.UpsertOrganizationAbilityAsync(organization);
|
||||||
await _referenceEventService.RaiseEventAsync(new ReferenceEvent(ReferenceEventType.OrganizationEditedByAdmin, organization, _currentContext)
|
await _referenceEventService.RaiseEventAsync(new ReferenceEvent(ReferenceEventType.OrganizationEditedByAdmin, organization, _currentContext)
|
||||||
|
@ -3,6 +3,7 @@ using System.Text.Json;
|
|||||||
using Bit.Admin.Enums;
|
using Bit.Admin.Enums;
|
||||||
using Bit.Admin.Models;
|
using Bit.Admin.Models;
|
||||||
using Bit.Admin.Utilities;
|
using Bit.Admin.Utilities;
|
||||||
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.BitStripe;
|
using Bit.Core.Models.BitStripe;
|
||||||
using Bit.Core.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
||||||
|
@ -2,6 +2,8 @@
|
|||||||
using Bit.Admin.Models;
|
using Bit.Admin.Models;
|
||||||
using Bit.Admin.Services;
|
using Bit.Admin.Services;
|
||||||
using Bit.Admin.Utilities;
|
using Bit.Admin.Utilities;
|
||||||
|
using Bit.Core;
|
||||||
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
@ -21,19 +23,28 @@ public class UsersController : Controller
|
|||||||
private readonly IPaymentService _paymentService;
|
private readonly IPaymentService _paymentService;
|
||||||
private readonly GlobalSettings _globalSettings;
|
private readonly GlobalSettings _globalSettings;
|
||||||
private readonly IAccessControlService _accessControlService;
|
private readonly IAccessControlService _accessControlService;
|
||||||
|
private readonly ICurrentContext _currentContext;
|
||||||
|
private readonly IFeatureService _featureService;
|
||||||
|
|
||||||
|
private bool UseFlexibleCollections =>
|
||||||
|
_featureService.IsEnabled(FeatureFlagKeys.FlexibleCollections, _currentContext);
|
||||||
|
|
||||||
public UsersController(
|
public UsersController(
|
||||||
IUserRepository userRepository,
|
IUserRepository userRepository,
|
||||||
ICipherRepository cipherRepository,
|
ICipherRepository cipherRepository,
|
||||||
IPaymentService paymentService,
|
IPaymentService paymentService,
|
||||||
GlobalSettings globalSettings,
|
GlobalSettings globalSettings,
|
||||||
IAccessControlService accessControlService)
|
IAccessControlService accessControlService,
|
||||||
|
ICurrentContext currentContext,
|
||||||
|
IFeatureService featureService)
|
||||||
{
|
{
|
||||||
_userRepository = userRepository;
|
_userRepository = userRepository;
|
||||||
_cipherRepository = cipherRepository;
|
_cipherRepository = cipherRepository;
|
||||||
_paymentService = paymentService;
|
_paymentService = paymentService;
|
||||||
_globalSettings = globalSettings;
|
_globalSettings = globalSettings;
|
||||||
_accessControlService = accessControlService;
|
_accessControlService = accessControlService;
|
||||||
|
_currentContext = currentContext;
|
||||||
|
_featureService = featureService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[RequirePermission(Permission.User_List_View)]
|
[RequirePermission(Permission.User_List_View)]
|
||||||
@ -69,7 +80,7 @@ public class UsersController : Controller
|
|||||||
return RedirectToAction("Index");
|
return RedirectToAction("Index");
|
||||||
}
|
}
|
||||||
|
|
||||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(id);
|
var ciphers = await _cipherRepository.GetManyByUserIdAsync(id, useFlexibleCollections: UseFlexibleCollections);
|
||||||
return View(new UserViewModel(user, ciphers));
|
return View(new UserViewModel(user, ciphers));
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,7 +93,7 @@ public class UsersController : Controller
|
|||||||
return RedirectToAction("Index");
|
return RedirectToAction("Index");
|
||||||
}
|
}
|
||||||
|
|
||||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(id);
|
var ciphers = await _cipherRepository.GetManyByUserIdAsync(id, useFlexibleCollections: UseFlexibleCollections);
|
||||||
var billingInfo = await _paymentService.GetBillingAsync(user);
|
var billingInfo = await _paymentService.GetBillingAsync(user);
|
||||||
return View(new UserEditModel(user, ciphers, billingInfo, _globalSettings));
|
return View(new UserEditModel(user, ciphers, billingInfo, _globalSettings));
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
namespace Bit.Admin.Models;
|
namespace Bit.Admin.Models;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
namespace Bit.Admin.Models;
|
namespace Bit.Admin.Models;
|
||||||
|
|
||||||
|
@ -1020,8 +1020,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1363,8 +1363,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2785,114 +2785,114 @@
|
|||||||
"commercial.core": {
|
"commercial.core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )"
|
"Core": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"commercial.infrastructure.entityframework": {
|
"commercial.infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"migrator": {
|
"migrator": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.Extensions.Logging": "[6.0.0, )",
|
"Microsoft.Extensions.Logging": "6.0.0",
|
||||||
"dbup-sqlserver": "[5.0.8, )"
|
"dbup-sqlserver": "5.0.8"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"mysqlmigrations": {
|
"mysqlmigrations": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"postgresmigrations": {
|
"postgresmigrations": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sqlitemigrations": {
|
"sqlitemigrations": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -795,6 +795,14 @@ public class OrganizationsController : Controller
|
|||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var v1Enabled = _featureService.IsEnabled(FeatureFlagKeys.FlexibleCollectionsV1, _currentContext);
|
||||||
|
|
||||||
|
if (!v1Enabled)
|
||||||
|
{
|
||||||
|
// V1 is disabled, ensure V1 setting doesn't change
|
||||||
|
model.AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
|
||||||
|
}
|
||||||
|
|
||||||
await _organizationService.UpdateAsync(model.ToOrganization(organization), eventType: EventType.Organization_CollectionManagement_Updated);
|
await _organizationService.UpdateAsync(model.ToOrganization(organization), eventType: EventType.Organization_CollectionManagement_Updated);
|
||||||
return new OrganizationResponseModel(organization);
|
return new OrganizationResponseModel(organization);
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
|
||||||
namespace Bit.Api.AdminConsole.Models.Request.Organizations;
|
namespace Bit.Api.AdminConsole.Models.Request.Organizations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Data;
|
using Bit.Core.Models.Data;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
|
|
||||||
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
|
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
|
|
||||||
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
|
namespace Bit.Api.AdminConsole.Models.Response.Organizations;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Bit.Api.Models.Response;
|
using Bit.Api.Models.Response;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
@ -55,6 +55,7 @@ public class OrganizationResponseModel : ResponseModel
|
|||||||
MaxAutoscaleSmSeats = organization.MaxAutoscaleSmSeats;
|
MaxAutoscaleSmSeats = organization.MaxAutoscaleSmSeats;
|
||||||
MaxAutoscaleSmServiceAccounts = organization.MaxAutoscaleSmServiceAccounts;
|
MaxAutoscaleSmServiceAccounts = organization.MaxAutoscaleSmServiceAccounts;
|
||||||
LimitCollectionCreationDeletion = organization.LimitCollectionCreationDeletion;
|
LimitCollectionCreationDeletion = organization.LimitCollectionCreationDeletion;
|
||||||
|
AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
@ -95,6 +96,7 @@ public class OrganizationResponseModel : ResponseModel
|
|||||||
public int? MaxAutoscaleSmSeats { get; set; }
|
public int? MaxAutoscaleSmSeats { get; set; }
|
||||||
public int? MaxAutoscaleSmServiceAccounts { get; set; }
|
public int? MaxAutoscaleSmServiceAccounts { get; set; }
|
||||||
public bool LimitCollectionCreationDeletion { get; set; }
|
public bool LimitCollectionCreationDeletion { get; set; }
|
||||||
|
public bool AllowAdminAccessToAllCollectionItems { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class OrganizationSubscriptionResponseModel : OrganizationResponseModel
|
public class OrganizationSubscriptionResponseModel : OrganizationResponseModel
|
||||||
|
@ -60,6 +60,7 @@ public class ProfileOrganizationResponseModel : ResponseModel
|
|||||||
FamilySponsorshipValidUntil = organization.FamilySponsorshipValidUntil;
|
FamilySponsorshipValidUntil = organization.FamilySponsorshipValidUntil;
|
||||||
AccessSecretsManager = organization.AccessSecretsManager;
|
AccessSecretsManager = organization.AccessSecretsManager;
|
||||||
LimitCollectionCreationDeletion = organization.LimitCollectionCreationDeletion;
|
LimitCollectionCreationDeletion = organization.LimitCollectionCreationDeletion;
|
||||||
|
AllowAdminAccessToAllCollectionItems = organization.AllowAdminAccessToAllCollectionItems;
|
||||||
|
|
||||||
if (organization.SsoConfig != null)
|
if (organization.SsoConfig != null)
|
||||||
{
|
{
|
||||||
@ -114,4 +115,5 @@ public class ProfileOrganizationResponseModel : ResponseModel
|
|||||||
public bool? FamilySponsorshipToDelete { get; set; }
|
public bool? FamilySponsorshipToDelete { get; set; }
|
||||||
public bool AccessSecretsManager { get; set; }
|
public bool AccessSecretsManager { get; set; }
|
||||||
public bool LimitCollectionCreationDeletion { get; set; }
|
public bool LimitCollectionCreationDeletion { get; set; }
|
||||||
|
public bool AllowAdminAccessToAllCollectionItems { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using Bit.Api.Auth.Models.Request.Accounts;
|
using Bit.Api.Auth.Models.Request.Accounts;
|
||||||
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
using Bit.Core.Auth.Utilities;
|
using Bit.Core.Auth.Utilities;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Bit.Core.Auth.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Auth.Entities;
|
||||||
using Bit.Core.Auth.Models.Data;
|
using Bit.Core.Auth.Models.Data;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Api;
|
using Bit.Core.Models.Api;
|
||||||
|
@ -58,6 +58,8 @@ public class AccountsController : Controller
|
|||||||
private readonly IFeatureService _featureService;
|
private readonly IFeatureService _featureService;
|
||||||
private readonly ICurrentContext _currentContext;
|
private readonly ICurrentContext _currentContext;
|
||||||
|
|
||||||
|
private bool UseFlexibleCollections =>
|
||||||
|
_featureService.IsEnabled(FeatureFlagKeys.FlexibleCollections, _currentContext);
|
||||||
|
|
||||||
public AccountsController(
|
public AccountsController(
|
||||||
GlobalSettings globalSettings,
|
GlobalSettings globalSettings,
|
||||||
@ -415,7 +417,7 @@ public class AccountsController : Controller
|
|||||||
var ciphers = new List<Cipher>();
|
var ciphers = new List<Cipher>();
|
||||||
if (model.Ciphers.Any())
|
if (model.Ciphers.Any())
|
||||||
{
|
{
|
||||||
var existingCiphers = await _cipherRepository.GetManyByUserIdAsync(user.Id);
|
var existingCiphers = await _cipherRepository.GetManyByUserIdAsync(user.Id, useFlexibleCollections: UseFlexibleCollections);
|
||||||
ciphers.AddRange(existingCiphers
|
ciphers.AddRange(existingCiphers
|
||||||
.Join(model.Ciphers, c => c.Id, c => c.Id, (existing, c) => c.ToCipher(existing)));
|
.Join(model.Ciphers, c => c.Id, c => c.Id, (existing, c) => c.ToCipher(existing)));
|
||||||
}
|
}
|
||||||
|
@ -1,14 +1,16 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
namespace Bit.Api.Models.Request.Organizations;
|
namespace Bit.Api.Models.Request.Organizations;
|
||||||
|
|
||||||
public class OrganizationCollectionManagementUpdateRequestModel
|
public class OrganizationCollectionManagementUpdateRequestModel
|
||||||
{
|
{
|
||||||
public bool LimitCreateDeleteOwnerAdmin { get; set; }
|
public bool LimitCreateDeleteOwnerAdmin { get; set; }
|
||||||
|
public bool AllowAdminAccessToAllCollectionItems { get; set; }
|
||||||
|
|
||||||
public virtual Organization ToOrganization(Organization existingOrganization)
|
public virtual Organization ToOrganization(Organization existingOrganization)
|
||||||
{
|
{
|
||||||
existingOrganization.LimitCollectionCreationDeletion = LimitCreateDeleteOwnerAdmin;
|
existingOrganization.LimitCollectionCreationDeletion = LimitCreateDeleteOwnerAdmin;
|
||||||
|
existingOrganization.AllowAdminAccessToAllCollectionItems = AllowAdminAccessToAllCollectionItems;
|
||||||
return existingOrganization;
|
return existingOrganization;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.ComponentModel.DataAnnotations;
|
using System.ComponentModel.DataAnnotations;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
|
||||||
namespace Bit.Api.Models.Request.Organizations;
|
namespace Bit.Api.Models.Request.Organizations;
|
||||||
|
@ -40,6 +40,10 @@ public class CiphersController : Controller
|
|||||||
private readonly ILogger<CiphersController> _logger;
|
private readonly ILogger<CiphersController> _logger;
|
||||||
private readonly GlobalSettings _globalSettings;
|
private readonly GlobalSettings _globalSettings;
|
||||||
private readonly Version _cipherKeyEncryptionMinimumVersion = new Version(Constants.CipherKeyEncryptionMinimumVersion);
|
private readonly Version _cipherKeyEncryptionMinimumVersion = new Version(Constants.CipherKeyEncryptionMinimumVersion);
|
||||||
|
private readonly IFeatureService _featureService;
|
||||||
|
|
||||||
|
private bool UseFlexibleCollections =>
|
||||||
|
_featureService.IsEnabled(FeatureFlagKeys.FlexibleCollections, _currentContext);
|
||||||
|
|
||||||
public CiphersController(
|
public CiphersController(
|
||||||
ICipherRepository cipherRepository,
|
ICipherRepository cipherRepository,
|
||||||
@ -50,7 +54,8 @@ public class CiphersController : Controller
|
|||||||
IProviderService providerService,
|
IProviderService providerService,
|
||||||
ICurrentContext currentContext,
|
ICurrentContext currentContext,
|
||||||
ILogger<CiphersController> logger,
|
ILogger<CiphersController> logger,
|
||||||
GlobalSettings globalSettings)
|
GlobalSettings globalSettings,
|
||||||
|
IFeatureService featureService)
|
||||||
{
|
{
|
||||||
_cipherRepository = cipherRepository;
|
_cipherRepository = cipherRepository;
|
||||||
_collectionCipherRepository = collectionCipherRepository;
|
_collectionCipherRepository = collectionCipherRepository;
|
||||||
@ -61,13 +66,14 @@ public class CiphersController : Controller
|
|||||||
_currentContext = currentContext;
|
_currentContext = currentContext;
|
||||||
_logger = logger;
|
_logger = logger;
|
||||||
_globalSettings = globalSettings;
|
_globalSettings = globalSettings;
|
||||||
|
_featureService = featureService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{id}")]
|
[HttpGet("{id}")]
|
||||||
public async Task<CipherResponseModel> Get(string id)
|
public async Task<CipherResponseModel> Get(Guid id)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -91,17 +97,16 @@ public class CiphersController : Controller
|
|||||||
|
|
||||||
[HttpGet("{id}/full-details")]
|
[HttpGet("{id}/full-details")]
|
||||||
[HttpGet("{id}/details")]
|
[HttpGet("{id}/details")]
|
||||||
public async Task<CipherDetailsResponseModel> GetDetails(string id)
|
public async Task<CipherDetailsResponseModel> GetDetails(Guid id)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipherId = new Guid(id);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(cipherId, userId);
|
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
}
|
}
|
||||||
|
|
||||||
var collectionCiphers = await _collectionCipherRepository.GetManyByUserIdCipherIdAsync(userId, cipherId);
|
var collectionCiphers = await _collectionCipherRepository.GetManyByUserIdCipherIdAsync(userId, id);
|
||||||
return new CipherDetailsResponseModel(cipher, _globalSettings, collectionCiphers);
|
return new CipherDetailsResponseModel(cipher, _globalSettings, collectionCiphers);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,7 +116,7 @@ public class CiphersController : Controller
|
|||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var hasOrgs = _currentContext.Organizations?.Any() ?? false;
|
var hasOrgs = _currentContext.Organizations?.Any() ?? false;
|
||||||
// TODO: Use hasOrgs proper for cipher listing here?
|
// TODO: Use hasOrgs proper for cipher listing here?
|
||||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(userId, true || hasOrgs);
|
var ciphers = await _cipherRepository.GetManyByUserIdAsync(userId, useFlexibleCollections: UseFlexibleCollections, withOrganizations: true || hasOrgs);
|
||||||
Dictionary<Guid, IGrouping<Guid, CollectionCipher>> collectionCiphersGroupDict = null;
|
Dictionary<Guid, IGrouping<Guid, CollectionCipher>> collectionCiphersGroupDict = null;
|
||||||
if (hasOrgs)
|
if (hasOrgs)
|
||||||
{
|
{
|
||||||
@ -175,7 +180,7 @@ public class CiphersController : Controller
|
|||||||
public async Task<CipherResponseModel> Put(Guid id, [FromBody] CipherRequestModel model)
|
public async Task<CipherResponseModel> Put(Guid id, [FromBody] CipherRequestModel model)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(id, userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -247,25 +252,23 @@ public class CiphersController : Controller
|
|||||||
|
|
||||||
[HttpPut("{id}/partial")]
|
[HttpPut("{id}/partial")]
|
||||||
[HttpPost("{id}/partial")]
|
[HttpPost("{id}/partial")]
|
||||||
public async Task<CipherResponseModel> PutPartial(string id, [FromBody] CipherPartialRequestModel model)
|
public async Task<CipherResponseModel> PutPartial(Guid id, [FromBody] CipherPartialRequestModel model)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var folderId = string.IsNullOrWhiteSpace(model.FolderId) ? null : (Guid?)new Guid(model.FolderId);
|
var folderId = string.IsNullOrWhiteSpace(model.FolderId) ? null : (Guid?)new Guid(model.FolderId);
|
||||||
var cipherId = new Guid(id);
|
await _cipherRepository.UpdatePartialAsync(id, userId, folderId, model.Favorite);
|
||||||
await _cipherRepository.UpdatePartialAsync(cipherId, userId, folderId, model.Favorite);
|
|
||||||
|
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(cipherId, userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
var response = new CipherResponseModel(cipher, _globalSettings);
|
var response = new CipherResponseModel(cipher, _globalSettings);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("{id}/share")]
|
[HttpPut("{id}/share")]
|
||||||
[HttpPost("{id}/share")]
|
[HttpPost("{id}/share")]
|
||||||
public async Task<CipherResponseModel> PutShare(string id, [FromBody] CipherShareRequestModel model)
|
public async Task<CipherResponseModel> PutShare(Guid id, [FromBody] CipherShareRequestModel model)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipherId = new Guid(id);
|
var cipher = await _cipherRepository.GetByIdAsync(id);
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(cipherId);
|
|
||||||
if (cipher == null || cipher.UserId != userId ||
|
if (cipher == null || cipher.UserId != userId ||
|
||||||
!await _currentContext.OrganizationUser(new Guid(model.Cipher.OrganizationId)))
|
!await _currentContext.OrganizationUser(new Guid(model.Cipher.OrganizationId)))
|
||||||
{
|
{
|
||||||
@ -279,17 +282,17 @@ public class CiphersController : Controller
|
|||||||
await _cipherService.ShareAsync(original, model.Cipher.ToCipher(cipher), new Guid(model.Cipher.OrganizationId),
|
await _cipherService.ShareAsync(original, model.Cipher.ToCipher(cipher), new Guid(model.Cipher.OrganizationId),
|
||||||
model.CollectionIds.Select(c => new Guid(c)), userId, model.Cipher.LastKnownRevisionDate);
|
model.CollectionIds.Select(c => new Guid(c)), userId, model.Cipher.LastKnownRevisionDate);
|
||||||
|
|
||||||
var sharedCipher = await _cipherRepository.GetByIdAsync(cipherId, userId);
|
var sharedCipher = await GetByIdAsync(id, userId);
|
||||||
var response = new CipherResponseModel(sharedCipher, _globalSettings);
|
var response = new CipherResponseModel(sharedCipher, _globalSettings);
|
||||||
return response;
|
return response;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("{id}/collections")]
|
[HttpPut("{id}/collections")]
|
||||||
[HttpPost("{id}/collections")]
|
[HttpPost("{id}/collections")]
|
||||||
public async Task PutCollections(string id, [FromBody] CipherCollectionsRequestModel model)
|
public async Task PutCollections(Guid id, [FromBody] CipherCollectionsRequestModel model)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null || !cipher.OrganizationId.HasValue ||
|
if (cipher == null || !cipher.OrganizationId.HasValue ||
|
||||||
!await _currentContext.OrganizationUser(cipher.OrganizationId.Value))
|
!await _currentContext.OrganizationUser(cipher.OrganizationId.Value))
|
||||||
{
|
{
|
||||||
@ -318,10 +321,10 @@ public class CiphersController : Controller
|
|||||||
|
|
||||||
[HttpDelete("{id}")]
|
[HttpDelete("{id}")]
|
||||||
[HttpPost("{id}/delete")]
|
[HttpPost("{id}/delete")]
|
||||||
public async Task Delete(string id)
|
public async Task Delete(Guid id)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -380,10 +383,10 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("{id}/delete")]
|
[HttpPut("{id}/delete")]
|
||||||
public async Task PutDelete(string id)
|
public async Task PutDelete(Guid id)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -436,10 +439,10 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPut("{id}/restore")]
|
[HttpPut("{id}/restore")]
|
||||||
public async Task<CipherResponseModel> PutRestore(string id)
|
public async Task<CipherResponseModel> PutRestore(Guid id)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -526,7 +529,7 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(userId, false);
|
var ciphers = await _cipherRepository.GetManyByUserIdAsync(userId, useFlexibleCollections: UseFlexibleCollections, withOrganizations: false);
|
||||||
var ciphersDict = ciphers.ToDictionary(c => c.Id);
|
var ciphersDict = ciphers.ToDictionary(c => c.Id);
|
||||||
|
|
||||||
var shareCiphers = new List<(Cipher, DateTime?)>();
|
var shareCiphers = new List<(Cipher, DateTime?)>();
|
||||||
@ -581,13 +584,12 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpPost("{id}/attachment/v2")]
|
[HttpPost("{id}/attachment/v2")]
|
||||||
public async Task<AttachmentUploadDataResponseModel> PostAttachment(string id, [FromBody] AttachmentRequestModel request)
|
public async Task<AttachmentUploadDataResponseModel> PostAttachment(Guid id, [FromBody] AttachmentRequestModel request)
|
||||||
{
|
{
|
||||||
var idGuid = new Guid(id);
|
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = request.AdminRequest ?
|
var cipher = request.AdminRequest ?
|
||||||
await _cipherRepository.GetOrganizationDetailsByIdAsync(idGuid) :
|
await _cipherRepository.GetOrganizationDetailsByIdAsync(id) :
|
||||||
await _cipherRepository.GetByIdAsync(idGuid, userId);
|
await GetByIdAsync(id, userId);
|
||||||
|
|
||||||
if (cipher == null || (request.AdminRequest && (!cipher.OrganizationId.HasValue ||
|
if (cipher == null || (request.AdminRequest && (!cipher.OrganizationId.HasValue ||
|
||||||
!await _currentContext.EditAnyCollection(cipher.OrganizationId.Value))))
|
!await _currentContext.EditAnyCollection(cipher.OrganizationId.Value))))
|
||||||
@ -615,11 +617,10 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{id}/attachment/{attachmentId}/renew")]
|
[HttpGet("{id}/attachment/{attachmentId}/renew")]
|
||||||
public async Task<AttachmentUploadDataResponseModel> RenewFileUploadUrl(string id, string attachmentId)
|
public async Task<AttachmentUploadDataResponseModel> RenewFileUploadUrl(Guid id, string attachmentId)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipherId = new Guid(id);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(cipherId, userId);
|
|
||||||
var attachments = cipher?.GetAttachments();
|
var attachments = cipher?.GetAttachments();
|
||||||
|
|
||||||
if (attachments == null || !attachments.ContainsKey(attachmentId) || attachments[attachmentId].Validated)
|
if (attachments == null || !attachments.ContainsKey(attachmentId) || attachments[attachmentId].Validated)
|
||||||
@ -638,7 +639,7 @@ public class CiphersController : Controller
|
|||||||
[SelfHosted(SelfHostedOnly = true)]
|
[SelfHosted(SelfHostedOnly = true)]
|
||||||
[RequestSizeLimit(Constants.FileSize501mb)]
|
[RequestSizeLimit(Constants.FileSize501mb)]
|
||||||
[DisableFormValueModelBinding]
|
[DisableFormValueModelBinding]
|
||||||
public async Task PostFileForExistingAttachment(string id, string attachmentId)
|
public async Task PostFileForExistingAttachment(Guid id, string attachmentId)
|
||||||
{
|
{
|
||||||
if (!Request?.ContentType.Contains("multipart/") ?? true)
|
if (!Request?.ContentType.Contains("multipart/") ?? true)
|
||||||
{
|
{
|
||||||
@ -646,7 +647,7 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
var attachments = cipher?.GetAttachments();
|
var attachments = cipher?.GetAttachments();
|
||||||
if (attachments == null || !attachments.ContainsKey(attachmentId))
|
if (attachments == null || !attachments.ContainsKey(attachmentId))
|
||||||
{
|
{
|
||||||
@ -664,13 +665,12 @@ public class CiphersController : Controller
|
|||||||
[Obsolete("Deprecated Attachments API", false)]
|
[Obsolete("Deprecated Attachments API", false)]
|
||||||
[RequestSizeLimit(Constants.FileSize101mb)]
|
[RequestSizeLimit(Constants.FileSize101mb)]
|
||||||
[DisableFormValueModelBinding]
|
[DisableFormValueModelBinding]
|
||||||
public async Task<CipherResponseModel> PostAttachment(string id)
|
public async Task<CipherResponseModel> PostAttachment(Guid id)
|
||||||
{
|
{
|
||||||
ValidateAttachment();
|
ValidateAttachment();
|
||||||
|
|
||||||
var idGuid = new Guid(id);
|
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(idGuid, userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -711,10 +711,10 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("{id}/attachment/{attachmentId}")]
|
[HttpGet("{id}/attachment/{attachmentId}")]
|
||||||
public async Task<AttachmentResponseModel> GetAttachmentData(string id, string attachmentId)
|
public async Task<AttachmentResponseModel> GetAttachmentData(Guid id, string attachmentId)
|
||||||
{
|
{
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(new Guid(id), userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
var result = await _cipherService.GetAttachmentDownloadDataAsync(cipher, attachmentId);
|
var result = await _cipherService.GetAttachmentDownloadDataAsync(cipher, attachmentId);
|
||||||
return new AttachmentResponseModel(result);
|
return new AttachmentResponseModel(result);
|
||||||
}
|
}
|
||||||
@ -742,11 +742,10 @@ public class CiphersController : Controller
|
|||||||
|
|
||||||
[HttpDelete("{id}/attachment/{attachmentId}")]
|
[HttpDelete("{id}/attachment/{attachmentId}")]
|
||||||
[HttpPost("{id}/attachment/{attachmentId}/delete")]
|
[HttpPost("{id}/attachment/{attachmentId}/delete")]
|
||||||
public async Task DeleteAttachment(string id, string attachmentId)
|
public async Task DeleteAttachment(Guid id, string attachmentId)
|
||||||
{
|
{
|
||||||
var idGuid = new Guid(id);
|
|
||||||
var userId = _userService.GetProperUserId(User).Value;
|
var userId = _userService.GetProperUserId(User).Value;
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(idGuid, userId);
|
var cipher = await GetByIdAsync(id, userId);
|
||||||
if (cipher == null)
|
if (cipher == null)
|
||||||
{
|
{
|
||||||
throw new NotFoundException();
|
throw new NotFoundException();
|
||||||
@ -836,4 +835,9 @@ public class CiphersController : Controller
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private async Task<CipherDetails> GetByIdAsync(Guid cipherId, Guid userId)
|
||||||
|
{
|
||||||
|
return await _cipherRepository.GetByIdAsync(cipherId, userId, UseFlexibleCollections);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,9 @@
|
|||||||
using Bit.Api.Vault.Models.Response;
|
using Bit.Api.Vault.Models.Response;
|
||||||
|
using Bit.Core;
|
||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.Enums.Provider;
|
using Bit.Core.AdminConsole.Enums.Provider;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
@ -30,6 +32,11 @@ public class SyncController : Controller
|
|||||||
private readonly IPolicyRepository _policyRepository;
|
private readonly IPolicyRepository _policyRepository;
|
||||||
private readonly ISendRepository _sendRepository;
|
private readonly ISendRepository _sendRepository;
|
||||||
private readonly GlobalSettings _globalSettings;
|
private readonly GlobalSettings _globalSettings;
|
||||||
|
private readonly ICurrentContext _currentContext;
|
||||||
|
private readonly IFeatureService _featureService;
|
||||||
|
|
||||||
|
private bool UseFlexibleCollections =>
|
||||||
|
_featureService.IsEnabled(FeatureFlagKeys.FlexibleCollections, _currentContext);
|
||||||
|
|
||||||
public SyncController(
|
public SyncController(
|
||||||
IUserService userService,
|
IUserService userService,
|
||||||
@ -41,7 +48,9 @@ public class SyncController : Controller
|
|||||||
IProviderUserRepository providerUserRepository,
|
IProviderUserRepository providerUserRepository,
|
||||||
IPolicyRepository policyRepository,
|
IPolicyRepository policyRepository,
|
||||||
ISendRepository sendRepository,
|
ISendRepository sendRepository,
|
||||||
GlobalSettings globalSettings)
|
GlobalSettings globalSettings,
|
||||||
|
ICurrentContext currentContext,
|
||||||
|
IFeatureService featureService)
|
||||||
{
|
{
|
||||||
_userService = userService;
|
_userService = userService;
|
||||||
_folderRepository = folderRepository;
|
_folderRepository = folderRepository;
|
||||||
@ -53,6 +62,8 @@ public class SyncController : Controller
|
|||||||
_policyRepository = policyRepository;
|
_policyRepository = policyRepository;
|
||||||
_sendRepository = sendRepository;
|
_sendRepository = sendRepository;
|
||||||
_globalSettings = globalSettings;
|
_globalSettings = globalSettings;
|
||||||
|
_currentContext = currentContext;
|
||||||
|
_featureService = featureService;
|
||||||
}
|
}
|
||||||
|
|
||||||
[HttpGet("")]
|
[HttpGet("")]
|
||||||
@ -74,7 +85,7 @@ public class SyncController : Controller
|
|||||||
var hasEnabledOrgs = organizationUserDetails.Any(o => o.Enabled);
|
var hasEnabledOrgs = organizationUserDetails.Any(o => o.Enabled);
|
||||||
|
|
||||||
var folders = await _folderRepository.GetManyByUserIdAsync(user.Id);
|
var folders = await _folderRepository.GetManyByUserIdAsync(user.Id);
|
||||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(user.Id, hasEnabledOrgs);
|
var ciphers = await _cipherRepository.GetManyByUserIdAsync(user.Id, useFlexibleCollections: UseFlexibleCollections, withOrganizations: hasEnabledOrgs);
|
||||||
var sends = await _sendRepository.GetManyByUserIdAsync(user.Id);
|
var sends = await _sendRepository.GetManyByUserIdAsync(user.Id);
|
||||||
|
|
||||||
IEnumerable<CollectionDetails> collections = null;
|
IEnumerable<CollectionDetails> collections = null;
|
||||||
|
@ -1119,8 +1119,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1462,8 +1462,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2765,85 +2765,85 @@
|
|||||||
"commercial.core": {
|
"commercial.core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )"
|
"Core": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"commercial.infrastructure.entityframework": {
|
"commercial.infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
using Bit.Billing.Constants;
|
using Bit.Billing.Constants;
|
||||||
using Bit.Billing.Services;
|
using Bit.Billing.Services;
|
||||||
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
@ -971,8 +971,8 @@
|
|||||||
},
|
},
|
||||||
"Newtonsoft.Json": {
|
"Newtonsoft.Json": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "13.0.1",
|
"resolved": "13.0.3",
|
||||||
"contentHash": "ppPFpBcvxdsfUonNcvITKqLl3bqxWbDCZIzDWHzjpdAHRFfZe0Dw9HmA0+za13IdyrgJwpkDTDA9fHaxOrt20A=="
|
"contentHash": "HrC5BXdl00IP9zeV+0Z848QWPAoCr9P3bDEZguI+gkLcBKAOxix/tLEAAHC+UvDNPv4a2d18lOReHMOagPa+zQ=="
|
||||||
},
|
},
|
||||||
"Npgsql": {
|
"Npgsql": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
@ -1314,8 +1314,8 @@
|
|||||||
},
|
},
|
||||||
"Serilog.Sinks.SyslogMessages": {
|
"Serilog.Sinks.SyslogMessages": {
|
||||||
"type": "Transitive",
|
"type": "Transitive",
|
||||||
"resolved": "2.0.6",
|
"resolved": "2.0.9",
|
||||||
"contentHash": "V2Yq2GEbk7taEPbpBLFzLXhrHrUzKf4sQu/zLrANU8XIoUn/Mr08M2E8PrcrWVXCj0R4xLMWYe0Z1sxOrMF3IA==",
|
"contentHash": "y7J+/h/Nf5EAtbpa6lC1nDhK/F9kC5oxuVYmQivv242Oh4hAVMeoAk5Gv6bgb/KbmqufGPXUFkX/AlcrvZ8Ywg==",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Serilog": "2.5.0",
|
"Serilog": "2.5.0",
|
||||||
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
"Serilog.Sinks.PeriodicBatching": "2.3.0"
|
||||||
@ -2582,71 +2582,71 @@
|
|||||||
"core": {
|
"core": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AWSSDK.SQS": "[3.7.2.47, )",
|
"AWSSDK.SQS": "3.7.2.47",
|
||||||
"AWSSDK.SimpleEmail": "[3.7.0.150, )",
|
"AWSSDK.SimpleEmail": "3.7.0.150",
|
||||||
"AspNetCoreRateLimit": "[4.0.2, )",
|
"AspNetCoreRateLimit": "4.0.2",
|
||||||
"AspNetCoreRateLimit.Redis": "[1.0.1, )",
|
"AspNetCoreRateLimit.Redis": "1.0.1",
|
||||||
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "[1.3.2, )",
|
"Azure.Extensions.AspNetCore.DataProtection.Blobs": "1.3.2",
|
||||||
"Azure.Identity": "[1.10.2, )",
|
"Azure.Identity": "1.10.2",
|
||||||
"Azure.Messaging.ServiceBus": "[7.15.0, )",
|
"Azure.Messaging.ServiceBus": "7.15.0",
|
||||||
"Azure.Storage.Blobs": "[12.14.1, )",
|
"Azure.Storage.Blobs": "12.14.1",
|
||||||
"Azure.Storage.Queues": "[12.12.0, )",
|
"Azure.Storage.Queues": "12.12.0",
|
||||||
"BitPay.Light": "[1.0.1907, )",
|
"BitPay.Light": "1.0.1907",
|
||||||
"Braintree": "[5.19.0, )",
|
"Braintree": "5.19.0",
|
||||||
"DnsClient": "[1.7.0, )",
|
"DnsClient": "1.7.0",
|
||||||
"Duende.IdentityServer": "[6.0.4, )",
|
"Duende.IdentityServer": "6.0.4",
|
||||||
"Fido2.AspNet": "[3.0.1, )",
|
"Fido2.AspNet": "3.0.1",
|
||||||
"Handlebars.Net": "[2.1.2, )",
|
"Handlebars.Net": "2.1.2",
|
||||||
"LaunchDarkly.ServerSdk": "[8.0.0, )",
|
"LaunchDarkly.ServerSdk": "8.0.0",
|
||||||
"MailKit": "[4.2.0, )",
|
"MailKit": "4.2.0",
|
||||||
"Microsoft.AspNetCore.Authentication.JwtBearer": "[6.0.4, )",
|
"Microsoft.AspNetCore.Authentication.JwtBearer": "6.0.4",
|
||||||
"Microsoft.Azure.Cosmos.Table": "[1.0.8, )",
|
"Microsoft.Azure.Cosmos.Table": "1.0.8",
|
||||||
"Microsoft.Azure.NotificationHubs": "[4.1.0, )",
|
"Microsoft.Azure.NotificationHubs": "4.1.0",
|
||||||
"Microsoft.Data.SqlClient": "[5.0.1, )",
|
"Microsoft.Data.SqlClient": "5.0.1",
|
||||||
"Microsoft.Extensions.Caching.StackExchangeRedis": "[6.0.6, )",
|
"Microsoft.Extensions.Caching.StackExchangeRedis": "6.0.6",
|
||||||
"Microsoft.Extensions.Configuration.EnvironmentVariables": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.EnvironmentVariables": "6.0.1",
|
||||||
"Microsoft.Extensions.Configuration.UserSecrets": "[6.0.1, )",
|
"Microsoft.Extensions.Configuration.UserSecrets": "6.0.1",
|
||||||
"Microsoft.Extensions.Identity.Stores": "[6.0.4, )",
|
"Microsoft.Extensions.Identity.Stores": "6.0.4",
|
||||||
"Newtonsoft.Json": "[13.0.1, )",
|
"Newtonsoft.Json": "13.0.3",
|
||||||
"Otp.NET": "[1.2.2, )",
|
"Otp.NET": "1.2.2",
|
||||||
"Quartz": "[3.4.0, )",
|
"Quartz": "3.4.0",
|
||||||
"SendGrid": "[9.27.0, )",
|
"SendGrid": "9.27.0",
|
||||||
"Sentry.Serilog": "[3.16.0, )",
|
"Sentry.Serilog": "3.16.0",
|
||||||
"Serilog.AspNetCore": "[5.0.0, )",
|
"Serilog.AspNetCore": "5.0.0",
|
||||||
"Serilog.Extensions.Logging": "[3.1.0, )",
|
"Serilog.Extensions.Logging": "3.1.0",
|
||||||
"Serilog.Extensions.Logging.File": "[2.0.0, )",
|
"Serilog.Extensions.Logging.File": "2.0.0",
|
||||||
"Serilog.Sinks.AzureCosmosDB": "[2.0.0, )",
|
"Serilog.Sinks.AzureCosmosDB": "2.0.0",
|
||||||
"Serilog.Sinks.SyslogMessages": "[2.0.6, )",
|
"Serilog.Sinks.SyslogMessages": "2.0.9",
|
||||||
"Stripe.net": "[40.0.0, )",
|
"Stripe.net": "40.0.0",
|
||||||
"YubicoDotNetClient": "[1.2.0, )"
|
"YubicoDotNetClient": "1.2.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.dapper": {
|
"infrastructure.dapper": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Dapper": "[2.0.123, )"
|
"Dapper": "2.0.123"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"infrastructure.entityframework": {
|
"infrastructure.entityframework": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"AutoMapper.Extensions.Microsoft.DependencyInjection": "[12.0.1, )",
|
"AutoMapper.Extensions.Microsoft.DependencyInjection": "12.0.1",
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Microsoft.EntityFrameworkCore.Relational": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Relational": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.SqlServer": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.SqlServer": "7.0.5",
|
||||||
"Microsoft.EntityFrameworkCore.Sqlite": "[7.0.5, )",
|
"Microsoft.EntityFrameworkCore.Sqlite": "7.0.5",
|
||||||
"Npgsql.EntityFrameworkCore.PostgreSQL": "[7.0.4, )",
|
"Npgsql.EntityFrameworkCore.PostgreSQL": "7.0.4",
|
||||||
"Pomelo.EntityFrameworkCore.MySql": "[7.0.0, )",
|
"Pomelo.EntityFrameworkCore.MySql": "7.0.0",
|
||||||
"linq2db.EntityFrameworkCore": "[7.5.0, )"
|
"linq2db.EntityFrameworkCore": "7.5.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sharedweb": {
|
"sharedweb": {
|
||||||
"type": "Project",
|
"type": "Project",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"Core": "[2023.10.3, )",
|
"Core": "2023.10.3",
|
||||||
"Infrastructure.Dapper": "[2023.10.3, )",
|
"Infrastructure.Dapper": "2023.10.3",
|
||||||
"Infrastructure.EntityFramework": "[2023.10.3, )"
|
"Infrastructure.EntityFramework": "2023.10.3"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -2,12 +2,13 @@
|
|||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.Tools.Entities;
|
using Bit.Core.Tools.Entities;
|
||||||
using Bit.Core.Utilities;
|
using Bit.Core.Utilities;
|
||||||
|
|
||||||
namespace Bit.Core.Entities;
|
namespace Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
public class Organization : ITableObject<Guid>, ISubscriber, IStorable, IStorableSubscriber, IRevisable, IReferenceable
|
public class Organization : ITableObject<Guid>, ISubscriber, IStorable, IStorableSubscriber, IRevisable, IReferenceable
|
||||||
{
|
{
|
||||||
@ -82,6 +83,14 @@ public class Organization : ITableObject<Guid>, ISubscriber, IStorable, IStorabl
|
|||||||
/// Refers to the ability for an organization to limit collection creation and deletion to owners and admins only
|
/// Refers to the ability for an organization to limit collection creation and deletion to owners and admins only
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool LimitCollectionCreationDeletion { get; set; }
|
public bool LimitCollectionCreationDeletion { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Refers to the ability for an organization to limit owner/admin access to all collection items
|
||||||
|
/// <remarks>
|
||||||
|
/// True: Owner/admins can access all items belonging to any collections
|
||||||
|
/// False: Owner/admins can only access items for collections they are assigned
|
||||||
|
/// </remarks>
|
||||||
|
/// </summary>
|
||||||
|
public bool AllowAdminAccessToAllCollectionItems { get; set; }
|
||||||
|
|
||||||
public void SetNewId()
|
public void SetNewId()
|
||||||
{
|
{
|
@ -2,7 +2,6 @@
|
|||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Data;
|
using Bit.Core.Models.Data;
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Data;
|
using Bit.Core.Models.Data;
|
||||||
|
|
||||||
|
@ -1,5 +1,4 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Models.Data;
|
using Bit.Core.Models.Data;
|
||||||
|
|
||||||
|
@ -1,7 +1,6 @@
|
|||||||
using Bit.Core.AdminConsole.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
using Bit.Core.AdminConsole.OrganizationFeatures.Groups.Interfaces;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Data;
|
using Bit.Core.Models.Data;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
namespace Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
||||||
|
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.OrganizationFeatures.OrganizationConnections.Interfaces;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.Auth.Identity;
|
namespace Bit.Core.Auth.Identity;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
using Bit.Core.Auth.Utilities.Duo;
|
using Bit.Core.Auth.Utilities.Duo;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Tokens;
|
using Bit.Core.Tokens;
|
||||||
|
|
||||||
namespace Bit.Core.Auth.Models.Business.Tokenables;
|
namespace Bit.Core.Auth.Models.Business.Tokenables;
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
using Bit.Core.Auth.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Auth.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.Auth.Services;
|
namespace Bit.Core.Auth.Services;
|
||||||
|
|
||||||
|
@ -5,6 +5,7 @@ using Bit.Core.Auth.Enums;
|
|||||||
using Bit.Core.Auth.Models;
|
using Bit.Core.Auth.Models;
|
||||||
using Bit.Core.Auth.Models.Business.Tokenables;
|
using Bit.Core.Auth.Models.Business.Tokenables;
|
||||||
using Bit.Core.Auth.Models.Data;
|
using Bit.Core.Auth.Models.Data;
|
||||||
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
@ -33,6 +34,11 @@ public class EmergencyAccessService : IEmergencyAccessService
|
|||||||
private readonly IPasswordHasher<User> _passwordHasher;
|
private readonly IPasswordHasher<User> _passwordHasher;
|
||||||
private readonly IOrganizationService _organizationService;
|
private readonly IOrganizationService _organizationService;
|
||||||
private readonly IDataProtectorTokenFactory<EmergencyAccessInviteTokenable> _dataProtectorTokenizer;
|
private readonly IDataProtectorTokenFactory<EmergencyAccessInviteTokenable> _dataProtectorTokenizer;
|
||||||
|
private readonly ICurrentContext _currentContext;
|
||||||
|
private readonly IFeatureService _featureService;
|
||||||
|
|
||||||
|
private bool UseFlexibleCollections =>
|
||||||
|
_featureService.IsEnabled(FeatureFlagKeys.FlexibleCollections, _currentContext);
|
||||||
|
|
||||||
public EmergencyAccessService(
|
public EmergencyAccessService(
|
||||||
IEmergencyAccessRepository emergencyAccessRepository,
|
IEmergencyAccessRepository emergencyAccessRepository,
|
||||||
@ -46,7 +52,9 @@ public class EmergencyAccessService : IEmergencyAccessService
|
|||||||
IPasswordHasher<User> passwordHasher,
|
IPasswordHasher<User> passwordHasher,
|
||||||
GlobalSettings globalSettings,
|
GlobalSettings globalSettings,
|
||||||
IOrganizationService organizationService,
|
IOrganizationService organizationService,
|
||||||
IDataProtectorTokenFactory<EmergencyAccessInviteTokenable> dataProtectorTokenizer)
|
IDataProtectorTokenFactory<EmergencyAccessInviteTokenable> dataProtectorTokenizer,
|
||||||
|
ICurrentContext currentContext,
|
||||||
|
IFeatureService featureService)
|
||||||
{
|
{
|
||||||
_emergencyAccessRepository = emergencyAccessRepository;
|
_emergencyAccessRepository = emergencyAccessRepository;
|
||||||
_organizationUserRepository = organizationUserRepository;
|
_organizationUserRepository = organizationUserRepository;
|
||||||
@ -60,6 +68,8 @@ public class EmergencyAccessService : IEmergencyAccessService
|
|||||||
_globalSettings = globalSettings;
|
_globalSettings = globalSettings;
|
||||||
_organizationService = organizationService;
|
_organizationService = organizationService;
|
||||||
_dataProtectorTokenizer = dataProtectorTokenizer;
|
_dataProtectorTokenizer = dataProtectorTokenizer;
|
||||||
|
_currentContext = currentContext;
|
||||||
|
_featureService = featureService;
|
||||||
}
|
}
|
||||||
|
|
||||||
public async Task<EmergencyAccess> InviteAsync(User invitingUser, string email, EmergencyAccessType type, int waitTime)
|
public async Task<EmergencyAccess> InviteAsync(User invitingUser, string email, EmergencyAccessType type, int waitTime)
|
||||||
@ -387,7 +397,7 @@ public class EmergencyAccessService : IEmergencyAccessService
|
|||||||
throw new BadRequestException("Emergency Access not valid.");
|
throw new BadRequestException("Emergency Access not valid.");
|
||||||
}
|
}
|
||||||
|
|
||||||
var ciphers = await _cipherRepository.GetManyByUserIdAsync(emergencyAccess.GrantorId, false);
|
var ciphers = await _cipherRepository.GetManyByUserIdAsync(emergencyAccess.GrantorId, useFlexibleCollections: UseFlexibleCollections, withOrganizations: false);
|
||||||
|
|
||||||
return new EmergencyAccessViewData
|
return new EmergencyAccessViewData
|
||||||
{
|
{
|
||||||
@ -405,7 +415,7 @@ public class EmergencyAccessService : IEmergencyAccessService
|
|||||||
throw new BadRequestException("Emergency Access not valid.");
|
throw new BadRequestException("Emergency Access not valid.");
|
||||||
}
|
}
|
||||||
|
|
||||||
var cipher = await _cipherRepository.GetByIdAsync(cipherId, emergencyAccess.GrantorId);
|
var cipher = await _cipherRepository.GetByIdAsync(cipherId, emergencyAccess.GrantorId, UseFlexibleCollections);
|
||||||
return await _cipherService.GetAttachmentDownloadDataAsync(cipher, attachmentId);
|
return await _cipherService.GetAttachmentDownloadDataAsync(cipher, attachmentId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6,7 +6,6 @@ using Bit.Core.AdminConsole.Services;
|
|||||||
using Bit.Core.Auth.Entities;
|
using Bit.Core.Auth.Entities;
|
||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Repositories;
|
using Bit.Core.Auth.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
@ -52,6 +52,7 @@ public static class FeatureFlagKeys
|
|||||||
public const string AutofillV2 = "autofill-v2";
|
public const string AutofillV2 = "autofill-v2";
|
||||||
public const string BrowserFilelessImport = "browser-fileless-import";
|
public const string BrowserFilelessImport = "browser-fileless-import";
|
||||||
public const string FlexibleCollections = "flexible-collections";
|
public const string FlexibleCollections = "flexible-collections";
|
||||||
|
public const string FlexibleCollectionsV1 = "flexible-collections-v-1"; // v-1 is intentional
|
||||||
public const string BulkCollectionAccess = "bulk-collection-access";
|
public const string BulkCollectionAccess = "bulk-collection-access";
|
||||||
public const string AutofillOverlay = "autofill-overlay";
|
public const string AutofillOverlay = "autofill-overlay";
|
||||||
public const string ItemShare = "item-share";
|
public const string ItemShare = "item-share";
|
||||||
|
@ -16,6 +16,7 @@ public class CurrentContextOrganization
|
|||||||
Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(orgUser.Permissions);
|
Permissions = CoreHelpers.LoadClassFromJsonData<Permissions>(orgUser.Permissions);
|
||||||
AccessSecretsManager = orgUser.AccessSecretsManager && orgUser.UseSecretsManager && orgUser.Enabled;
|
AccessSecretsManager = orgUser.AccessSecretsManager && orgUser.UseSecretsManager && orgUser.Enabled;
|
||||||
LimitCollectionCreationDeletion = orgUser.LimitCollectionCreationDeletion;
|
LimitCollectionCreationDeletion = orgUser.LimitCollectionCreationDeletion;
|
||||||
|
AllowAdminAccessToAllCollectionItems = orgUser.AllowAdminAccessToAllCollectionItems;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Guid Id { get; set; }
|
public Guid Id { get; set; }
|
||||||
@ -23,4 +24,5 @@ public class CurrentContextOrganization
|
|||||||
public Permissions Permissions { get; set; } = new();
|
public Permissions Permissions { get; set; } = new();
|
||||||
public bool AccessSecretsManager { get; set; }
|
public bool AccessSecretsManager { get; set; }
|
||||||
public bool LimitCollectionCreationDeletion { get; set; }
|
public bool LimitCollectionCreationDeletion { get; set; }
|
||||||
|
public bool AllowAdminAccessToAllCollectionItems { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -48,9 +48,9 @@
|
|||||||
<PackageReference Include="Serilog.Extensions.Logging.File" Version="2.0.0" />
|
<PackageReference Include="Serilog.Extensions.Logging.File" Version="2.0.0" />
|
||||||
<PackageReference Include="Sentry.Serilog" Version="3.16.0" />
|
<PackageReference Include="Sentry.Serilog" Version="3.16.0" />
|
||||||
<PackageReference Include="Duende.IdentityServer" Version="6.0.4" />
|
<PackageReference Include="Duende.IdentityServer" Version="6.0.4" />
|
||||||
<PackageReference Include="Newtonsoft.Json" Version="13.0.1" />
|
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
|
||||||
<PackageReference Include="Serilog.Sinks.AzureCosmosDB" Version="2.0.0" />
|
<PackageReference Include="Serilog.Sinks.AzureCosmosDB" Version="2.0.0" />
|
||||||
<PackageReference Include="Serilog.Sinks.SyslogMessages" Version="2.0.6" />
|
<PackageReference Include="Serilog.Sinks.SyslogMessages" Version="2.0.9" />
|
||||||
<PackageReference Include="AspNetCoreRateLimit" Version="4.0.2" />
|
<PackageReference Include="AspNetCoreRateLimit" Version="4.0.2" />
|
||||||
<PackageReference Include="Braintree" Version="5.19.0" />
|
<PackageReference Include="Braintree" Version="5.19.0" />
|
||||||
<PackageReference Include="Stripe.net" Version="40.0.0" />
|
<PackageReference Include="Stripe.net" Version="40.0.0" />
|
||||||
|
@ -3,7 +3,7 @@ using System.Security.Cryptography;
|
|||||||
using System.Security.Cryptography.X509Certificates;
|
using System.Security.Cryptography.X509Certificates;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
using Bit.Core.Settings;
|
using Bit.Core.Settings;
|
||||||
@ -13,12 +13,13 @@ namespace Bit.Core.Models.Business;
|
|||||||
public class OrganizationLicense : ILicense
|
public class OrganizationLicense : ILicense
|
||||||
{
|
{
|
||||||
public OrganizationLicense()
|
public OrganizationLicense()
|
||||||
{ }
|
{
|
||||||
|
}
|
||||||
|
|
||||||
public OrganizationLicense(Organization org, SubscriptionInfo subscriptionInfo, Guid installationId,
|
public OrganizationLicense(Organization org, SubscriptionInfo subscriptionInfo, Guid installationId,
|
||||||
ILicensingService licenseService, int? version = null)
|
ILicensingService licenseService, int? version = null)
|
||||||
{
|
{
|
||||||
Version = version.GetValueOrDefault(CURRENT_LICENSE_FILE_VERSION); // TODO: Remember to change the constant
|
Version = version.GetValueOrDefault(CurrentLicenseFileVersion); // TODO: Remember to change the constant
|
||||||
LicenseType = Enums.LicenseType.Organization;
|
LicenseType = Enums.LicenseType.Organization;
|
||||||
LicenseKey = org.LicenseKey;
|
LicenseKey = org.LicenseKey;
|
||||||
InstallationId = installationId;
|
InstallationId = installationId;
|
||||||
@ -66,7 +67,7 @@ public class OrganizationLicense : ILicense
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
else if (subscriptionInfo.Subscription.TrialEndDate.HasValue &&
|
else if (subscriptionInfo.Subscription.TrialEndDate.HasValue &&
|
||||||
subscriptionInfo.Subscription.TrialEndDate.Value > DateTime.UtcNow)
|
subscriptionInfo.Subscription.TrialEndDate.Value > DateTime.UtcNow)
|
||||||
{
|
{
|
||||||
Expires = Refresh = subscriptionInfo.Subscription.TrialEndDate.Value;
|
Expires = Refresh = subscriptionInfo.Subscription.TrialEndDate.Value;
|
||||||
Trial = true;
|
Trial = true;
|
||||||
@ -79,10 +80,11 @@ public class OrganizationLicense : ILicense
|
|||||||
Expires = Refresh = org.ExpirationDate.Value;
|
Expires = Refresh = org.ExpirationDate.Value;
|
||||||
}
|
}
|
||||||
else if (subscriptionInfo?.Subscription?.PeriodDuration != null &&
|
else if (subscriptionInfo?.Subscription?.PeriodDuration != null &&
|
||||||
subscriptionInfo.Subscription.PeriodDuration > TimeSpan.FromDays(180))
|
subscriptionInfo.Subscription.PeriodDuration > TimeSpan.FromDays(180))
|
||||||
{
|
{
|
||||||
Refresh = DateTime.UtcNow.AddDays(30);
|
Refresh = DateTime.UtcNow.AddDays(30);
|
||||||
Expires = subscriptionInfo.Subscription.PeriodEndDate?.AddDays(Constants.OrganizationSelfHostSubscriptionGracePeriodDays);
|
Expires = subscriptionInfo.Subscription.PeriodEndDate?.AddDays(Constants
|
||||||
|
.OrganizationSelfHostSubscriptionGracePeriodDays);
|
||||||
ExpirationWithoutGracePeriod = subscriptionInfo.Subscription.PeriodEndDate;
|
ExpirationWithoutGracePeriod = subscriptionInfo.Subscription.PeriodEndDate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -137,15 +139,15 @@ public class OrganizationLicense : ILicense
|
|||||||
public LicenseType? LicenseType { get; set; }
|
public LicenseType? LicenseType { get; set; }
|
||||||
public string Hash { get; set; }
|
public string Hash { get; set; }
|
||||||
public string Signature { get; set; }
|
public string Signature { get; set; }
|
||||||
[JsonIgnore]
|
[JsonIgnore] public byte[] SignatureBytes => Convert.FromBase64String(Signature);
|
||||||
public byte[] SignatureBytes => Convert.FromBase64String(Signature);
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Represents the current version of the license format. Should be updated whenever new fields are added.
|
/// Represents the current version of the license format. Should be updated whenever new fields are added.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <remarks>Intentionally set one version behind to allow self hosted users some time to update before
|
/// <remarks>Intentionally set one version behind to allow self hosted users some time to update before
|
||||||
/// getting out of date license errors</remarks>
|
/// getting out of date license errors</remarks>
|
||||||
private const int CURRENT_LICENSE_FILE_VERSION = 12;
|
public const int CurrentLicenseFileVersion = 12;
|
||||||
|
|
||||||
private bool ValidLicenseVersion
|
private bool ValidLicenseVersion
|
||||||
{
|
{
|
||||||
get => Version is >= 1 and <= 13;
|
get => Version is >= 1 and <= 13;
|
||||||
@ -235,14 +237,14 @@ public class OrganizationLicense : ILicense
|
|||||||
if (InstallationId != globalSettings.Installation.Id || !SelfHost)
|
if (InstallationId != globalSettings.Installation.Id || !SelfHost)
|
||||||
{
|
{
|
||||||
exception = "Invalid license. Make sure your license allows for on-premise " +
|
exception = "Invalid license. Make sure your license allows for on-premise " +
|
||||||
"hosting of organizations and that the installation id matches your current installation.";
|
"hosting of organizations and that the installation id matches your current installation.";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (LicenseType != null && LicenseType != Enums.LicenseType.Organization)
|
if (LicenseType != null && LicenseType != Enums.LicenseType.Organization)
|
||||||
{
|
{
|
||||||
exception = "Premium licenses cannot be applied to an organization. "
|
exception = "Premium licenses cannot be applied to an organization. "
|
||||||
+ "Upload this license from your personal account settings page.";
|
+ "Upload this license from your personal account settings page.";
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -331,9 +333,9 @@ public class OrganizationLicense : ILicense
|
|||||||
if (valid && Version >= 13)
|
if (valid && Version >= 13)
|
||||||
{
|
{
|
||||||
valid = organization.UseSecretsManager == UseSecretsManager &&
|
valid = organization.UseSecretsManager == UseSecretsManager &&
|
||||||
organization.UsePasswordManager == UsePasswordManager &&
|
organization.UsePasswordManager == UsePasswordManager &&
|
||||||
organization.SmSeats == SmSeats &&
|
organization.SmSeats == SmSeats &&
|
||||||
organization.SmServiceAccounts == SmServiceAccounts;
|
organization.SmServiceAccounts == SmServiceAccounts;
|
||||||
}
|
}
|
||||||
|
|
||||||
return valid;
|
return valid;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
|
|
||||||
namespace Bit.Core.Models.Business;
|
namespace Bit.Core.Models.Business;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
|
|
||||||
namespace Bit.Core.Models.Business;
|
namespace Bit.Core.Models.Business;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.StaticStore;
|
using Bit.Core.Models.StaticStore;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
|
|
||||||
namespace Bit.Core.Models.Business;
|
namespace Bit.Core.Models.Business;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
|
|
||||||
namespace Bit.Core.Models.Business;
|
namespace Bit.Core.Models.Business;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Stripe;
|
using Stripe;
|
||||||
using Plan = Bit.Core.Models.StaticStore.Plan;
|
using Plan = Bit.Core.Models.StaticStore.Plan;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.Models.Data.Organizations;
|
namespace Bit.Core.Models.Data.Organizations;
|
||||||
|
|
||||||
|
@ -49,4 +49,5 @@ public class OrganizationUserOrganizationDetails
|
|||||||
public int? SmSeats { get; set; }
|
public int? SmSeats { get; set; }
|
||||||
public int? SmServiceAccounts { get; set; }
|
public int? SmServiceAccounts { get; set; }
|
||||||
public bool LimitCollectionCreationDeletion { get; set; }
|
public bool LimitCollectionCreationDeletion { get; set; }
|
||||||
|
public bool AllowAdminAccessToAllCollectionItems { get; set; }
|
||||||
}
|
}
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
|
|
||||||
namespace Bit.Core.Models.Data.Organizations.OrganizationUsers;
|
namespace Bit.Core.Models.Data.Organizations.OrganizationUsers;
|
||||||
|
@ -145,6 +145,7 @@ public class SelfHostedOrganizationDetails : Organization
|
|||||||
MaxAutoscaleSeats = MaxAutoscaleSeats,
|
MaxAutoscaleSeats = MaxAutoscaleSeats,
|
||||||
OwnersNotifiedOfAutoscaling = OwnersNotifiedOfAutoscaling,
|
OwnersNotifiedOfAutoscaling = OwnersNotifiedOfAutoscaling,
|
||||||
LimitCollectionCreationDeletion = LimitCollectionCreationDeletion,
|
LimitCollectionCreationDeletion = LimitCollectionCreationDeletion,
|
||||||
|
AllowAdminAccessToAllCollectionItems = AllowAdminAccessToAllCollectionItems
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -17,7 +17,6 @@ public record Families2019Plan : Models.StaticStore.Plan
|
|||||||
|
|
||||||
HasSelfHost = true;
|
HasSelfHost = true;
|
||||||
HasTotp = true;
|
HasTotp = true;
|
||||||
UsersGetPremium = true;
|
|
||||||
|
|
||||||
UpgradeSortOrder = 1;
|
UpgradeSortOrder = 1;
|
||||||
DisplaySortOrder = 1;
|
DisplaySortOrder = 1;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
using Bit.Core.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
|
||||||
namespace Bit.Core.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
namespace Bit.Core.OrganizationFeatures.OrganizationLicenses.Interfaces;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Context;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Api.OrganizationLicenses;
|
using Bit.Core.Models.Api.OrganizationLicenses;
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#nullable enable
|
#nullable enable
|
||||||
|
|
||||||
using System.Text.Json;
|
using System.Text.Json;
|
||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Data.Organizations.OrganizationSponsorships;
|
using Bit.Core.Models.Data.Organizations.OrganizationSponsorships;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business.Tokenables;
|
using Bit.Core.Models.Business.Tokenables;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
using Bit.Core.Repositories;
|
using Bit.Core.Repositories;
|
||||||
using Bit.Core.Services;
|
using Bit.Core.Services;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
using Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
|
|
||||||
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
|
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Data.Organizations.OrganizationSponsorships;
|
using Bit.Core.Models.Data.Organizations.OrganizationSponsorships;
|
||||||
|
|
||||||
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
namespace Bit.Core.OrganizationFeatures.OrganizationSponsorships.FamiliesForEnterprise.Interfaces;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Bit.Core.AdminConsole.Enums.Provider;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.AdminConsole.Enums.Provider;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
|
||||||
namespace Bit.Core.OrganizationFeatures.OrganizationSubscriptions.Interface;
|
namespace Bit.Core.OrganizationFeatures.OrganizationSubscriptions.Interface;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
@ -1,10 +1,10 @@
|
|||||||
using Bit.Core.AdminConsole.Enums;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.AdminConsole.Enums;
|
||||||
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
using Bit.Core.AdminConsole.Models.OrganizationConnectionConfigs;
|
||||||
using Bit.Core.AdminConsole.Repositories;
|
using Bit.Core.AdminConsole.Repositories;
|
||||||
using Bit.Core.Auth.Enums;
|
using Bit.Core.Auth.Enums;
|
||||||
using Bit.Core.Auth.Repositories;
|
using Bit.Core.Auth.Repositories;
|
||||||
using Bit.Core.Context;
|
using Bit.Core.Context;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Enums;
|
using Bit.Core.Enums;
|
||||||
using Bit.Core.Exceptions;
|
using Bit.Core.Exceptions;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
|
|
||||||
namespace Bit.Core.Repositories;
|
namespace Bit.Core.Repositories;
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
using Bit.Core.AdminConsole.Entities.Provider;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.AdminConsole.Entities.Provider;
|
||||||
using Bit.Core.AdminConsole.Models.Data.Provider;
|
using Bit.Core.AdminConsole.Models.Data.Provider;
|
||||||
using Bit.Core.Entities;
|
|
||||||
using Bit.Core.Models.Data.Organizations;
|
using Bit.Core.Models.Data.Organizations;
|
||||||
|
|
||||||
namespace Bit.Core.Services;
|
namespace Bit.Core.Services;
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
using Bit.Core.Entities;
|
using Bit.Core.AdminConsole.Entities;
|
||||||
|
using Bit.Core.Entities;
|
||||||
using Bit.Core.Models.Business;
|
using Bit.Core.Models.Business;
|
||||||
|
|
||||||
namespace Bit.Core.Services;
|
namespace Bit.Core.Services;
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user