check js bugs

This commit is contained in:
yubaolee 2016-05-26 10:30:15 +08:00
parent e5a3f4e4f6
commit 0c8399cbc4
13 changed files with 78 additions and 52 deletions

View File

@ -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<UserView>();
@ -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));
}
}

View File

@ -22,12 +22,7 @@ namespace OpenAuth.Domain.Service
/// </summary>
public class AuthoriseService
{
private IUserRepository _repository;
private IModuleRepository _moduleRepository;
private IRelevanceRepository _relevanceRepository;
private IRepository<ModuleElement> _moduleElementRepository;
private IResourceRepository _resourceRepository;
private IOrgRepository _orgRepository;
private IUnitWork _unitWork;
private User _user;
private List<Module> _modules; //用户可访问的模块
@ -35,19 +30,9 @@ namespace OpenAuth.Domain.Service
private List<Resource> _resources; //用户可访问的资源
private List<Org> _orgs; //用户可访问的机构
public AuthoriseService(IUserRepository repository,
IModuleRepository moduleRepository,
IRelevanceRepository relevanceRepository,
IRepository<ModuleElement> 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<Module> 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<User>(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<Module>(null).ToList();
_moduleElements = _unitWork.Find<ModuleElement>(null).ToList();
_resources = _resourceRepository.Find(null).OrderBy(u => u.SortNo).ToList();
_resources = _unitWork.Find<Resource>(null).OrderBy(u => u.SortNo).ToList();
_orgs = _orgRepository.Find(null).OrderBy(u => u.SortNo).ToList();
_orgs = _unitWork.Find<Org>(null).OrderBy(u => u.SortNo).ToList();
}
else
{
_user = _repository.FindSingle(u => u.Account == name);
_user = _unitWork.FindSingle<User>(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<Relevance>(u => u.FirstId == _user.Id && u.Key == "UserRole").Select(u => u.SecondId).ToList();
//用户角色与自己分配到的模块ID
var moduleIds = _relevanceRepository.Find(
var moduleIds = _unitWork.Find<Relevance>(
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<Module>(u => moduleIds.Contains(u.Id)).OrderBy(u => u.SortNo).ToList();
//用户角色与自己分配到的菜单ID
var elementIds = _relevanceRepository.Find(
var elementIds = _unitWork.Find<Relevance>(
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<ModuleElement>(u => elementIds.Contains(u.Id)).ToList();
//用户角色与自己分配到的资源ID
var resourceIds = _relevanceRepository.Find(
var resourceIds = _unitWork.Find<Relevance>(
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<Resource>(u => resourceIds.Contains(u.Id)).ToList();
//用户角色与自己分配到的机构ID
var orgids = _relevanceRepository.Find(
var orgids = _unitWork.Find<Relevance>(
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<Org>(u => orgids.Contains(u.Id)).ToList();
}
}
}

View File

@ -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);

View File

@ -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);

View File

@ -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);

View File

@ -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();
}
});
});

View File

@ -234,7 +234,7 @@
</div>
<div class="bottom">
可以用admin(密码:admin) /test(密码:test) 查看不同账号登陆情况<br>
Copyright &copy; 2015 <a href="/Login/LoginByDev">基于典DDD的权限管理 - 点击以开发者账号登录</a>
Copyright &copy; 2015 <a href="/Login/LoginByDev">基于典DDD的权限管理 - 点击以开发者账号登录</a>
</div>
</div>
</body>

View File

@ -23,7 +23,7 @@
</fieldset>
<!--已经选中的列表-->
<fieldset style="height: auto;margin-left: 310px; width: 280px">
<fieldset style="height: auto;margin-left: 300px; width: 280px">
<legend>已分配的模块</legend>
<ul id="selected" class="ztree"></ul>
</fieldset>

View File

@ -23,7 +23,7 @@
</fieldset>
<!--已经选中的列表-->
<fieldset style="height: auto;margin-left: 310px; width: 280px">
<fieldset style="height: auto;margin-left: 300px; width: 280px">
<legend>已分配的机构</legend>
<ul id="selected" class="ztree"></ul>
</fieldset>

View File

@ -22,7 +22,6 @@
<table class="table table-condensed table-hover">
<tbody>
<input type="text" id="Id" name="Id" value="" class="hidden"/>
<input type="text" id="Password" name="Password" class="hidden" />
<tr>
<td>
<label for="Account" class="control-label x120">账号:</label>

View File

@ -78,6 +78,7 @@
<Compile Include="TestUnitWork.cs" />
<Compile Include="TestUserApp.cs" />
<Compile Include="TestOrgApp.cs" />
<Compile Include="TestAuthen.cs" />
</ItemGroup>
<ItemGroup>
<None Include="App.config">

View File

@ -0,0 +1,23 @@
using System;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using OpenAuth.Domain.Service;
using OpenAuth.Repository;
namespace OpenAuth.UnitTest
{
/// <summary>
/// 测试用户授权服务
/// </summary>
[TestClass]
public class TestAuthen
{
[TestMethod]
public void TestMethod1()
{
AuthoriseService _service = new AuthoriseService(new UnitWork() );
_service.GetUserAccessed("test");
var orgs = _service.Orgs;
}
}
}

View File

@ -99,5 +99,11 @@ namespace OpenAuth.UnitTest
};
_app.AddOrUpdate(org1);
}
[TestMethod]
public void TestLoadByUser()
{
var user = _app.LoadForUser(5);
}
}
}