| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687 |
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using Abp.Authorization;
- using Abp.Dependency;
- using Abp.Runtime.Session;
- using Abp.Web.Authorization;
- using IwbZero.Authorization.Permissions;
- namespace ShwasherSys.ScriptManager
- {
- public class IwbAuthorizationScriptManager : IAuthorizationScriptManager, ITransientDependency
- {
- public IAbpSession AbpSession { get; set; }
- private readonly IIwbPermissionManager _permissionManager;
- public IPermissionChecker PermissionChecker { get; set; }
- public IwbAuthorizationScriptManager(IIwbPermissionManager permissionManager)
- {
- AbpSession = NullAbpSession.Instance;
- PermissionChecker = NullPermissionChecker.Instance;
- _permissionManager = permissionManager;
- }
- public async Task<string> GetScriptAsync()
- {
- var allPermissionNames = _permissionManager.GetAllPermissions(false).Select(p => p.Name).ToList();
- var grantedPermissionNames = new List<string>();
- if (AbpSession.UserId.HasValue)
- {
- foreach (var permissionName in allPermissionNames)
- {
- if (await PermissionChecker.IsGrantedAsync(permissionName))
- {
- grantedPermissionNames.Add(permissionName);
- }
- }
- }
- var script = new StringBuilder();
- script.AppendLine("(function(){");
- script.AppendLine();
- script.AppendLine(" abp.auth = abp.auth || {};");
- script.AppendLine();
- AppendPermissionList(script, "allPermissions", allPermissionNames);
- script.AppendLine();
- AppendPermissionList(script, "grantedPermissions", grantedPermissionNames);
- script.AppendLine();
- script.Append("})();");
- return script.ToString();
- }
- private static void AppendPermissionList(StringBuilder script, string name, IReadOnlyList<string> permissions)
- {
- script.AppendLine(" abp.auth." + name + " = {");
- for (var i = 0; i < permissions.Count; i++)
- {
- var permission = permissions[i];
- if (i < permissions.Count - 1)
- {
- script.AppendLine(" '" + permission + "': true,");
- }
- else
- {
- script.AppendLine(" '" + permission + "': true");
- }
- }
- script.AppendLine(" };");
- }
- }
- }
|