check issue #7

修复添加按钮时不输入描述时异常BUG
This commit is contained in:
yubaolee 2016-01-14 17:30:29 +08:00
parent fab42c067a
commit ca609fb9be
3 changed files with 31 additions and 25 deletions

View File

@ -42,11 +42,11 @@ namespace OpenAuth.App
model.CopyTo(newbtn);
if (model.Id == 0)
{
_repository.Add(model);
_repository.Add(newbtn);
}
else
{
_repository.Update(model);
_repository.Update(newbtn);
}
}

View File

@ -9,7 +9,11 @@
// <copyright file="BaseController.cs" company="">
// Copyright (c) . All rights reserved.
// </copyright>
// <summary>基础控制器,设置权限</summary>
// <summary>
// 基础控制器
// 继承该控制器可以防止未登录查看
// 继承该控制器后如果想访问控制器中存在但模块配置里面没有的ActionHome/Git请使用AnonymousAttribute
// </summary>
// ***********************************************************************
using Infrastructure.Helper;
@ -35,26 +39,22 @@ namespace OpenAuth.Mvc.Controllers
return;
}
var controllername = Request.RequestContext.RouteData.Values["controller"].ToString().ToLower();
var actionname = filterContext.ActionDescriptor.ActionName;
var function = this.GetType().GetMethods().FirstOrDefault(u => u.Name == actionname);
if (function == null)
throw new Exception("未能找到Action");
if (controllername != "home") //主页控制器无需权限控制
var anonymous = function.GetCustomAttribute(typeof(AnonymousAttribute));
var module = loginUser.Modules.FirstOrDefault(u => u.Url.ToLower().Contains(controllername));
//当前登录用户没有Action记录&&Action没有anonymous标识
if (module == null && anonymous == null)
{
var actionname = Request.RequestContext.RouteData.Values["action"].ToString();
var function = this.GetType().GetMethods().FirstOrDefault(u => u.Name == actionname);
if (function == null)
throw new Exception("未能找到Action");
var anonymous = function.GetCustomAttribute(typeof(AnonymousAttribute));
var module = loginUser.Modules.FirstOrDefault(u => u.Url.ToLower().Contains(controllername));
if (module == null && anonymous == null)
{
filterContext.Result = new RedirectResult("/Login/Index");
return;
}
else
{
ViewBag.Module = module; //为View显示服务主要是为了显示按钮
}
filterContext.Result = new RedirectResult("/Login/Index");
return;
}
else
{
ViewBag.Module = module; //为View显示服务主要是为了显示按钮
}
base.OnActionExecuting(filterContext);

View File

@ -3,6 +3,7 @@ using Infrastructure;
using Infrastructure.Helper;
using OpenAuth.App;
using OpenAuth.App.ViewModel;
using OpenAuth.Mvc.Models;
namespace OpenAuth.Mvc.Controllers
{
@ -14,33 +15,38 @@ namespace OpenAuth.Mvc.Controllers
{
_app = AutofacExt.GetFromFac<ModuleManagerApp>();
}
[Anonymous]
public string GetModules(int parentId = 0)
{
return JsonHelper.Instance.Serialize(_app.LoadByParent(parentId));
}
[Anonymous]
public ActionResult Index()
{
var user = SessionHelper.GetSessionUser<LoginUserVM>();
return View(user.Modules);
}
[Anonymous]
public ActionResult Main()
{
return View();
}
[Anonymous]
public ActionResult Git()
{
return View();
}
/// <summary>
/// 所有页面按钮控制分部视图
/// </summary>
/// <returns>ActionResult.</returns>
[ChildActionOnly]
[Anonymous]
public ActionResult MenuHeader()
{
return View();