Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_42566577
o2oa
提交
895b976f
o2oa
项目概览
weixin_42566577
/
o2oa
与 Fork 源项目一致
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
o2oa
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
895b976f
编写于
6月 12, 2020
作者:
liyi_hz2008
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
优化内容管理文档权限机制,适应二段[如:unique@P]结构组织对象权限设定
上级
37b51ea2
变更
6
显示空白变更内容
内联
并排
Showing
6 changed file
with
285 addition
and
277 deletion
+285
-277
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueDataRowImport.java
.../com/x/cms/assemble/control/queue/QueueDataRowImport.java
+3
-3
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/CmsBatchOperationProcessService.java
...mble/control/service/CmsBatchOperationProcessService.java
+2
-2
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/PermissionOperateService.java
...ms/assemble/control/service/PermissionOperateService.java
+22
-118
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/ReviewService.java
...ava/com/x/cms/assemble/control/service/ReviewService.java
+25
-8
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/UserManagerService.java
...om/x/cms/assemble/control/service/UserManagerService.java
+112
-63
o2server/x_cms_core_entity/src/main/java/com/x/cms/core/entity/Document.java
..._entity/src/main/java/com/x/cms/core/entity/Document.java
+121
-83
未找到文件。
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/queue/QueueDataRowImport.java
浏览文件 @
895b976f
...
...
@@ -30,7 +30,7 @@ public class QueueDataRowImport extends AbstractQueue<ImportDataRow> {
String
titleFlag
=
excelReadRuntime
.
wi
.
getTitle
();
//生成一个Document和Data
System
.
out
.
println
(
">>>>>>>>>>>>>>>>>>>QueueDataRowImport.execute正在处理第"
+
curRow
+
"行数据:"
+
printData
(
colmlist
)
);
//
System.out.println(">>>>>>>>>>>>>>>>>>>QueueDataRowImport.execute正在处理第" + curRow + "行数据:" + printData( colmlist ) );
if
(
ListTools
.
isNotEmpty
(
colmlist
)
){
Data
data
=
null
;
Document
document
=
null
;
...
...
@@ -43,8 +43,8 @@ public class QueueDataRowImport extends AbstractQueue<ImportDataRow> {
document
.
setImportBatchName
(
batchName
);
document
.
setDocStatus
(
"checking"
);
//待校验
document
.
setSummary
(
null
);
document
.
addReadPersonList
(
"所有人"
);
document
.
addAuthorPersonList
(
excelReadRuntime
.
operatorName
);
document
.
add
To
ReadPersonList
(
"所有人"
);
document
.
add
To
AuthorPersonList
(
excelReadRuntime
.
operatorName
);
if
(
StringUtils
.
isNotEmpty
(
colmlist
.
get
(
titleColIndex
)+
""
))
{
if
(
StringUtils
.
isNotEmpty
(
titleFlag
))
{
...
...
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/CmsBatchOperationProcessService.java
浏览文件 @
895b976f
...
...
@@ -42,7 +42,7 @@ public class CmsBatchOperationProcessService {
* @throws Exception
*/
public
String
process
(
CmsBatchOperation
cmsBatchOperation
)
throws
Exception
{
logger
.
info
(
"process -> Cms processing batch operation: "
+
cmsBatchOperation
.
toString
()
);
logger
.
debug
(
"process -> Cms processing batch operation: "
+
cmsBatchOperation
.
toString
()
);
//先把cmsBatchOperation状态修改为执行中
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
cmsBatchOperation
=
emc
.
find
(
cmsBatchOperation
.
getId
(),
CmsBatchOperation
.
class
);
...
...
@@ -51,7 +51,7 @@ public class CmsBatchOperationProcessService {
emc
.
beginTransaction
(
CmsBatchOperation
.
class
);
emc
.
check
(
cmsBatchOperation
,
CheckPersistType
.
all
);
emc
.
commit
();
logger
.
info
(
"process -> cms change batch operation running......: "
);
logger
.
debug
(
"process -> cms change batch operation running......: "
);
}
}
catch
(
Exception
e
)
{
throw
e
;
...
...
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/PermissionOperateService.java
浏览文件 @
895b976f
...
...
@@ -162,26 +162,26 @@ public class PermissionOperateService {
if
(
ListTools
.
isNotEmpty
(
permissionList
)
){
for
(
PermissionInfo
permission
:
permissionList
){
if
(
"管理"
.
equals
(
permission
.
getPermission
()
))
{
document
.
addManagerList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
ManagerList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"读者"
.
equals
(
permission
.
getPermission
()
)
||
"阅读"
.
equals
(
permission
.
getPermission
()
))
{
if
(
"人员"
.
equals
(
permission
.
getPermissionObjectType
()
))
{
document
.
addReadPersonList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
ReadPersonList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"部门"
.
equals
(
permission
.
getPermissionObjectType
()
)
||
"组织"
.
equals
(
permission
.
getPermissionObjectType
()
))
{
document
.
addReadUnitList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
ReadUnitList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"群组"
.
equals
(
permission
.
getPermissionObjectType
()
))
{
document
.
addReadGroupList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
ReadGroupList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"所有人"
.
equals
(
permission
.
getPermissionObjectCode
()
))
{
document
.
addReadPersonList
(
"所有人"
);
document
.
add
To
ReadPersonList
(
"所有人"
);
}
}
else
if
(
"作者"
.
equals
(
permission
.
getPermission
()
))
{
if
(
"人员"
.
equals
(
permission
.
getPermissionObjectType
()
))
{
document
.
addAuthorPersonList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
AuthorPersonList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"部门"
.
equals
(
permission
.
getPermissionObjectType
()
)
||
"组织"
.
equals
(
permission
.
getPermissionObjectType
()
))
{
document
.
addAuthorUnitList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
AuthorUnitList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"群组"
.
equals
(
permission
.
getPermissionObjectType
()
))
{
document
.
addAuthorGroupList
(
permission
.
getPermissionObjectCode
());
document
.
add
To
AuthorGroupList
(
permission
.
getPermissionObjectCode
());
}
else
if
(
"所有人"
.
equals
(
permission
.
getPermissionObjectCode
()
))
{
document
.
addAuthorPersonList
(
"所有人"
);
document
.
add
To
AuthorPersonList
(
"所有人"
);
}
}
}
...
...
@@ -190,19 +190,19 @@ public class PermissionOperateService {
if
(
ListTools
.
isEmpty
(
document
.
getReadPersonList
()
)
&&
ListTools
.
isEmpty
(
document
.
getReadUnitList
()
)
&&
ListTools
.
isEmpty
(
document
.
getReadGroupList
()
))
{
//可读范围都为空,则是所有人可访问
document
.
addReadPersonList
(
"所有人"
);
document
.
addReadPersonList
(
document
.
getCreatorPerson
());
document
.
add
To
ReadPersonList
(
"所有人"
);
document
.
add
To
ReadPersonList
(
document
.
getCreatorPerson
());
}
if
(
ListTools
.
isEmpty
(
document
.
getAuthorPersonList
()
)
&&
ListTools
.
isEmpty
(
document
.
getAuthorUnitList
()
)
&&
ListTools
.
isEmpty
(
document
.
getAuthorGroupList
()
))
{
//编辑全部都为空,则是创建人可编辑
document
.
addAuthorPersonList
(
document
.
getCreatorPerson
()
);
document
.
addAuthorPersonList
(
document
.
getCreatorPerson
()
);
document
.
add
To
AuthorPersonList
(
document
.
getCreatorPerson
()
);
document
.
add
To
AuthorPersonList
(
document
.
getCreatorPerson
()
);
}
if
(
ListTools
.
isEmpty
(
document
.
getManagerList
()
)
)
{
//管理全部都为空,则是创建人可以管理
document
.
addManagerList
(
document
.
getCreatorPerson
()
);
document
.
addManagerList
(
document
.
getCreatorPerson
()
);
document
.
add
To
ManagerList
(
document
.
getCreatorPerson
()
);
document
.
add
To
ManagerList
(
document
.
getCreatorPerson
()
);
}
emc
.
check
(
document
,
CheckPersistType
.
all
);
...
...
@@ -213,111 +213,15 @@ public class PermissionOperateService {
}
}
// /**
// * 根据文档的权限信息组织所有的权限对象列表
// * @param document
// * @throws Exception
// */
// public List<PermissionInfo> composeDocmentAllPermissions( Document document ) throws Exception {
//
// List<PermissionInfo> permissionList = new ArrayList<>();
// //处理创建者
// permissionList.add( new PermissionInfo( PermissionName.READER, "人员", document.getCreatorIdentity(), document.getCreatorIdentity() ) );
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "人员", document.getCreatorIdentity(), document.getCreatorIdentity() ) );
// permissionList.add( new PermissionInfo( PermissionName.MANAGER, "人员", document.getCreatorIdentity(), document.getCreatorIdentity() ) );
//
// if ( ListTools.isEmpty( document.getAuthorPersonList() ) ) {
// for( String permissionCode : document.getAuthorPersonList() ){
// if( !existsPermission(permissionList, PermissionName.AUTHOR, "permissionCode") ){
// if( StringUtils.equalsIgnoreCase("所有人", permissionCode )){
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "所有人", "所有人", "所有人" ) );
// }else{
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "人员", permissionCode, permissionCode ) );
// private boolean existsPermission(List<PermissionInfo> permissionList, String objectType, String permissionCode) {
// if( ListTools.isNotEmpty( permissionList )){
// for ( PermissionInfo permission : permissionList ){
// if( StringUtils.equalsIgnoreCase( permission.getPermissionObjectCode(), permissionCode ) &&
// StringUtils.equalsIgnoreCase( permission.getPermissionObjectType(), objectType )){
// return true;
// }
// }
// }
// return false;
// }
//
// if ( ListTools.isEmpty( document.getAuthorUnitList() ) ) {
// for( String permissionCode : document.getAuthorUnitList() ){
// if( !existsPermission(permissionList, PermissionName.AUTHOR, "permissionCode") ){
// if( StringUtils.equalsIgnoreCase("所有人", permissionCode )){
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "所有人", "所有人", "所有人" ) );
// }else{
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "组织", permissionCode, permissionCode ) );
// }
// }
// }
// }
//
// if ( ListTools.isEmpty( document.getAuthorGroupList() ) ) {
// for( String permissionCode : document.getAuthorUnitList() ){
// if( !existsPermission(permissionList, PermissionName.AUTHOR, "permissionCode") ){
// if( StringUtils.equalsIgnoreCase("所有人", permissionCode )){
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "所有人", "所有人", "所有人" ) );
// }else{
// permissionList.add( new PermissionInfo( PermissionName.AUTHOR, "群组", permissionCode, permissionCode ) );
// }
// }
// }
// }
//
// if ( ListTools.isEmpty( document.getReadPersonList() ) ) {
// for( String permissionCode : document.getReadPersonList() ){
// if( !existsPermission(permissionList, PermissionName.READER, "permissionCode") ){
// if( StringUtils.equalsIgnoreCase("所有人", permissionCode )){
// permissionList.add( new PermissionInfo( PermissionName.READER, "所有人", "所有人", "所有人" ) );
// }else{
// permissionList.add( new PermissionInfo( PermissionName.READER, "人员", permissionCode, permissionCode ) );
// }
// }
// }
// }
//
// if ( ListTools.isEmpty( document.getReadUnitList() ) ) {
// for( String permissionCode : document.getReadUnitList() ){
// if( !existsPermission(permissionList, PermissionName.READER, "permissionCode") ) {
// if( StringUtils.equalsIgnoreCase("所有人", permissionCode )){
// permissionList.add( new PermissionInfo( PermissionName.READER, "所有人", "所有人", "所有人" ) );
// }else{
// permissionList.add( new PermissionInfo( PermissionName.READER, "组织", permissionCode, permissionCode ) );
// }
// }
//
// }
// }
//
// if ( ListTools.isEmpty( document.getReadGroupList() ) ) {
// for( String permissionCode : document.getReadGroupList() ){
// if( !existsPermission(permissionList, PermissionName.READER, "permissionCode") ){
// if( StringUtils.equalsIgnoreCase("所有人", permissionCode )){
// permissionList.add( new PermissionInfo( PermissionName.READER, "所有人", "所有人", "所有人" ) );
// }else{
// permissionList.add( new PermissionInfo( PermissionName.READER, "群组", permissionCode, permissionCode ) );
// }
// }
// }
// }
//
// if ( ListTools.isEmpty( document.getManagerList() ) ) {
// for( String permissionCode : document.getManagerList() ){
// if( !existsPermission(permissionList, PermissionName.MANAGER, "permissionCode") ){
// permissionList.add( new PermissionInfo( PermissionName.MANAGER, "人员", permissionCode, permissionCode ) );
// }
// }
// }
// return permissionList;
// }
private
boolean
existsPermission
(
List
<
PermissionInfo
>
permissionList
,
String
objectType
,
String
permissionCode
)
{
if
(
ListTools
.
isNotEmpty
(
permissionList
)){
for
(
PermissionInfo
permission
:
permissionList
){
if
(
StringUtils
.
equalsIgnoreCase
(
permission
.
getPermissionObjectCode
(),
permissionCode
)
&&
StringUtils
.
equalsIgnoreCase
(
permission
.
getPermissionObjectType
(),
objectType
)){
return
true
;
}
}
}
return
false
;
}
}
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/ReviewService.java
浏览文件 @
895b976f
...
...
@@ -461,13 +461,30 @@ public class ReviewService {
permissionObjs
=
new
ArrayList
<>();
}
if
(
ListTools
.
isNotEmpty
(
objNames
)){
Person
person
;
String
[]
array
;
for
(
String
objName
:
objNames
)
{
if
(
StringUtils
.
isNotEmpty
(
objName
)){
person
=
null
;
array
=
null
;
if
(
objName
.
trim
().
endsWith
(
"@P"
)
)
{
//直接加入人员
array
=
objName
.
split
(
"@"
);
if
(
array
.
length
==
2
){
person
=
userManagerService
.
getPerson
(
array
[
0
]);
if
(
person
!=
null
){
objName
=
person
.
getDistinguishedName
();
}
}
if
(
!
permissionObjs
.
contains
(
objName
))
{
permissionObjs
.
add
(
objName
);
}
}
else
if
(
objName
.
trim
().
endsWith
(
"@I"
)
)
{
//将Identity转换为人员
//从身份到人员
array
=
objName
.
split
(
"@"
);
if
(
array
.
length
==
2
){
objName
=
userManagerService
.
getPersonNameWithIdentity
(
array
[
0
]);
}
result
=
userManagerService
.
getPersonNameWithIdentity
(
objName
);
permissionObjs
=
addStringToList
(
permissionObjs
,
result
);
}
else
if
(
objName
.
trim
().
endsWith
(
"@U"
)
)
{
//将组织拆解为人员
...
...
@@ -552,16 +569,17 @@ public class ReviewService {
//先删除原来所有的Review信息
if
(
ListTools
.
isNotEmpty
(
oldReviewIds
))
{
reviews
=
emc
.
list
(
Review
.
class
,
oldReviewIds
);
//查询该文档所有的Review列表
if
(
ListTools
.
isNotEmpty
(
reviews
))
{
Review
oldReview
=
null
;
emc
.
beginTransaction
(
Review
.
class
);
for
(
Review
review_tmp
:
reviews
)
{
//System.out.println(">>>>>>>["+ review_tmp.getTitle() +"] delete review: " + review_tmp.getPermissionObj());
emc
.
remove
(
review_tmp
,
CheckRemoveType
.
all
);
for
(
String
reviewId
:
oldReviewIds
){
oldReview
=
emc
.
find
(
reviewId
,
Review
.
class
);
if
(
oldReview
!=
null
){
emc
.
remove
(
oldReview
,
CheckRemoveType
.
all
);
}
emc
.
commit
();
}
emc
.
commit
();
}
//再添加新的Review信息
if
(
ListTools
.
isNotEmpty
(
permissionPersons
))
{
permissionPersons
=
removeSameValue
(
permissionPersons
);
...
...
@@ -569,7 +587,6 @@ public class ReviewService {
Person
personObj
=
null
;
String
personName
=
null
;
for
(
String
person
:
permissionPersons
)
{
if
(
!
person
.
equalsIgnoreCase
(
"*"
))
{
//检查一下个人是否存在,防止姓名或者唯一标识变更过了导致文档权限不正确
personObj
=
userManagerService
.
getPerson
(
person
);
...
...
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/service/UserManagerService.java
浏览文件 @
895b976f
...
...
@@ -33,24 +33,17 @@ public class UserManagerService {
public
Person
getPerson
(
String
personName
)
throws
Exception
{
Business
business
=
null
;
Person
person
=
null
;
List
<
Person
>
personList
=
null
;
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
person
=
business
.
organization
().
person
().
getObject
(
personName
);
if
(
person
==
null
)
{
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
3
)
{
personList
=
business
.
organization
().
person
().
listObject
(
personName
.
split
(
"@"
)[
1
]);
if
(
ListTools
.
isNotEmpty
(
personList
))
{
return
personList
.
get
(
0
);
}
return
business
.
organization
().
person
().
getObject
(
personName
.
split
(
"@"
)[
1
]);
}
}
if
(
person
==
null
)
{
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
3
)
{
personList
=
business
.
organization
().
person
().
listObject
(
personName
.
split
(
"@"
)[
0
]);
if
(
ListTools
.
isNotEmpty
(
personList
))
{
return
personList
.
get
(
0
);
}
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
return
business
.
organization
().
person
().
getObject
(
personName
.
split
(
"@"
)[
0
]);
}
}
}
catch
(
Exception
e
)
{
...
...
@@ -75,7 +68,12 @@ public class UserManagerService {
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
unitNames
=
business
.
organization
().
unit
().
listWithPerson
(
personName
);
if
(
unitNames
!=
null
&&
!
unitNames
.
isEmpty
())
{
if
(
ListTools
.
isEmpty
(
unitNames
))
{
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
unitNames
=
business
.
organization
().
unit
().
listWithPerson
(
personName
.
split
(
"@"
)[
0
]
);
}
}
if
(
ListTools
.
isNotEmpty
(
unitNames
))
{
for
(
String
unitName
:
unitNames
)
{
unit
=
business
.
organization
().
unit
().
getObject
(
unitName
);
if
(
level
<
unit
.
getLevel
())
{
...
...
@@ -125,7 +123,13 @@ public class UserManagerService {
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
// 兼容一下传过来的perosnName有可能是个人,有可能是身份
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
identity
=
getMajorIdentityWithPerson
(
personName
);
if
(
identity
!=
null
&&
!
identity
.
isEmpty
())
{
topUnitName
=
business
.
organization
().
unit
().
getWithIdentityWithLevel
(
identity
,
1
);
...
...
@@ -167,8 +171,13 @@ public class UserManagerService {
Business
business
=
null
;
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
// 兼容一下传过来的perosnName有可能是个人,有可能是身份
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
identities
=
business
.
organization
().
identity
().
listWithPerson
(
personName
);
if
(
identities
!=
null
&&
!
identities
.
isEmpty
())
{
if
(
identities
.
size
()
==
1
)
{
...
...
@@ -221,6 +230,13 @@ public class UserManagerService {
Business
business
=
null
;
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
unitNames
=
business
.
organization
().
unit
().
listWithPersonSupNested
(
personName
);
return
unitNames
==
null
?
new
ArrayList
<>()
:
unitNames
;
}
catch
(
NullPointerException
e
)
{
...
...
@@ -233,18 +249,25 @@ public class UserManagerService {
/**
* 根据用户姓名查询用户所有的身份信息
*
* @param
user
Name
* @param
person
Name
* @return
* @throws Exception
*/
public
List
<
String
>
listIdentitiesWithPerson
(
String
user
Name
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
user
Name
))
{
public
List
<
String
>
listIdentitiesWithPerson
(
String
person
Name
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
person
Name
))
{
throw
new
Exception
(
"userName is null!"
);
}
Business
business
=
null
;
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
return
business
.
organization
().
identity
().
listWithPerson
(
userName
);
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
return
business
.
organization
().
identity
().
listWithPerson
(
personName
);
}
catch
(
NullPointerException
e
)
{
return
null
;
}
catch
(
Exception
e
)
{
...
...
@@ -265,6 +288,13 @@ public class UserManagerService {
List
<
String
>
nameList
=
new
ArrayList
<
String
>();
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
roleList
=
business
.
organization
().
role
().
listWithPerson
(
personName
);
if
(
roleList
!=
null
&&
roleList
.
size
()
>
0
)
{
roleList
.
stream
().
filter
(
r
->
!
nameList
.
contains
(
r
)).
distinct
().
forEach
(
r
->
nameList
.
add
(
r
));
...
...
@@ -290,6 +320,13 @@ public class UserManagerService {
List
<
String
>
nameList
=
new
ArrayList
<
String
>();
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
groupList
=
business
.
organization
().
group
().
listWithPerson
(
personName
);
if
(
groupList
!=
null
&&
groupList
.
size
()
>
0
)
{
groupList
.
stream
().
filter
(
g
->
!
nameList
.
contains
(
g
)).
distinct
().
forEach
(
g
->
nameList
.
add
(
g
));
...
...
@@ -321,6 +358,13 @@ public class UserManagerService {
Business
business
=
null
;
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
business
=
new
Business
(
emc
);
if
(
StringUtils
.
isNotEmpty
(
personName
)){
if
(
personName
.
endsWith
(
"@P"
)
&&
personName
.
split
(
"@P"
).
length
==
2
)
{
personName
=
business
.
organization
().
person
().
get
(
personName
.
split
(
"@"
)[
0
]);
}
else
{
personName
=
business
.
organization
().
person
().
get
(
personName
);
}
}
roleList
=
business
.
organization
().
role
().
listWithPerson
(
personName
);
if
(
roleList
!=
null
&&
!
roleList
.
isEmpty
())
{
if
(
roleList
.
stream
().
filter
(
r
->
roleName
.
equalsIgnoreCase
(
r
)).
count
()
>
0
)
{
...
...
@@ -402,47 +446,9 @@ public class UserManagerService {
return
null
;
}
public
List
<
String
>
getPersonPermissionCodes
(
String
personName
)
throws
Exception
{
List
<
String
>
queryObjectNames
=
new
ArrayList
<>();
List
<
String
>
groupNames
=
null
;
List
<
String
>
roleNames
=
null
;
List
<
String
>
unitNames
=
null
;
// 选查询个人涉及的所有组织角色以及群组编码
groupNames
=
listGroupNamesByPerson
(
personName
);
roleNames
=
listRoleNamesByPerson
(
personName
);
unitNames
=
listUnitNamesWithPerson
(
personName
);
queryObjectNames
.
add
(
personName
);
// 将三个列表合为一个,再进行分类权限查询
if
(
groupNames
!=
null
&&
!
groupNames
.
isEmpty
())
{
for
(
String
name
:
groupNames
)
{
if
(!
queryObjectNames
.
contains
(
name
))
{
queryObjectNames
.
add
(
name
);
}
}
}
if
(
roleNames
!=
null
&&
!
roleNames
.
isEmpty
())
{
for
(
String
name
:
roleNames
)
{
if
(!
queryObjectNames
.
contains
(
name
))
{
queryObjectNames
.
add
(
name
);
}
}
}
if
(
unitNames
!=
null
&&
!
unitNames
.
isEmpty
())
{
for
(
String
name
:
unitNames
)
{
if
(!
queryObjectNames
.
contains
(
name
))
{
queryObjectNames
.
add
(
name
);
}
}
}
return
queryObjectNames
;
}
/**
* 根据组织名称,查询组织内所有的人员标识,包括下级组织
*
* 根据组织名称,查询组织内所有的人员标识,包括下级组织
<br/>
*
2020-06-12 改为使用唯一标识查询<br/>
* @param unitName
* @return
* @throws Exception
...
...
@@ -453,14 +459,42 @@ public class UserManagerService {
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
Business
business
=
new
Business
(
emc
);
return
business
.
organization
().
person
().
listWithUnitSubNested
(
unitName
);
//2020-06-12 unitName可能有3段,可能有2段,统一使用中间的唯一标识来进行查询
String
unique
=
getUniqueWithName
(
unitName
);
return
business
.
organization
().
person
().
listWithUnitSubNested
(
unique
);
}
catch
(
Exception
e
)
{
throw
e
;
}
}
/**
* 根据群组名称,查询群组内所有的人员标识
* 获取组织对象的唯一标识<br/>
*<br/>
* 组织对象标识一般会有3段,如 综合部@1304-73504398-13419-0347@U, 张三@293041-9305983-04258-0943@P<br/>
* 文档权限里也会存在2段,因为第一段经常会变,如组织:行政综合部@1304-73504398-13419-0347@U<br/>
* 所以查询的时候最好只用中间的唯一标识来查询<br/>
* @param orgObjectName
* @return
*/
private
String
getUniqueWithName
(
String
orgObjectName
)
{
if
(
StringUtils
.
isNotEmpty
(
orgObjectName
)){
String
[]
array
=
orgObjectName
.
split
(
"@"
);
if
(
array
.
length
==
3
){
return
array
[
1
];
}
else
if
(
array
.
length
==
2
){
return
array
[
0
];
}
else
{
return
orgObjectName
;
}
}
return
null
;
}
/**
* 根据群组名称,查询群组内所有的人员标识<br/>
* 2020-06-12 改为使用唯一标识查询<br/>
*
* @param groupName
* @return
...
...
@@ -472,19 +506,34 @@ public class UserManagerService {
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
Business
business
=
new
Business
(
emc
);
return
business
.
organization
().
person
().
listWithGroup
(
groupName
);
//2020-06-12 unitName可能有3段,可能有2段,统一使用中间的唯一标识来进行查询
String
unique
=
getUniqueWithName
(
groupName
);
return
business
.
organization
().
person
().
listWithGroup
(
unique
);
}
catch
(
Exception
e
)
{
throw
e
;
}
}
/**
* 根据角色名称,查询角色成员内所有的人员标识<br/>
* 2020-06-12 改为使用唯一标识查询<br/>
* @param role
* @return
* @throws Exception
*/
public
List
<
String
>
listPersonWithRole
(
String
role
)
throws
Exception
{
if
(
StringUtils
.
isEmpty
(
role
))
{
throw
new
Exception
(
"role is empty!"
);
}
try
(
EntityManagerContainer
emc
=
EntityManagerContainerFactory
.
instance
().
create
())
{
Business
business
=
new
Business
(
emc
);
return
business
.
organization
().
person
().
listWithRole
(
role
);
//2020-06-12 unitName可能有3段,可能有2段,统一使用中间的唯一标识来进行查询
String
unique
=
getUniqueWithName
(
role
);
return
business
.
organization
().
person
().
listWithRole
(
unique
);
}
catch
(
Exception
e
)
{
throw
e
;
}
...
...
o2server/x_cms_core_entity/src/main/java/com/x/cms/core/entity/Document.java
浏览文件 @
895b976f
...
...
@@ -653,6 +653,13 @@ public class Document extends SliceJpaObject {
return
this
.
authorGroupList
;
}
public
List
<
String
>
getManagerList
()
{
if
(
this
.
managerList
==
null
)
{
this
.
managerList
=
new
ArrayList
<>();
}
return
this
.
managerList
;
}
public
void
setReadPersonList
(
List
<
String
>
readPersonList
)
{
this
.
readPersonList
=
readPersonList
;
}
...
...
@@ -677,73 +684,10 @@ public class Document extends SliceJpaObject {
this
.
authorGroupList
=
authorGroupList
;
}
public
List
<
String
>
getManagerList
()
{
if
(
this
.
managerList
==
null
)
{
this
.
managerList
=
new
ArrayList
<>();
}
return
this
.
managerList
;
}
public
void
setManagerList
(
List
<
String
>
managerList
)
{
this
.
managerList
=
managerList
;
}
public
void
addReadPersonList
(
String
readPerson
)
{
this
.
readPersonList
=
addStringToList
(
this
.
readPersonList
,
readPerson
);
}
public
void
addReadUnitList
(
String
readUnit
)
{
this
.
readUnitList
=
addStringToList
(
this
.
readUnitList
,
readUnit
);
}
public
void
addReadGroupList
(
String
readGroup
)
{
this
.
readGroupList
=
addStringToList
(
this
.
readGroupList
,
readGroup
);
}
public
void
addAuthorPersonList
(
String
authorPerson
)
{
this
.
authorPersonList
=
addStringToList
(
this
.
authorPersonList
,
authorPerson
);
}
public
void
addAuthorUnitList
(
String
authorUnit
)
{
this
.
authorUnitList
=
addStringToList
(
this
.
authorUnitList
,
authorUnit
);
}
public
void
addAuthorGroupList
(
String
authorGroup
)
{
this
.
authorGroupList
=
addStringToList
(
this
.
authorGroupList
,
authorGroup
);
}
public
void
removeReadPersonList
(
String
readPerson
)
{
this
.
readPersonList
=
addStringToList
(
this
.
readPersonList
,
readPerson
);
}
public
void
removeReadUnitList
(
String
readUnit
)
{
this
.
readUnitList
=
addStringToList
(
this
.
readUnitList
,
readUnit
);
}
public
void
removeReadGroupList
(
String
readGroup
)
{
this
.
readGroupList
=
addStringToList
(
this
.
readGroupList
,
readGroup
);
}
public
void
removeAuthorPersonList
(
String
authorPerson
)
{
removeStringFromList
(
this
.
authorPersonList
,
authorPerson
);
}
public
void
removeAuthorUnitList
(
String
authorUnit
)
{
removeStringFromList
(
this
.
authorUnitList
,
authorUnit
);
}
public
void
removeAuthorGroupList
(
String
authorGroup
)
{
removeStringFromList
(
this
.
authorGroupList
,
authorGroup
);
}
public
void
addManagerList
(
String
manager
)
{
addStringToList
(
this
.
managerList
,
manager
);
}
public
void
removeManagerList
(
String
manager
)
{
removeStringFromList
(
this
.
managerList
,
manager
);
}
public
String
getImportBatchName
()
{
return
importBatchName
;
}
...
...
@@ -784,26 +728,6 @@ public class Document extends SliceJpaObject {
this
.
remindGroupList
=
remindGroupList
;
}
private
List
<
String
>
addStringToList
(
List
<
String
>
sourceList
,
String
targetString
)
{
if
(
sourceList
==
null
)
{
sourceList
=
new
ArrayList
<>();
}
if
(!
sourceList
.
contains
(
targetString
))
{
sourceList
.
add
(
targetString
);
}
return
sourceList
;
}
private
List
<
String
>
removeStringFromList
(
List
<
String
>
sourceList
,
String
targetString
)
{
if
(
sourceList
==
null
)
{
sourceList
=
new
ArrayList
<>();
}
if
(
sourceList
.
contains
(
targetString
))
{
sourceList
.
remove
(
targetString
);
}
return
sourceList
;
}
public
Boolean
getReviewed
()
{
return
reviewed
;
}
...
...
@@ -918,6 +842,120 @@ public class Document extends SliceJpaObject {
this
.
sequenceCreatorUnitName
=
sequenceCreatorUnitName
;
}
// -------------------Reader-------------------------
// -------------------2020-06-12 改为只存储DistinguishedName后两段,第一段可能会在运行过程中修改
public
void
addToReadPersonList
(
String
readPerson
)
{
this
.
readPersonList
=
addStringToList
(
this
.
readPersonList
,
getShortTargetFlag
(
readPerson
));
}
public
void
addToReadUnitList
(
String
readUnit
)
{
this
.
readUnitList
=
addStringToList
(
this
.
readUnitList
,
getShortTargetFlag
(
readUnit
));
}
public
void
addToReadGroupList
(
String
readGroup
)
{
this
.
readGroupList
=
addStringToList
(
this
.
readGroupList
,
getShortTargetFlag
(
readGroup
));
}
// --------------------完整的标识要删除,并且也要删除只存储2段的标识
public
void
removeFromReadPersonList
(
String
readPerson
)
{
removeStringFromList
(
this
.
readPersonList
,
readPerson
);
removeStringFromList
(
this
.
readPersonList
,
getShortTargetFlag
(
readPerson
));
}
public
void
removeFromReadUnitList
(
String
readUnit
)
{
removeStringFromList
(
this
.
readUnitList
,
readUnit
);
removeStringFromList
(
this
.
readUnitList
,
getShortTargetFlag
(
readUnit
));
}
public
void
removeFromReadGroupList
(
String
readGroup
)
{
removeStringFromList
(
this
.
readGroupList
,
readGroup
);
removeStringFromList
(
this
.
readGroupList
,
getShortTargetFlag
(
readGroup
));
}
// -------------------Author-------------------------
// -------------------2020-06-12 改为只存储DistinguishedName后两段,第一段可能会在运行过程中修改
public
void
addToAuthorPersonList
(
String
authorPerson
)
{
this
.
authorPersonList
=
addStringToList
(
this
.
authorPersonList
,
getShortTargetFlag
(
authorPerson
));
}
public
void
addToAuthorUnitList
(
String
authorUnit
)
{
this
.
authorUnitList
=
addStringToList
(
this
.
authorUnitList
,
getShortTargetFlag
(
authorUnit
));
}
public
void
addToAuthorGroupList
(
String
authorGroup
)
{
this
.
authorGroupList
=
addStringToList
(
this
.
authorGroupList
,
getShortTargetFlag
(
authorGroup
));
}
// --------------------完整的标识要删除,并且也要删除只存储2段的标识
public
void
removeFromAuthorPersonList
(
String
authorPerson
)
{
removeStringFromList
(
this
.
authorPersonList
,
authorPerson
);
removeStringFromList
(
this
.
authorPersonList
,
getShortTargetFlag
(
authorPerson
));
}
public
void
removeFromAuthorUnitList
(
String
authorUnit
)
{
removeStringFromList
(
this
.
authorUnitList
,
authorUnit
);
removeStringFromList
(
this
.
authorUnitList
,
getShortTargetFlag
(
authorUnit
));
}
public
void
removeFromAuthorGroupList
(
String
authorGroup
)
{
removeStringFromList
(
this
.
authorGroupList
,
authorGroup
);
removeStringFromList
(
this
.
authorGroupList
,
getShortTargetFlag
(
authorGroup
));
}
// -------------------Manager-------------------------
// -------------------2020-06-12 改为只存储DistinguishedName后两段,第一段可能会在运行过程中修改
public
void
addToManagerList
(
String
manager
)
{
addStringToList
(
this
.
managerList
,
getShortTargetFlag
(
manager
));
}
// --------------------完整的标识要删除,并且也要删除只存储2段的标识
public
void
removeFromManagerList
(
String
manager
)
{
removeStringFromList
(
this
.
managerList
,
manager
);
removeStringFromList
(
this
.
managerList
,
getShortTargetFlag
(
manager
));
}
/**
* 获取只取两段的组织、人员、群组名称distinguishedName标识,默认应该有3段,第一段变动比较频繁,不适合作为权限标识
* @param distinguishedName
* @return
*/
private
String
getShortTargetFlag
(
String
distinguishedName
)
{
String
target
=
null
;
if
(
StringUtils
.
isNotEmpty
(
distinguishedName
)
){
String
[]
array
=
distinguishedName
.
split
(
"@"
);
StringBuffer
sb
=
new
StringBuffer
();
if
(
array
.
length
==
3
){
target
=
sb
.
append
(
array
[
1
]).
append
(
"@"
).
append
(
array
[
2
]).
toString
();
}
else
if
(
array
.
length
==
2
){
//2段
target
=
sb
.
append
(
array
[
0
]).
append
(
"@"
).
append
(
array
[
1
]).
toString
();
}
else
{
target
=
array
[
0
];
}
}
return
target
;
}
private
List
<
String
>
addStringToList
(
List
<
String
>
sourceList
,
String
targetString
)
{
if
(
sourceList
==
null
)
{
sourceList
=
new
ArrayList
<>();
}
if
(!
sourceList
.
contains
(
targetString
))
{
sourceList
.
add
(
targetString
);
}
return
sourceList
;
}
private
List
<
String
>
removeStringFromList
(
List
<
String
>
sourceList
,
String
targetString
)
{
if
(
sourceList
==
null
)
{
sourceList
=
new
ArrayList
<>();
}
if
(
sourceList
.
contains
(
targetString
))
{
sourceList
.
remove
(
targetString
);
}
return
sourceList
;
}
/**
* 支持提供排序的列名
*/
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录