using System; using System.Linq; using Infrastructure; using OpenAuth.App.Response; using OpenAuth.App.SSO; namespace OpenAuth.Mvc.Controllers { /// /// 获取登录用户的全部信息 /// 所有和当前登录用户相关的操作都在这里 /// public class UserSessionController : BaseController { UserWithAccessedCtrls user = AuthUtil.GetCurrentUser(); /// /// 获取登录用户可访问的所有模块,及模块的操作菜单 /// public string GetModulesTree() { var moduleTree = user.Modules.GenerateTree(u => u.Id, u => u.ParentId); return JsonHelper.Instance.Serialize(moduleTree); } /// /// datatable结构的模块列表 /// /// /// public string GetModules(string pId) { string cascadeId = ".0."; if (!string.IsNullOrEmpty(pId)) { var obj = user.Modules.SingleOrDefault(u => u.Id == pId); if (obj == null) throw new Exception("未能找到指定对象信息"); cascadeId = obj.CascadeId; } var query = user.Modules.Where(u => u.CascadeId.Contains(cascadeId)); return JsonHelper.Instance.Serialize(new TableData { data = query.ToList(), count = query.Count(), }); } /// /// 获取用户可访问的模块列表 /// public string QueryModuleList() { var orgs = user.Modules.MapToList(); return JsonHelper.Instance.Serialize(orgs); } /// /// 获取登录用户可访问的所有部门 /// 用于树状结构 /// public string GetOrgs() { return JsonHelper.Instance.Serialize(user.Orgs); } /// /// 加载机构的全部下级机构 /// /// 机构ID /// public string GetSubOrgs(string orgId) { string cascadeId = ".0."; if (!string.IsNullOrEmpty(orgId)) { var org = user.Orgs.SingleOrDefault(u => u.Id == orgId); if (org == null) { return JsonHelper.Instance.Serialize(new TableData { msg ="未找到指定的节点", code = 500, }); } cascadeId = org.CascadeId; } var query = user.Orgs.Where(u => u.CascadeId.Contains(cascadeId)); return JsonHelper.Instance.Serialize(new TableData { data = query.ToList(), count = query.Count(), }); } //获取当前页面菜单 public string GetButtonns() { var module = user.Modules.Single(u => u.Name.Contains("")); return JsonHelper.Instance.Serialize(module.Elements); } } }