using Infrastructure; using OpenAuth.App; using OpenAuth.App.SSO; using OpenAuth.Mvc.Models; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Web.Mvc; using OpenAuth.App.Response; using OpenAuth.Repository.Domain; namespace OpenAuth.Mvc.Controllers { public class ModuleManagerController : BaseController { public ModuleManagerApp App { get; set; } // GET: /ModuleManager/ [Authenticate] public ActionResult Index() { return View(); } [Authenticate] public ActionResult Assign() { return View(); } /// /// 加载特定用户的模块 /// /// The user identifier. /// System.String. public string LoadForUser(string firstId) { var modules = App.LoadForUser(firstId); return JsonHelper.Instance.Serialize(modules); } /// /// 根据某用户ID获取可访问某模块的菜单项 /// /// public string LoadMenusForUser(string moduleId, string firstId) { var menus = App.LoadMenusForUser(moduleId, firstId); return JsonHelper.Instance.Serialize(menus); } /// /// 加载角色模块 /// /// The role identifier. /// System.String. public string LoadForRole(string firstId) { var modules = App.LoadForRole(firstId); return JsonHelper.Instance.Serialize(modules); } /// /// 根据某角色ID获取可访问某模块的菜单项 /// /// public string LoadMenusForRole(string moduleId, string firstId) { var menus = App.LoadMenusForRole(moduleId, firstId); return JsonHelper.Instance.Serialize(menus); } /// /// 获取发起页面的菜单权限 /// /// System.String. public string LoadAuthorizedMenus(string modulecode) { var user = AuthUtil.GetCurrentUser(); var module = user.Modules.First(u =>u.Code == modulecode); if (module != null) { return JsonHelper.Instance.Serialize(module.Elements); } return ""; } #region 添加编辑模块 //添加模块 [HttpPost] [ValidateInput(false)] public string Add(Module model) { try { App.Add(model); } catch (Exception ex) { Result.Code = 500; Result.Message = ex.Message; } return JsonHelper.Instance.Serialize(Result); } //修改模块 [HttpPost] [ValidateInput(false)] public string Update(Module model) { try { App.Update(model); } catch (Exception ex) { Result.Code = 500; Result.Message = ex.Message; } return JsonHelper.Instance.Serialize(Result); } [HttpPost] public string Delete(string[] ids) { try { App.Delete(ids); } catch (Exception e) { Result.Code = 500; Result.Message = e.Message; } return JsonHelper.Instance.Serialize(Result); } #endregion 添加编辑模块 /// /// 加载当前用户可访问模块的菜单 /// /// The module identifier. /// System.String. public string LoadMenus(string moduleId) { var user = AuthUtil.GetCurrentUser(); var module = user.Modules.Single(u => u.Id == moduleId); var data = new TableData { data = module.Elements, count = module.Elements.Count(), }; return JsonHelper.Instance.Serialize(data); } //添加菜单 [HttpPost] [ValidateInput(false)] public string AddMenu(ModuleElement model) { try { App.AddMenu(model); } catch (Exception ex) { Result.Code = 500; Result.Message = ex.Message; } return JsonHelper.Instance.Serialize(Result); } //添加菜单 [HttpPost] [ValidateInput(false)] public string UpdateMenu(ModuleElement model) { try { App.UpdateMenu(model); } catch (Exception ex) { Result.Code = 500; Result.Message = ex.Message; } return JsonHelper.Instance.Serialize(Result); } /// /// 删除菜单 /// [HttpPost] public string DelMenu(params string[] ids) { try { App.DelMenu(ids); } catch (Exception e) { Result.Code = 500; Result.Message = e.Message; } return JsonHelper.Instance.Serialize(Result); } } }