ReportsRoleHelper.cs 825 Bytes
using Volo.Abp.Users;

namespace FoodLabeling.Application.Helpers;

/// <summary>
/// Reports 模块角色判断(与 JWT / CurrentUser.Roles 中的角色码一致)
/// </summary>
public static class ReportsRoleHelper
{
    /// <summary>
    /// 是否为管理员:任一角色码等于 <c>admin</c>(忽略大小写)则视为可查看全部打印数据。
    /// </summary>
    public static bool IsAdminRole(ICurrentUser currentUser)
    {
        if (currentUser.Roles is null)
        {
            return false;
        }

        foreach (var r in currentUser.Roles)
        {
            if (!string.IsNullOrWhiteSpace(r) &&
                string.Equals(r.Trim(), "admin", StringComparison.OrdinalIgnoreCase))
            {
                return true;
            }
        }

        return false;
    }
}