Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
ghsby
o2oa
提交
ff13b351
o2oa
项目概览
ghsby
/
o2oa
落后 Fork 源项目 2880 个版本
Fork自
浙江兰德纵横网络技术股份有限公司 / o2oa
通知
1
Star
1
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,发现更多精彩内容 >>
提交
ff13b351
编写于
8月 31, 2020
作者:
O
o2sword
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加查询文档阅读权限接口
上级
e9040d4e
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
179 addition
and
0 deletion
+179
-0
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryPermissionReadDocument.java
...rol/jaxrs/document/ActionQueryPermissionReadDocument.java
+132
-0
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/DocumentAction.java
...x/cms/assemble/control/jaxrs/document/DocumentAction.java
+23
-0
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/DocumentCipherAction.java
...assemble/control/jaxrs/document/DocumentCipherAction.java
+24
-0
未找到文件。
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/ActionQueryPermissionReadDocument.java
0 → 100644
浏览文件 @
ff13b351
package
com.x.cms.assemble.control.jaxrs.document
;
import
com.x.base.core.project.http.ActionResult
;
import
com.x.base.core.project.http.EffectivePerson
;
import
com.x.base.core.project.jaxrs.WrapBoolean
;
import
com.x.base.core.project.logger.Logger
;
import
com.x.base.core.project.logger.LoggerFactory
;
import
com.x.base.core.project.organization.Person
;
import
com.x.base.core.project.tools.ListTools
;
import
com.x.cms.core.entity.AppInfo
;
import
com.x.cms.core.entity.CategoryInfo
;
import
com.x.cms.core.entity.Document
;
import
org.apache.commons.lang3.StringUtils
;
import
java.util.List
;
public
class
ActionQueryPermissionReadDocument
extends
BaseAction
{
private
static
Logger
logger
=
LoggerFactory
.
getLogger
(
ActionQueryPermissionReadDocument
.
class
);
protected
ActionResult
<
Wo
>
execute
(
EffectivePerson
effectivePerson
,
String
id
,
String
queryPerson
)
throws
Exception
{
ActionResult
<
Wo
>
result
=
new
ActionResult
<>();
Wo
wo
=
new
Wo
();
wo
.
setValue
(
false
);
result
.
setData
(
wo
);
Document
document
=
documentQueryService
.
view
(
id
,
effectivePerson
);
if
(
document
==
null
){
return
result
;
}
//匿名用户是否可读
if
(
effectivePerson
.
isAnonymous
()){
AppInfo
appInfo
=
appInfoServiceAdv
.
get
(
document
.
getAppId
()
);
CategoryInfo
categoryInfo
=
categoryInfoServiceAdv
.
get
(
document
.
getCategoryId
());
if
(
appInfo
!=
null
&&
categoryInfo
!=
null
){
boolean
flag
=
true
;
//检查这个文档所在的栏目和分类是否都是全员可见
if
(
(
ListTools
.
isNotEmpty
(
document
.
getReadPersonList
()
)
&&
!
document
.
getReadPersonList
().
contains
(
"所有人"
)
)
||
ListTools
.
isNotEmpty
(
document
.
getReadUnitList
()
)
||
ListTools
.
isNotEmpty
(
document
.
getReadGroupList
()
)
)
{
flag
=
false
;
}
//检查这个文档所在的栏目和分类是否都是全员可见
if
(
!
appInfo
.
getAllPeopleView
()
)
{
//栏目不可见
flag
=
false
;
}
//检查这个文档所在的栏目和分类是否都是全员可见
if
(
!
categoryInfo
.
getAllPeopleView
()
)
{
//分类不可见
flag
=
false
;
}
wo
.
setValue
(
flag
);
return
result
;
}
}
else
{
String
personName
=
effectivePerson
.
getDistinguishedName
();
if
(
effectivePerson
.
isManager
()){
if
(
StringUtils
.
isNotEmpty
(
queryPerson
)){
Person
person
=
userManagerService
.
getPerson
(
queryPerson
);
if
(
person
!=
null
){
personName
=
person
.
getDistinguishedName
();
}
else
{
return
result
;
}
}
else
{
wo
.
setValue
(
true
);
return
result
;
}
}
List
<
String
>
unitNames
=
userManagerService
.
listUnitNamesWithPerson
(
personName
);
List
<
String
>
groupNames
=
userManagerService
.
listGroupNamesByPerson
(
personName
);
//是否是作者
if
(
ListTools
.
isNotEmpty
(
document
.
getAuthorPersonList
()
))
{
if
(
document
.
getAuthorPersonList
().
contains
(
personName
)
)
{
wo
.
setValue
(
true
);
return
result
;
}
}
if
(
ListTools
.
isNotEmpty
(
document
.
getAuthorUnitList
()
))
{
if
(
ListTools
.
containsAny
(
unitNames
,
document
.
getAuthorUnitList
()))
{
wo
.
setValue
(
true
);
return
result
;
}
}
if
(
ListTools
.
isNotEmpty
(
document
.
getAuthorGroupList
()
))
{
if
(
ListTools
.
containsAny
(
groupNames
,
document
.
getAuthorGroupList
()))
{
wo
.
setValue
(
true
);
return
result
;
}
}
//是否是读者
if
(
ListTools
.
contains
(
document
.
getReadPersonList
(),
getShortTargetFlag
(
personName
))
||
ListTools
.
contains
(
document
.
getReadPersonList
(),
"所有人"
)){
wo
.
setValue
(
true
);
return
result
;
}
for
(
String
unitName
:
unitNames
){
if
(
ListTools
.
contains
(
document
.
getReadUnitList
(),
getShortTargetFlag
(
unitName
))){
wo
.
setValue
(
true
);
return
result
;
}
}
for
(
String
groupName
:
groupNames
){
if
(
ListTools
.
contains
(
document
.
getReadGroupList
(),
getShortTargetFlag
(
groupName
))){
wo
.
setValue
(
true
);
return
result
;
}
}
}
return
result
;
}
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
;
}
public
static
class
Wo
extends
WrapBoolean
{
}
}
\ No newline at end of file
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/DocumentAction.java
浏览文件 @
ff13b351
...
...
@@ -653,4 +653,27 @@ public class DocumentAction extends StandardJaxrsAction{
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"查询当前用户是否有阅读文档的权限."
,
action
=
ActionQueryPermissionReadDocument
.
class
)
@GET
@Path
(
"{id}/permission/read"
)
@Produces
(
HttpMediaType
.
APPLICATION_JSON_UTF_8
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
public
void
query_PermissionReadDocument
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
,
@JaxrsParameterDescribe
(
"信息文档ID"
)
@PathParam
(
"id"
)
String
id
)
{
EffectivePerson
effectivePerson
=
this
.
effectivePerson
(
request
);
ActionResult
<
ActionQueryPermissionReadDocument
.
Wo
>
result
=
new
ActionResult
<>();
Boolean
check
=
true
;
if
(
check
){
try
{
result
=
new
ActionQueryPermissionReadDocument
().
execute
(
effectivePerson
,
id
,
null
);
}
catch
(
Exception
e
)
{
result
=
new
ActionResult
<>();
result
.
error
(
e
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
}
\ No newline at end of file
o2server/x_cms_assemble_control/src/main/java/com/x/cms/assemble/control/jaxrs/document/DocumentCipherAction.java
浏览文件 @
ff13b351
...
...
@@ -72,4 +72,28 @@ public class DocumentCipherAction extends StandardJaxrsAction{
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
@JaxrsMethodDescribe
(
value
=
"查询某用户是否有阅读文档的权限."
,
action
=
ActionQueryPermissionReadDocument
.
class
)
@GET
@Path
(
"{id}/permission/read/person/{person}"
)
@Produces
(
HttpMediaType
.
APPLICATION_JSON_UTF_8
)
@Consumes
(
MediaType
.
APPLICATION_JSON
)
public
void
query_PermissionReadDocument
(
@Suspended
final
AsyncResponse
asyncResponse
,
@Context
HttpServletRequest
request
,
@JaxrsParameterDescribe
(
"文档ID"
)
@PathParam
(
"id"
)
String
id
,
@JaxrsParameterDescribe
(
"用户"
)
@PathParam
(
"person"
)
String
person
)
{
EffectivePerson
effectivePerson
=
this
.
effectivePerson
(
request
);
ActionResult
<
ActionQueryPermissionReadDocument
.
Wo
>
result
=
new
ActionResult
<>();
Boolean
check
=
true
;
if
(
check
){
try
{
result
=
new
ActionQueryPermissionReadDocument
().
execute
(
effectivePerson
,
id
,
person
);
}
catch
(
Exception
e
)
{
result
=
new
ActionResult
<>();
result
.
error
(
e
);
logger
.
error
(
e
,
effectivePerson
,
request
,
null
);
}
}
asyncResponse
.
resume
(
ResponseFactory
.
getEntityTagActionResultResponse
(
request
,
result
));
}
}
\ No newline at end of file
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录