mirror of https://github.com/Squidex/squidex.git
16 changed files with 143 additions and 30 deletions
@ -0,0 +1,17 @@ |
|||||
|
// ==========================================================================
|
||||
|
// AppClientPermission.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Core.Apps |
||||
|
{ |
||||
|
public enum AppClientPermission |
||||
|
{ |
||||
|
Developer, |
||||
|
Editor, |
||||
|
Reader |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,17 @@ |
|||||
|
// ==========================================================================
|
||||
|
// AppContributorPermission.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Core.Apps |
||||
|
{ |
||||
|
public enum AppContributorPermission |
||||
|
{ |
||||
|
Owner, |
||||
|
Developer, |
||||
|
Editor |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,30 @@ |
|||||
|
// ==========================================================================
|
||||
|
// RoleExtension.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System; |
||||
|
using Squidex.Infrastructure; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Core.Apps |
||||
|
{ |
||||
|
public static class RoleExtension |
||||
|
{ |
||||
|
public static AppPermission ToAppPermission(this AppClientPermission clientPermission) |
||||
|
{ |
||||
|
Guard.Enum(clientPermission, nameof(clientPermission)); |
||||
|
|
||||
|
return (AppPermission)Enum.Parse(typeof(AppPermission), clientPermission.ToString()); |
||||
|
} |
||||
|
|
||||
|
public static AppPermission ToAppPermission(this AppContributorPermission contributorPermission) |
||||
|
{ |
||||
|
Guard.Enum(contributorPermission, nameof(contributorPermission)); |
||||
|
|
||||
|
return (AppPermission)Enum.Parse(typeof(AppPermission), contributorPermission.ToString()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
@ -0,0 +1,44 @@ |
|||||
|
// ==========================================================================
|
||||
|
// RoleExtensionTests.cs
|
||||
|
// Squidex Headless CMS
|
||||
|
// ==========================================================================
|
||||
|
// Copyright (c) Squidex Group
|
||||
|
// All rights reserved.
|
||||
|
// ==========================================================================
|
||||
|
|
||||
|
using System; |
||||
|
using Xunit; |
||||
|
|
||||
|
namespace Squidex.Domain.Apps.Core.Apps |
||||
|
{ |
||||
|
public class RoleExtensionTests |
||||
|
{ |
||||
|
[Fact] |
||||
|
public void Should_convert_from_client_permission_to_app_permission() |
||||
|
{ |
||||
|
Assert.Equal(AppPermission.Developer, AppClientPermission.Developer.ToAppPermission()); |
||||
|
Assert.Equal(AppPermission.Editor, AppClientPermission.Editor.ToAppPermission()); |
||||
|
Assert.Equal(AppPermission.Reader, AppClientPermission.Reader.ToAppPermission()); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Should_throw_when_converting_from_invalid_client_permission() |
||||
|
{ |
||||
|
Assert.Throws<ArgumentException>(() => ((AppClientPermission)10).ToAppPermission()); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Should_convert_from_contributor_permission_to_app_permission() |
||||
|
{ |
||||
|
Assert.Equal(AppPermission.Developer, AppContributorPermission.Developer.ToAppPermission()); |
||||
|
Assert.Equal(AppPermission.Editor, AppContributorPermission.Editor.ToAppPermission()); |
||||
|
Assert.Equal(AppPermission.Owner, AppContributorPermission.Owner.ToAppPermission()); |
||||
|
} |
||||
|
|
||||
|
[Fact] |
||||
|
public void Should_throw_when_converting_from_invalid_contributor_permission() |
||||
|
{ |
||||
|
Assert.Throws<ArgumentException>(() => ((AppContributorPermission) 10).ToAppPermission()); |
||||
|
} |
||||
|
} |
||||
|
} |
||||
Loading…
Reference in new issue