diff --git a/OpenAuth.App/ModuleElementManagerApp.cs b/OpenAuth.App/ModuleElementManagerApp.cs
index 9fd4ded1..fd75fa31 100644
--- a/OpenAuth.App/ModuleElementManagerApp.cs
+++ b/OpenAuth.App/ModuleElementManagerApp.cs
@@ -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);
}
}
diff --git a/OpenAuth.Mvc/Controllers/BaseController.cs b/OpenAuth.Mvc/Controllers/BaseController.cs
index b783fc94..5428ca97 100644
--- a/OpenAuth.Mvc/Controllers/BaseController.cs
+++ b/OpenAuth.Mvc/Controllers/BaseController.cs
@@ -9,7 +9,11 @@
//
// Copyright (c) . All rights reserved.
//
-// 基础控制器,设置权限
+//
+// 基础控制器
+// 继承该控制器可以防止未登录查看
+// 继承该控制器后,如果想访问控制器中存在,但模块配置里面没有的Action(如:Home/Git),请使用AnonymousAttribute
+//
// ***********************************************************************
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);
diff --git a/OpenAuth.Mvc/Controllers/HomeController.cs b/OpenAuth.Mvc/Controllers/HomeController.cs
index d77a8d3c..0a96c225 100644
--- a/OpenAuth.Mvc/Controllers/HomeController.cs
+++ b/OpenAuth.Mvc/Controllers/HomeController.cs
@@ -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();
}
-
+
+ [Anonymous]
public string GetModules(int parentId = 0)
{
return JsonHelper.Instance.Serialize(_app.LoadByParent(parentId));
}
+
+ [Anonymous]
public ActionResult Index()
{
var user = SessionHelper.GetSessionUser();
return View(user.Modules);
}
-
+
+ [Anonymous]
public ActionResult Main()
{
return View();
}
-
+
+ [Anonymous]
public ActionResult Git()
{
return View();
}
-
///
/// 所有页面按钮控制分部视图
///
/// ActionResult.
[ChildActionOnly]
+ [Anonymous]
public ActionResult MenuHeader()
{
return View();