diff --git a/OpenAuth.App/UserManagerApp.cs b/OpenAuth.App/UserManagerApp.cs index 8affa417..32a27162 100644 --- a/OpenAuth.App/UserManagerApp.cs +++ b/OpenAuth.App/UserManagerApp.cs @@ -49,7 +49,7 @@ namespace OpenAuth.App } else { - users = _repository.LoadInOrgs(pageindex, pagesize,GetSubOrgIds(orgId)); + users = _repository.LoadInOrgs(pageindex, pagesize, GetSubOrgIds(orgId)); total = _repository.GetUserCntInOrgs(orgId); } var userviews = new List(); @@ -62,7 +62,7 @@ namespace OpenAuth.App userviews.Add(uv); } - return new + return new { total = total, list = userviews, @@ -98,7 +98,7 @@ namespace OpenAuth.App public void Delete(int id) { - _repository.Delete(u =>u.Id == id); + _repository.Delete(u => u.Id == id); _relevanceRepository.DeleteBy("UserOrg", id); _relevanceRepository.DeleteBy("UserModule", id); _relevanceRepository.DeleteBy("UserRole", id); @@ -107,22 +107,30 @@ namespace OpenAuth.App public void AddOrUpdate(UserView view) { User user = view; - user.CreateTime = DateTime.Now; if (user.Id == 0) { - + user.CreateTime = DateTime.Now; user.Password = user.Account; //初始密码与账号相同 _repository.Add(user); view.Id = user.Id; //要把保存后的ID存入view } else { - _repository.Update(u=>u.Id, user); + _repository.Update(u => u.Id == view.Id, u => new User + { + Account = user.Account, + BizCode = user.BizCode, + CreateId = user.CreateId, + Name = user.Name, + Sex = user.Sex, + Status = user.Status, + Type = user.Type + }); } int[] orgIds = view.OrganizationIds.Split(',').Select(id => int.Parse(id)).ToArray(); _relevanceRepository.DeleteBy("UserOrg", user.Id); - _relevanceRepository.AddRelevance("UserOrg", orgIds.ToLookup(u =>user.Id)); + _relevanceRepository.AddRelevance("UserOrg", orgIds.ToLookup(u => user.Id)); } } diff --git a/OpenAuth.Domain/Service/AuthoriseService.cs b/OpenAuth.Domain/Service/AuthoriseService.cs index a4cec20e..32b679de 100644 --- a/OpenAuth.Domain/Service/AuthoriseService.cs +++ b/OpenAuth.Domain/Service/AuthoriseService.cs @@ -22,12 +22,7 @@ namespace OpenAuth.Domain.Service /// public class AuthoriseService { - private IUserRepository _repository; - private IModuleRepository _moduleRepository; - private IRelevanceRepository _relevanceRepository; - private IRepository _moduleElementRepository; - private IResourceRepository _resourceRepository; - private IOrgRepository _orgRepository; + private IUnitWork _unitWork; private User _user; private List _modules; //用户可访问的模块 @@ -35,19 +30,9 @@ namespace OpenAuth.Domain.Service private List _resources; //用户可访问的资源 private List _orgs; //用户可访问的机构 - public AuthoriseService(IUserRepository repository, - IModuleRepository moduleRepository, - IRelevanceRepository relevanceRepository, - IRepository moduleElementRepository, - IResourceRepository resourceRepository, - IOrgRepository orgRepository) + public AuthoriseService(IUnitWork unitWork) { - _repository = repository; - _moduleRepository = moduleRepository; - _relevanceRepository = relevanceRepository; - _moduleElementRepository = moduleElementRepository; - _resourceRepository = resourceRepository; - _orgRepository = orgRepository; + _unitWork = unitWork; } public List Modules @@ -77,7 +62,7 @@ namespace OpenAuth.Domain.Service public void Check(string userName, string password) { - var _user = _repository.FindSingle(u => u.Account == userName); + var _user = _unitWork.FindSingle(u => u.Account == userName); if (_user == null) { throw new Exception("用户帐号不存在"); @@ -100,48 +85,48 @@ namespace OpenAuth.Domain.Service { if (name == "System") { - _modules = _moduleRepository.Find(null).ToList(); - _moduleElements = _moduleElementRepository.Find(null).ToList(); + _modules = _unitWork.Find(null).ToList(); + _moduleElements = _unitWork.Find(null).ToList(); - _resources = _resourceRepository.Find(null).OrderBy(u => u.SortNo).ToList(); + _resources = _unitWork.Find(null).OrderBy(u => u.SortNo).ToList(); - _orgs = _orgRepository.Find(null).OrderBy(u => u.SortNo).ToList(); + _orgs = _unitWork.Find(null).OrderBy(u => u.SortNo).ToList(); } else { - _user = _repository.FindSingle(u => u.Account == name); + _user = _unitWork.FindSingle(u => u.Account == name); //用户角色 - var userRoleIds = _relevanceRepository.Find(u => u.FirstId == _user.Id && u.Key == "UserRole").Select(u => u.SecondId).ToList(); + var userRoleIds = _unitWork.Find(u => u.FirstId == _user.Id && u.Key == "UserRole").Select(u => u.SecondId).ToList(); //用户角色与自己分配到的模块ID - var moduleIds = _relevanceRepository.Find( + var moduleIds = _unitWork.Find( u => (u.FirstId == _user.Id && u.Key == "UserModule") || - (u.Key == "RoleModule" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); + (u.Key == "RoleModule" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId); + //得出最终用户拥有的模块 + _modules = _unitWork.Find(u => moduleIds.Contains(u.Id)).OrderBy(u => u.SortNo).ToList(); + //用户角色与自己分配到的菜单ID - var elementIds = _relevanceRepository.Find( + var elementIds = _unitWork.Find( u => (u.FirstId == _user.Id && u.Key == "UserElement") || - (u.Key == "RoleElement" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); - //得出最终用户拥有的模块 - _modules = _moduleRepository.Find(u => moduleIds.Contains(u.Id)).OrderBy(u => u.SortNo).ToList(); - + (u.Key == "RoleElement" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId); //模块菜单权限 - _moduleElements = _moduleElementRepository.Find(u => elementIds.Contains(u.Id)).ToList(); + _moduleElements = _unitWork.Find(u => elementIds.Contains(u.Id)).ToList(); //用户角色与自己分配到的资源ID - var resourceIds = _relevanceRepository.Find( + var resourceIds = _unitWork.Find( u => (u.FirstId == _user.Id && u.Key == "UserResource") || - (u.Key == "RoleResource" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); - _resources = _resourceRepository.Find(u => resourceIds.Contains(u.Id)).ToList(); + (u.Key == "RoleResource" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId); + _resources = _unitWork.Find(u => resourceIds.Contains(u.Id)).ToList(); //用户角色与自己分配到的机构ID - var orgids = _relevanceRepository.Find( + var orgids = _unitWork.Find( u => (u.FirstId == _user.Id && u.Key == "UserAccessedOrg") || - (u.Key == "RoleAccessedOrg" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId).ToList(); - _orgs = _orgRepository.Find(u => orgids.Contains(u.Id)).ToList(); + (u.Key == "RoleAccessedOrg" && userRoleIds.Contains(u.FirstId))).Select(u => u.SecondId); + _orgs = _unitWork.Find(u => orgids.Contains(u.Id)).ToList(); } } } diff --git a/OpenAuth.Mvc/BllScripts/assignModule.js b/OpenAuth.Mvc/BllScripts/assignModule.js index 3ea54247..d9100cc5 100644 --- a/OpenAuth.Mvc/BllScripts/assignModule.js +++ b/OpenAuth.Mvc/BllScripts/assignModule.js @@ -23,6 +23,7 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); if (json.statusCode != "200") { json = $.parseJSON(json); $(this).alertmsg('warn', json.message); @@ -40,6 +41,7 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); if (json.statusCode != "200") { json = $.parseJSON(json); $(this).alertmsg('warn', json.message); diff --git a/OpenAuth.Mvc/BllScripts/assignOrg.js b/OpenAuth.Mvc/BllScripts/assignOrg.js index b3338506..5b61c0bb 100644 --- a/OpenAuth.Mvc/BllScripts/assignOrg.js +++ b/OpenAuth.Mvc/BllScripts/assignOrg.js @@ -23,6 +23,7 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); if (json.statusCode != "200") { json = $.parseJSON(json); $(this).alertmsg('warn', json.message); @@ -40,6 +41,7 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); if (json.statusCode != "200") { json = $.parseJSON(json); $(this).alertmsg('warn', json.message); diff --git a/OpenAuth.Mvc/BllScripts/assignRes.js b/OpenAuth.Mvc/BllScripts/assignRes.js index 26689407..a1db252e 100644 --- a/OpenAuth.Mvc/BllScripts/assignRes.js +++ b/OpenAuth.Mvc/BllScripts/assignRes.js @@ -23,6 +23,7 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); if (json.statusCode != "200") { json = $.parseJSON(json); $(this).alertmsg('warn', json.message); @@ -40,6 +41,7 @@ $(document).ready(function () { firstId: $('#firstId').val(), secIds: ids }, function (json) { + json = $.parseJSON(json); if (json.statusCode != "200") { json = $.parseJSON(json); $(this).alertmsg('warn', json.message); diff --git a/OpenAuth.Mvc/BllScripts/usermanager.js b/OpenAuth.Mvc/BllScripts/usermanager.js index c23d6b6a..3984741c 100644 --- a/OpenAuth.Mvc/BllScripts/usermanager.js +++ b/OpenAuth.Mvc/BllScripts/usermanager.js @@ -189,7 +189,6 @@ var editDlg = function () { show(); $('#Id').val(ret.Id); $('#Account').val(ret.Account); - $('#Password').val(ret.Password); $('#Name').val(ret.Name); $('#Sex').selectpicker('val', ret.Sex); $('#Status').selectpicker('val', ret.Status); @@ -208,7 +207,6 @@ var editDlg = function () { return; } list.reload(); - ztree.reload(); } }); }); diff --git a/OpenAuth.Mvc/Views/Login/Index.cshtml b/OpenAuth.Mvc/Views/Login/Index.cshtml index f5d40daf..8cc633f5 100644 --- a/OpenAuth.Mvc/Views/Login/Index.cshtml +++ b/OpenAuth.Mvc/Views/Login/Index.cshtml @@ -234,7 +234,7 @@
可以用admin(密码:admin) /test(密码:test) 查看不同账号登陆情况
- Copyright © 2015 基于精典DDD的权限管理 - 点击以开发者账号登录 + Copyright © 2015 基于经典DDD的权限管理 - 点击以开发者账号登录
diff --git a/OpenAuth.Mvc/Views/ModuleManager/Assign.cshtml b/OpenAuth.Mvc/Views/ModuleManager/Assign.cshtml index 8443e6ff..9e17978b 100644 --- a/OpenAuth.Mvc/Views/ModuleManager/Assign.cshtml +++ b/OpenAuth.Mvc/Views/ModuleManager/Assign.cshtml @@ -23,7 +23,7 @@ -
+
已分配的模块
    diff --git a/OpenAuth.Mvc/Views/OrgManager/Assign.cshtml b/OpenAuth.Mvc/Views/OrgManager/Assign.cshtml index 9b892f77..8cf503c0 100644 --- a/OpenAuth.Mvc/Views/OrgManager/Assign.cshtml +++ b/OpenAuth.Mvc/Views/OrgManager/Assign.cshtml @@ -23,7 +23,7 @@
    -
    +
    已分配的机构
      diff --git a/OpenAuth.Mvc/Views/UserManager/Index.cshtml b/OpenAuth.Mvc/Views/UserManager/Index.cshtml index 451be82c..b8d7aaad 100644 --- a/OpenAuth.Mvc/Views/UserManager/Index.cshtml +++ b/OpenAuth.Mvc/Views/UserManager/Index.cshtml @@ -22,7 +22,6 @@ -
      diff --git a/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj b/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj index 801f8851..18765b4e 100644 --- a/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj +++ b/OpenAuth.UnitTest/OpenAuth.UnitTest.csproj @@ -78,6 +78,7 @@ + diff --git a/OpenAuth.UnitTest/TestAuthen.cs b/OpenAuth.UnitTest/TestAuthen.cs new file mode 100644 index 00000000..fcb11cb1 --- /dev/null +++ b/OpenAuth.UnitTest/TestAuthen.cs @@ -0,0 +1,23 @@ +using System; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using OpenAuth.Domain.Service; +using OpenAuth.Repository; + +namespace OpenAuth.UnitTest +{ + /// + /// 测试用户授权服务 + /// + [TestClass] + public class TestAuthen + { + [TestMethod] + public void TestMethod1() + { + AuthoriseService _service = new AuthoriseService(new UnitWork() ); + _service.GetUserAccessed("test"); + + var orgs = _service.Orgs; + } + } +} diff --git a/OpenAuth.UnitTest/TestOrgApp.cs b/OpenAuth.UnitTest/TestOrgApp.cs index 2929cd50..81823683 100644 --- a/OpenAuth.UnitTest/TestOrgApp.cs +++ b/OpenAuth.UnitTest/TestOrgApp.cs @@ -99,5 +99,11 @@ namespace OpenAuth.UnitTest }; _app.AddOrUpdate(org1); } + + [TestMethod] + public void TestLoadByUser() + { + var user = _app.LoadForUser(5); + } } }