// *********************************************************************** // Assembly : OpenAuth.Mvc // Author : 李玉宝 // Created : 06-08-2018 // // Last Modified By : 李玉宝 // Last Modified On : 07-04-2018 // *********************************************************************** // // Copyright (c) http://www.openauth.net.cn. All rights reserved. // // // 获取登录用户的全部信息 // 所有和当前登录用户相关的操作都在这里 // // *********************************************************************** using System; using System.Collections.Generic; using System.Linq; using Infrastructure; using Infrastructure.Helpers; using OpenAuth.App; using OpenAuth.App.Interface; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.Mvc.Controllers { public class UserSessionController : BaseController { private readonly AuthStrategyContext _authStrategyContext; public UserSessionController(IAuth authUtil) : base(authUtil) { _authStrategyContext = _authUtil.GetCurrentUser(); } /// /// 获取用户资料 /// /// public string GetUserProfile() { var resp = new Response(); try { resp.Result = _authStrategyContext.User.MapTo(); } catch (Exception e) { resp.Code = 500; resp.Message = e.Message; } return JsonHelper.Instance.Serialize(resp); } public string GetUserName() { return _authUtil.GetUserName(); } /// /// 获取登录用户可访问的所有模块,及模块的操作菜单 /// public string GetModulesTree() { var moduleTree = _authStrategyContext.Modules.GenerateTree(u => u.Id, u => u.ParentId); return JsonHelper.Instance.Serialize(moduleTree); } /// /// datatable结构的模块列表 /// /// /// public string GetModulesTable(string pId) { string cascadeId = ".0."; if (!string.IsNullOrEmpty(pId)) { var obj = _authStrategyContext.Modules.SingleOrDefault(u => u.Id == pId); if (obj == null) throw new Exception("未能找到指定对象信息"); cascadeId = obj.CascadeId; } var query = _authStrategyContext.Modules.Where(u => u.CascadeId.Contains(cascadeId)); return JsonHelper.Instance.Serialize(new TableData { data = query.ToList(), count = query.Count(), }); } /// /// 获取用户可访问的模块列表 /// public string GetModules() { var resp = new Response>(); try { resp.Result = _authStrategyContext.Modules; } catch (Exception e) { resp.Code = 500; resp.Message = e.Message; } return JsonHelper.Instance.Serialize(resp); } /// /// 获取登录用户可访问的所有部门 /// 用于树状结构 /// public string GetOrgs() { var resp = new Response>(); try { resp.Result = _authStrategyContext.Orgs; } catch (Exception e) { resp.Code = 500; resp.Message = e.Message; } return JsonHelper.Instance.Serialize(resp); } /// /// 获取当前登录用户可访问的字段 /// /// 模块的Code,如Category /// public string GetProperties(string moduleCode) { try { var list = _authStrategyContext.GetProperties(moduleCode); return JsonHelper.Instance.Serialize(new TableData { data = list, count = list.Count(), }); } catch (Exception ex) { return JsonHelper.Instance.Serialize(new TableData { msg =ex.Message, code = 500, }); } } /// /// 加载机构的全部下级机构 /// /// 机构ID /// public string GetSubOrgs(string orgId) { string cascadeId = ".0."; if (!string.IsNullOrEmpty(orgId)) { var org = _authStrategyContext.Orgs.SingleOrDefault(u => u.Id == orgId); if (org == null) { return JsonHelper.Instance.Serialize(new TableData { msg ="未找到指定的节点", code = 500, }); } cascadeId = org.CascadeId; } var query = _authStrategyContext.Orgs.Where(u => u.CascadeId.Contains(cascadeId)); return JsonHelper.Instance.Serialize(new TableData { data = query.ToList(), count = query.Count(), }); } } }