Files
BeWoPlaner/Service/Attributes/RequireWcfAuthorizationAttribute.cs
Rene Evertz 78360c91c8 Refactor: Attribute
Weniger Unklarheit bzgl Abfragen bei jeweiligen Service Endpunkten
2025-06-17 15:46:04 +02:00

49 lines
1.0 KiB
C#

using BS.Shared;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeWo.Service.Attributes
{
[AttributeUsage(AttributeTargets.Method | AttributeTargets.Class, Inherited = true)]
public class RequireWcfAuthorizationAttribute : Attribute
{
public RequireWcfAuthorizationAttribute(params UserRightType[] pPermissions)
{
Permissions = pPermissions;
}
public UserRightType[] Permissions { get; }
public bool HasPermission(IEnumerable<UserRightType> rights)
{
if (Permissions is null || Permissions.Length == 0)
return true;
foreach (var right in rights)
{
if (HasPermission(right))
return true;
}
return false;
}
public bool HasPermission(UserRightType right)
{
if (Permissions is null || Permissions.Length == 0)
return true;
for (var i = 0; i < Permissions.Length; i++)
{
var permission = Permissions[i];
if (right == permission) return true;
}
return false;
}
}
}