Start work on integration tests
This commit is contained in:
@@ -9,10 +9,10 @@ public static class ReadOnlyUserGroupExtensions
|
||||
/// Checks if a readonly user group has access to a given language
|
||||
/// </summary>
|
||||
/// <remarks> If allowed languages on the user group is empty, it means that we have access to all languages, and thus have access to the language</remarks>
|
||||
public static bool HasAccessToLanguage(this IReadOnlyUserGroup readOnlyUserGroup, Language? language)
|
||||
public static bool HasAccessToLanguage(this IReadOnlyUserGroup readOnlyUserGroup, int languageId)
|
||||
{
|
||||
|
||||
if (readOnlyUserGroup.AllowedLanguages.Any() is false || (language is not null && readOnlyUserGroup.AllowedLanguages.Contains(language.Id)))
|
||||
if (readOnlyUserGroup.AllowedLanguages.Any() is false || readOnlyUserGroup.AllowedLanguages.Contains(languageId))
|
||||
{
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -235,7 +235,7 @@ public class ContentVariantMapper
|
||||
}
|
||||
}
|
||||
|
||||
if (group.HasAccessToLanguage(variantDisplay.Language))
|
||||
if (variantDisplay.Language is not null && group.HasAccessToLanguage(variantDisplay.Language.Id))
|
||||
{
|
||||
hasAccess = true;
|
||||
break;
|
||||
|
||||
@@ -0,0 +1,30 @@
|
||||
using NUnit.Framework;
|
||||
using Umbraco.Cms.Core.Extensions;
|
||||
using Umbraco.Cms.Core.Models;
|
||||
using Umbraco.Cms.Core.Models.Membership;
|
||||
using Umbraco.Cms.Core.Services;
|
||||
using Umbraco.Cms.Core.Strings;
|
||||
using Umbraco.Cms.Tests.Common.Testing;
|
||||
using Umbraco.Cms.Tests.Integration.Testing;
|
||||
|
||||
namespace Umbraco.Cms.Tests.Integration.Umbraco.Core.Extensions;
|
||||
|
||||
[TestFixture]
|
||||
[UmbracoTest(Database = UmbracoTestOptions.Database.NewSchemaPerFixture)]
|
||||
public class ReadOnlyUserGroupExtensionsTests : UmbracoIntegrationTest
|
||||
{
|
||||
private ILocalizationService LocalizationService => GetRequiredService<ILocalizationService>();
|
||||
|
||||
private IShortStringHelper ShortStringHelper => GetRequiredService<IShortStringHelper>();
|
||||
|
||||
[Test]
|
||||
public void CanIfUserHasAccessToLanguage()
|
||||
{
|
||||
var swe = new Language("sv-SE", "Swedish");
|
||||
LocalizationService.Save(swe);
|
||||
var userGrp = new UserGroup(ShortStringHelper);
|
||||
userGrp.AddAllowedLanguage(swe.Id);
|
||||
|
||||
Assert.IsTrue(userGrp.HasAccessToLanguage(swe.Id));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user