/// <summary> /// 检查权限 /// </summary> /// <param name="objectid"></param> /// <param name="operationType"></param> /// <returns></returns> private static bool CheckAccess(string objectid, OperationType operationType, string userId) { var data = UserPrivilegesCache.GetUserPrivileges(string.IsNullOrEmpty(userId) ? UserIdentityUtil.GetCurrentUser()?.Id : userId) .Where(item => item.objectid == objectid) .FirstOrDefault(); return(data != null && (data.privilege & (int)operationType) == (int)operationType); }
public static IEnumerable <sys_menu> Filter(this IEnumerable <sys_menu> sysMenus) { var privileges = UserPrivilegesCache.GetUserPrivileges(UserIdentityUtil.GetCurrentUserId()).Where(item => item.object_type == nameof(sys_menu)); return(sysMenus.Where(item => { var data = privileges.FirstOrDefault(e => e.objectid == item.sys_menuId); return data != null && data.privilege > 0; })); }