AuthorizeBLL.cs 5.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. using Lottomat.Application.Code;
  2. using Lottomat.Application.Entity.AuthorizeManage;
  3. using Lottomat.Application.Entity.AuthorizeManage.ViewModel;
  4. using Lottomat.Application.IService.AuthorizeManage;
  5. using Lottomat.Application.Service.AuthorizeManage;
  6. using Lottomat.Cache.Factory;
  7. using System;
  8. using System.Collections.Generic;
  9. using System.Linq;
  10. using System.Text;
  11. using System.Threading.Tasks;
  12. using Lottomat.Util;
  13. using Lottomat.Utils.Date;
  14. namespace Lottomat.Application.Busines.AuthorizeManage
  15. {
  16. /// <summary>
  17. /// 版 本
  18. /// Copyright (c) 2016-2017
  19. /// 创建人:赵轶
  20. /// 日 期:2015.12.5 22:35
  21. /// 描 述:授权认证
  22. /// </summary>
  23. public class AuthorizeBLL
  24. {
  25. private IAuthorizeService service = new AuthorizeService();
  26. private ModuleBLL moduleBLL = new ModuleBLL();
  27. private ModuleButtonBLL moduleButtonBLL = new ModuleButtonBLL();
  28. private ModuleColumnBLL moduleColumnBLL = new ModuleColumnBLL();
  29. /// <summary>
  30. /// 获取授权功能
  31. /// </summary>
  32. /// <param name="userId">用户Id</param>
  33. /// <returns></returns>
  34. public IEnumerable<ModuleEntity> GetModuleList(string userId)
  35. {
  36. if (OperatorProvider.Provider.Current().IsSystem)
  37. {
  38. return moduleBLL.GetList().FindAll(t => t.EnabledMark.Equals(1));
  39. }
  40. else
  41. {
  42. return service.GetModuleList(userId);
  43. }
  44. }
  45. /// <summary>
  46. /// 获取授权功能按钮
  47. /// </summary>
  48. /// <param name="userId">用户Id</param>
  49. /// <returns></returns>
  50. public IEnumerable<ModuleButtonEntity> GetModuleButtonList(string userId)
  51. {
  52. if (OperatorProvider.Provider.Current().IsSystem)
  53. {
  54. return moduleButtonBLL.GetList();
  55. }
  56. else
  57. {
  58. return service.GetModuleButtonList(userId);
  59. }
  60. }
  61. /// <summary>
  62. /// 获取授权功能视图
  63. /// </summary>
  64. /// <param name="userId">用户Id</param>
  65. /// <returns></returns>
  66. public IEnumerable<ModuleColumnEntity> GetModuleColumnList(string userId)
  67. {
  68. if (OperatorProvider.Provider.Current().IsSystem)
  69. {
  70. return moduleColumnBLL.GetList();
  71. }
  72. else
  73. {
  74. return service.GetModuleColumnList(userId);
  75. }
  76. }
  77. /// <summary>
  78. /// 获取授权功能Url、操作Url
  79. /// </summary>
  80. /// <param name="userId">用户Id</param>
  81. /// <returns></returns>
  82. public IEnumerable<AuthorizeUrlModel> GetUrlList(string userId)
  83. {
  84. return service.GetUrlList(userId);
  85. }
  86. /// <summary>
  87. /// Action执行权限认证
  88. /// </summary>
  89. /// <param name="userId">用户Id</param>
  90. /// <param name="moduleId">模块Id</param>
  91. /// <param name="action">请求地址</param>
  92. /// <returns></returns>
  93. public bool ActionAuthorize(string userId, string moduleId, string action)
  94. {
  95. List<AuthorizeUrlModel> authorizeUrlList = new List<AuthorizeUrlModel>();
  96. var cacheList = CacheFactory.Cache().GetCache<List<AuthorizeUrlModel>>("AuthorizeUrl_" + userId);
  97. if (cacheList == null)
  98. {
  99. authorizeUrlList = this.GetUrlList(userId).ToList();
  100. CacheFactory.Cache().WriteCache(authorizeUrlList, "AuthorizeUrl_" + userId, DateTimeHelper.Now.AddMinutes(1));
  101. }
  102. else
  103. {
  104. authorizeUrlList = cacheList;
  105. }
  106. authorizeUrlList = authorizeUrlList.FindAll(t => t.ModuleId.Equals(moduleId));
  107. foreach (AuthorizeUrlModel item in authorizeUrlList)
  108. {
  109. if (!string.IsNullOrEmpty(item.UrlAddress))
  110. {
  111. string[] url = item.UrlAddress.Split('?');
  112. if (item.ModuleId == moduleId && url[0] == action)
  113. {
  114. return true;
  115. }
  116. }
  117. }
  118. return false;
  119. }
  120. /// <summary>
  121. /// 获得权限范围用户ID
  122. /// </summary>
  123. /// <param name="operators">当前登陆用户信息</param>
  124. /// <param name="isWrite">可写入</param>
  125. /// <returns></returns>
  126. public string GetDataAuthorUserId(Operator operators, bool isWrite = false)
  127. {
  128. return service.GetDataAuthorUserId(operators, isWrite);
  129. }
  130. /// <summary>
  131. /// 获得可读数据权限范围SQL
  132. /// </summary>
  133. /// <param name="operators">当前登陆用户信息</param>
  134. /// <param name="isWrite">可写入</param>
  135. /// <returns></returns>
  136. public string GetDataAuthor(Operator operators, bool isWrite = false)
  137. {
  138. return service.GetDataAuthor(operators, isWrite);
  139. }
  140. }
  141. }