ComplianceServer/oldcode/Core.Web/WebHelper/UserRight/UserRightsHelper.cs

117 lines
3.7 KiB
C#

using CRM.Core.BLL.Util;
using System;
using System.Collections.Generic;
using System.Web;
using WX.CRM.Common;
namespace Core.Web.WebHelper.UserRight
{
public class UserRightsHelper
{
public static string[] getUserRights()
{
string[] userRights = { };
if (HttpContext.Current.Request.IsAuthenticated)
{
string userId = HttpContext.Current.User.Identity.Name;
string cacheKey = "Cache_UserInfo_" + userId;
if (CacheHelper.Exists(cacheKey))
{
userRights = CacheHelper.Get<string[]>(cacheKey);
}
else
{
LoginHelper login = new LoginHelper();
string[] userrights = login.getRights(Convert.ToInt32(userId));
string userInfoCache = "Cache_UserInfo_" + userId.ToString();
CacheHelper.Set<string[]>(cacheKey, userrights);
userRights = userrights;
// FormsAuthentication.SignOut();
}
}
return userRights ?? new string[] { "-1" };
}
public static bool hasRight(string code)
{
var right = getUserRights();
foreach (var item in right)
{
if (item.StartsWith(code+"|"))
{
return true;
}
}
return false;
}
public static decimal[] InnerGroup(int[] roleId, decimal[] groupId)
{
decimal[] groups = { 0 };
string roleCodes = new CACHE_BL().Get_RoleCodes(roleId);
if (roleCodes.IndexOf("[GLY]") > -1 || roleCodes.IndexOf("[ZJ]") > -1 || roleCodes.IndexOf("ZJZL") > -1 || roleCodes.IndexOf("[BMZG]") > -1)
{
groups = null;
}
else
{
if (groupId != null)
{
groups = groupId;
}
}
return groups;
}
public static string[] getUserRightsCodes()
{
string[] st = getUserRights();
List<string> wocha = new List<string>();
foreach (var item in st)
{
wocha.Add(item.Split('|')[0]);
}
return wocha.ToArray();
}
public static int getRightButtonId(string rightcode)
{
string[] rightcodes = UserRightsHelper.getUserRights();
int butonid = 0;
foreach (string code in rightcodes)
{
if (code.IndexOf(string.Format("{0}|", rightcode)) > -1)
{
string[] codeAndBtnId = code.Split('|');
butonid = Convert.ToInt32(codeAndBtnId[1]);
break;
}
}
return butonid;
}
public static string GetUserButtonSite(string rightcode, int buttonid)
{
var site = "";
if (HttpContext.Current.Request.IsAuthenticated)
{
string userId = HttpContext.Current.User.Identity.Name;
string cacheKey = $"Cache_UserInfo_{userId}_{rightcode}_{buttonid}";
if (CacheHelper.Exists(cacheKey))
{
site = CacheHelper.Get<string>(cacheKey);
}
else
{
LoginHelper login = new LoginHelper();
site = login.GetUserButtonSite(rightcode, buttonid);
CacheHelper.Set<string>(cacheKey, site);
// FormsAuthentication.SignOut();
}
}
return site;
}
}
}