Merge branch 'release/16.0' and enable package validation
This commit is contained in:
@@ -40,8 +40,8 @@
|
||||
<!-- Package Validation -->
|
||||
<PropertyGroup>
|
||||
<GenerateCompatibilitySuppressionFile>false</GenerateCompatibilitySuppressionFile>
|
||||
<EnablePackageValidation>false</EnablePackageValidation>
|
||||
<PackageValidationBaselineVersion>15.0.0</PackageValidationBaselineVersion>
|
||||
<EnablePackageValidation>true</EnablePackageValidation>
|
||||
<PackageValidationBaselineVersion>16.0.0</PackageValidationBaselineVersion>
|
||||
<EnableStrictModeForCompatibleFrameworksInPackage>true</EnableStrictModeForCompatibleFrameworksInPackage>
|
||||
<EnableStrictModeForCompatibleTfms>true</EnableStrictModeForCompatibleTfms>
|
||||
</PropertyGroup>
|
||||
|
||||
@@ -57,10 +57,17 @@ internal class ExternalLoginRepository : EntityRepositoryBase<int, IIdentityUser
|
||||
Database.Delete<ExternalLoginDto>("WHERE userOrMemberKey=@userOrMemberKey", new { userOrMemberKey });
|
||||
|
||||
/// <inheritdoc />
|
||||
public void DeleteUserLoginsForRemovedProviders(IEnumerable<string> currentLoginProviders) =>
|
||||
Database.Execute(Sql()
|
||||
.Delete<ExternalLoginDto>()
|
||||
.WhereNotIn<ExternalLoginDto>(x => x.LoginProvider, currentLoginProviders));
|
||||
public void DeleteUserLoginsForRemovedProviders(IEnumerable<string> currentLoginProviders)
|
||||
{
|
||||
Sql<ISqlContext> sql = Sql()
|
||||
.Select<ExternalLoginDto>(x => x.Id)
|
||||
.From<ExternalLoginDto>()
|
||||
.Where<ExternalLoginDto>(x => !x.LoginProvider.StartsWith(Constants.Security.MemberExternalAuthenticationTypePrefix)) // Only remove external logins relating to backoffice users, not members.
|
||||
.WhereNotIn<ExternalLoginDto>(x => x.LoginProvider, currentLoginProviders);
|
||||
|
||||
var toDelete = Database.Query<ExternalLoginDto>(sql).Select(x => x.Id).ToList();
|
||||
DeleteExternalLogins(toDelete);
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Save(Guid userOrMemberKey, IEnumerable<IExternalLogin> logins)
|
||||
@@ -100,13 +107,7 @@ internal class ExternalLoginRepository : EntityRepositoryBase<int, IIdentityUser
|
||||
}
|
||||
|
||||
// do the deletes, updates and inserts
|
||||
if (toDelete.Count > 0)
|
||||
{
|
||||
// Before we can remove the external login, we must remove the external login tokens associated with that external login,
|
||||
// otherwise we'll get foreign key constraint errors
|
||||
Database.DeleteMany<ExternalLoginTokenDto>().Where(x => toDelete.Contains(x.ExternalLoginId)).Execute();
|
||||
Database.DeleteMany<ExternalLoginDto>().Where(x => toDelete.Contains(x.Id)).Execute();
|
||||
}
|
||||
DeleteExternalLogins(toDelete);
|
||||
|
||||
foreach (KeyValuePair<int, IExternalLogin> u in toUpdate)
|
||||
{
|
||||
@@ -116,6 +117,19 @@ internal class ExternalLoginRepository : EntityRepositoryBase<int, IIdentityUser
|
||||
Database.InsertBulk(toInsert.Select(i => ExternalLoginFactory.BuildDto(userOrMemberKey, i)));
|
||||
}
|
||||
|
||||
private void DeleteExternalLogins(List<int> externalLoginIds)
|
||||
{
|
||||
if (externalLoginIds.Count == 0)
|
||||
{
|
||||
return;
|
||||
}
|
||||
|
||||
// Before we can remove the external login, we must remove the external login tokens associated with that external login,
|
||||
// otherwise we'll get foreign key constraint errors
|
||||
Database.DeleteMany<ExternalLoginTokenDto>().Where(x => externalLoginIds.Contains(x.ExternalLoginId)).Execute();
|
||||
Database.DeleteMany<ExternalLoginDto>().Where(x => externalLoginIds.Contains(x.Id)).Execute();
|
||||
}
|
||||
|
||||
/// <inheritdoc />
|
||||
public void Save(Guid userOrMemberKey, IEnumerable<IExternalLoginToken> tokens)
|
||||
{
|
||||
|
||||
964
src/Umbraco.Web.UI.Client/package-lock.json
generated
964
src/Umbraco.Web.UI.Client/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -215,8 +215,8 @@
|
||||
"@tiptap/extension-underline": "2.11.7",
|
||||
"@tiptap/pm": "2.11.7",
|
||||
"@tiptap/starter-kit": "2.11.7",
|
||||
"@umbraco-ui/uui": "1.14.0-rc.4",
|
||||
"@umbraco-ui/uui-css": "1.14.0-rc.4",
|
||||
"@umbraco-ui/uui": "1.14.0",
|
||||
"@umbraco-ui/uui-css": "1.14.0",
|
||||
"dompurify": "^3.2.5",
|
||||
"element-internals-polyfill": "^3.0.2",
|
||||
"lit": "^3.3.0",
|
||||
@@ -288,4 +288,4 @@
|
||||
"access": "public",
|
||||
"registry": "https://registry.npmjs.org/"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -34,7 +34,7 @@
|
||||
"cases": [
|
||||
{
|
||||
"condition": "(StarterKit == 'Umbraco.TheStarterKit' && (UmbracoRelease == 'Latest' || UmbracoRelease == 'Custom'))",
|
||||
"value": "16.0.0-rc"
|
||||
"value": "16.0.0"
|
||||
},
|
||||
{
|
||||
"condition": "(StarterKit == 'Umbraco.TheStarterKit' && UmbracoRelease == 'LTS')",
|
||||
|
||||
Reference in New Issue
Block a user