Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
duckula
duckula-ops
提交
165ba0c6
duckula-ops
项目概览
duckula
/
duckula-ops
通知
6
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
duckula-ops
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
165ba0c6
编写于
6月 18, 2021
作者:
偏锋书生
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
打通模块和菜单,通过数据库配置完成
上级
6a6e2b60
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
48 addition
and
31 deletion
+48
-31
src/main/java/net/wicp/tams/app/duckula/controller/bean/constant/ResAuthType.java
...ams/app/duckula/controller/bean/constant/ResAuthType.java
+11
-11
src/main/java/net/wicp/tams/app/duckula/controller/service/cas/impl/MenuService.java
.../app/duckula/controller/service/cas/impl/MenuService.java
+2
-2
src/main/java/net/wicp/tams/duckula/ops/pages/Index.java
src/main/java/net/wicp/tams/duckula/ops/pages/Index.java
+27
-15
src/main/java/net/wicp/tams/duckula/ops/pages/Login.java
src/main/java/net/wicp/tams/duckula/ops/pages/Login.java
+6
-0
src/main/java/net/wicp/tams/duckula/ops/pages/cas/ResManager.java
.../java/net/wicp/tams/duckula/ops/pages/cas/ResManager.java
+2
-3
未找到文件。
src/main/java/net/wicp/tams/app/duckula/controller/bean/constant/ResType.java
→
src/main/java/net/wicp/tams/app/duckula/controller/bean/constant/Res
Auth
Type.java
浏览文件 @
165ba0c6
...
...
@@ -8,30 +8,30 @@ import net.wicp.tams.common.constant.dic.intf.IEnumCombobox;
/***
* 组织单位类型
*
* @author
Administrator
* @author
andy
*
*/
public
enum
ResType
implements
IEnumCombobox
{
public
enum
Res
Auth
Type
implements
IEnumCombobox
{
OPERATE
(
"操作资源"
,
"icon-position"
,
null
,
false
,
null
),
DATA
(
"数据资源"
,
"icon-group"
,
null
,
false
,
null
),
MODULE
(
"模块"
,
"icon-dept"
,
OPERATE
,
false
,
null
),
DIR
(
"目录"
,
"icon-org"
,
OPERATE
,
true
,
new
ResType
[]
{
MODULE
}),
DIR
(
"目录"
,
"icon-org"
,
OPERATE
,
true
,
new
Res
Auth
Type
[]
{
MODULE
}),
URL
(
"地址"
,
"icon-dept"
,
OPERATE
,
true
,
new
ResType
[]
{
MODULE
,
DIR
});
URL
(
"地址"
,
"icon-dept"
,
OPERATE
,
true
,
new
Res
Auth
Type
[]
{
MODULE
,
DIR
});
private
final
String
desc
;
private
final
String
icon
;
private
final
ResType
parent
;
// 资源的父类型
private
final
Res
Auth
Type
parent
;
// 资源的父类型
private
final
boolean
isEdit
;
// 所定义的类型能否被修改,true,可以被修改,false:不能被修改
private
final
ResType
[]
parentTree
;
// 资源可以放在哪个类型的资源下面,如URL只能放在DIR目录下。
private
final
Res
Auth
Type
[]
parentTree
;
// 资源可以放在哪个类型的资源下面,如URL只能放在DIR目录下。
private
Res
Type
(
String
desc
,
String
icon
,
ResType
parent
,
boolean
isEdit
,
Res
Type
[]
parentTree
)
{
private
Res
AuthType
(
String
desc
,
String
icon
,
ResAuthType
parent
,
boolean
isEdit
,
ResAuth
Type
[]
parentTree
)
{
this
.
desc
=
desc
;
this
.
parent
=
parent
;
this
.
icon
=
icon
;
...
...
@@ -45,7 +45,7 @@ public enum ResType implements IEnumCombobox {
* @param parent 要拖拽的目标资源类型
* @return
*/
public
boolean
canDrag
(
ResType
parent
)
{
public
boolean
canDrag
(
Res
Auth
Type
parent
)
{
if
(
ArrayUtils
.
isEmpty
(
parentTree
))
{
return
false
;
}
...
...
@@ -58,11 +58,11 @@ public enum ResType implements IEnumCombobox {
* @param name
* @return
*/
public
static
ResType
findByName
(
String
name
)
{
public
static
Res
Auth
Type
findByName
(
String
name
)
{
if
(
StringUtils
.
isEmpty
(
name
))
{
return
URL
;
}
for
(
Res
Type
ele
:
Res
Type
.
values
())
{
for
(
Res
AuthType
ele
:
ResAuth
Type
.
values
())
{
if
(
ele
.
name
().
equals
(
name
))
{
return
ele
;
}
...
...
@@ -93,7 +93,7 @@ public enum ResType implements IEnumCombobox {
return
this
.
desc
;
}
public
ResType
getParent
()
{
public
Res
Auth
Type
getParent
()
{
return
parent
;
}
...
...
src/main/java/net/wicp/tams/app/duckula/controller/service/cas/impl/MenuService.java
浏览文件 @
165ba0c6
...
...
@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wicp.tams.app.duckula.controller.bean.constant.ResType
;
import
net.wicp.tams.app.duckula.controller.bean.constant.Res
Auth
Type
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysResource
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysRole
;
import
net.wicp.tams.app.duckula.controller.dao.SysResourceMapper
;
...
...
@@ -101,7 +101,7 @@ public class MenuService implements IMenuService {
unAllot
.
setId
(-
1
l
);
unAllot
.
setResName
(
"未分配的资源"
);
unAllot
.
setResValue
(
"0"
);
unAllot
.
setResType
(
ResType
.
DIR
.
name
());
unAllot
.
setResType
(
Res
Auth
Type
.
DIR
.
name
());
unAllot
.
setIcon
(
"icon-folder-star"
);
unAllot
.
setResLevel
(
1
);
unAllot
.
setParentId
(
1
l
);
...
...
src/main/java/net/wicp/tams/duckula/ops/pages/Index.java
浏览文件 @
165ba0c6
package
net.wicp.tams.duckula.ops.pages
;
import
java.io.IOException
;
import
java.util.ArrayList
;
import
java.util.Date
;
import
java.util.List
;
import
java.util.Set
;
...
...
@@ -12,7 +11,6 @@ import org.apache.tapestry5.Asset;
import
org.apache.tapestry5.annotations.InjectPage
;
import
org.apache.tapestry5.annotations.OnEvent
;
import
org.apache.tapestry5.annotations.Path
;
import
org.apache.tapestry5.annotations.Persist
;
import
org.apache.tapestry5.annotations.Property
;
import
org.apache.tapestry5.annotations.SessionState
;
import
org.apache.tapestry5.annotations.SetupRender
;
...
...
@@ -26,13 +24,13 @@ import com.alibaba.fastjson.JSONArray;
import
com.alibaba.fastjson.JSONObject
;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
net.wicp.tams.app.duckula.controller.bean.constant.ResAuthType
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysGlobal
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysResource
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysRoleRes
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysRoleResExample
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysRoleResExample.Criteria
;
import
net.wicp.tams.app.duckula.controller.config.constant.ConfigGlobleName
;
import
net.wicp.tams.app.duckula.controller.dao.SqlMapper
;
import
net.wicp.tams.app.duckula.controller.dao.SysGlobalMapper
;
import
net.wicp.tams.app.duckula.controller.dao.SysResourceMapper
;
import
net.wicp.tams.app.duckula.controller.dao.SysRoleResMapper
;
...
...
@@ -41,7 +39,6 @@ import net.wicp.tams.common.apiext.CollectionUtil;
import
net.wicp.tams.common.apiext.StringUtil
;
import
net.wicp.tams.common.constant.dic.YesOrNo
;
import
net.wicp.tams.component.assistbean.Menu
;
import
net.wicp.tams.component.constant.ResType
;
import
net.wicp.tams.component.tools.TapestryAssist
;
import
net.wicp.tams.duckula.ops.beans.SessionBean
;
...
...
@@ -72,8 +69,6 @@ public class Index {
@Inject
private
SysResourceMapper
sysResourceMapper
;
@Inject
private
SqlMapper
sqlMapper
;
@OnEvent
(
value
=
"switchMenu"
)
public
List
<
Menu
>
switchMenu
(
String
moudleId
)
throws
IOException
{
...
...
@@ -99,7 +94,18 @@ public class Index {
// }
QueryWrapper
<
SysResource
>
queryWrapper
=
new
QueryWrapper
<
SysResource
>();
queryWrapper
.
eq
(
"parent_id"
,
Long
.
parseLong
(
moudleId
));
queryWrapper
.
eq
(
"res_type"
,
ResAuthType
.
URL
.
name
());
List
<
SysResource
>
selectList
=
sysResourceMapper
.
selectList
(
queryWrapper
);
Set
<
Long
>
findResByRoles
=
findResByRoles
();
CollectionUtils
.
filter
(
selectList
,
new
Predicate
()
{
@Override
public
boolean
evaluate
(
Object
arg0
)
{
SysResource
sysResource
=(
SysResource
)
arg0
;
return
findResByRoles
.
contains
(
sysResource
.
getId
());
}
});
List
<
Menu
>
retlist
=
CollectionFactory
.
newList
();
for
(
SysResource
sysResource
:
selectList
)
{
String
id
=
String
.
valueOf
(
sysResource
.
getId
());
...
...
@@ -108,7 +114,7 @@ public class Index {
String
resValue
=
sysResource
.
getResValue
();
if
(
StringUtil
.
isNotNull
(
id
)
&&
StringUtil
.
isNotNull
(
resName
)
&&
StringUtil
.
isNotNull
(
resType
)
&&
StringUtil
.
isNotNull
(
resValue
))
{
Menu
menu
=
Menu
.
builder
().
id
(
id
).
resName
(
resName
).
resType
(
ResType
.
get
(
resType
)).
resValue
(
resValue
)
Menu
menu
=
Menu
.
builder
().
id
(
id
).
resName
(
resName
).
resType
(
net
.
wicp
.
tams
.
component
.
constant
.
ResType
.
get
(
resType
)).
resValue
(
resValue
)
.
build
();
retlist
.
add
(
menu
);
}
...
...
@@ -116,6 +122,16 @@ public class Index {
return
retlist
;
}
private
Set
<
Long
>
findResByRoles
()
{
//得到
SysRoleResExample
example
=
new
SysRoleResExample
();
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andRoleIdIn
(
sessionBean
.
getRoles
());
List
<
SysRoleRes
>
list
=
sysRoleResMapper
.
selectByExample
(
example
);
Set
<
Long
>
resIds
=
CollectionUtil
.
getColSetFromObj
(
list
,
"resId"
);
return
resIds
;
}
@Inject
private
SysRoleResMapper
sysRoleResMapper
;
...
...
@@ -127,21 +143,17 @@ public class Index {
QueryWrapper
<
SysResource
>
queryWrapper
=
new
QueryWrapper
<
SysResource
>();
queryWrapper
.
eq
(
"res_type"
,
"MODULE"
);
List
<
SysResource
>
selectList
=
sysResourceMapper
.
selectList
(
queryWrapper
);
List
<
Long
>
roles
=
sqlMapper
.
selectRoleByStaff
(
sessionBean
.
getSysUser
().
getId
());
//List<Long> roles = new ArrayList<Long>();// 测试用
//roles.add(1405760902957436930l);
SysRoleResExample
example
=
new
SysRoleResExample
();
Criteria
criteria
=
example
.
createCriteria
();
criteria
.
andRoleIdIn
(
roles
);
List
<
SysRoleRes
>
list
=
sysRoleResMapper
.
selectByExample
(
example
);
Set
<
Long
>
resIds
=
CollectionUtil
.
getColSetFromObj
(
list
,
"resId"
);
Set
<
Long
>
findResByRoles
=
findResByRoles
();
// 得到有权限的模块
CollectionUtils
.
filter
(
selectList
,
new
Predicate
()
{
@Override
public
boolean
evaluate
(
Object
arg0
)
{
SysResource
sysResource
=
(
SysResource
)
arg0
;
return
resId
s
.
contains
(
sysResource
.
getId
());
return
findResByRole
s
.
contains
(
sysResource
.
getId
());
}
});
JSONArray
temp
=
new
JSONArray
();
...
...
src/main/java/net/wicp/tams/duckula/ops/pages/Login.java
浏览文件 @
165ba0c6
...
...
@@ -11,6 +11,7 @@ import org.slf4j.Logger;
import
cn.hutool.crypto.digest.BCrypt
;
import
lombok.extern.slf4j.Slf4j
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysUser
;
import
net.wicp.tams.app.duckula.controller.dao.SqlMapper
;
import
net.wicp.tams.app.duckula.controller.dao.SysUserMapper
;
import
net.wicp.tams.common.apiext.CollectionUtil
;
import
net.wicp.tams.common.apiext.StringUtil
;
...
...
@@ -32,6 +33,9 @@ public class Login {
@Inject
private
SysUserMapper
sysUserMapper
;
@Inject
private
SqlMapper
sqlMapper
;
@SuppressWarnings
(
"unchecked"
)
Object
onSuccess
()
{
String
userName
=
request
.
getParameter
(
"userName"
);
...
...
@@ -45,6 +49,7 @@ public class Login {
return
Login
.
class
;
}
SysUser
sysUser
=
selUsers
.
get
(
0
);
List
<
Long
>
roles
=
sqlMapper
.
selectRoleByStaff
(
sysUser
.
getId
());
boolean
checkpw
=
BCrypt
.
checkpw
(
pwd
,
sysUser
.
getPassword
());
if
(!
checkpw
)
{
log
.
error
(
"用户{}密码有误"
,
userName
);
...
...
@@ -53,6 +58,7 @@ public class Login {
sessionBean
=
new
SessionBean
();
sessionBean
.
setIsLogin
(
YesOrNo
.
yes
);
sessionBean
.
setSysUser
(
selUsers
.
get
(
0
));
sessionBean
.
setRoles
(
roles
);
return
Index
.
class
;
}
...
...
src/main/java/net/wicp/tams/duckula/ops/pages/cas/ResManager.java
浏览文件 @
165ba0c6
...
...
@@ -12,7 +12,6 @@ import org.apache.commons.io.FileUtils;
import
org.apache.commons.io.filefilter.IOFileFilter
;
import
org.apache.commons.lang3.StringUtils
;
import
org.apache.tapestry5.annotations.Import
;
import
org.apache.tapestry5.annotations.Property
;
import
org.apache.tapestry5.ioc.annotations.Inject
;
import
org.apache.tapestry5.json.JSONObject
;
import
org.apache.tapestry5.util.TextStreamResponse
;
...
...
@@ -21,7 +20,7 @@ import org.w3c.dom.Document;
import
com.baomidou.mybatisplus.core.conditions.query.QueryWrapper
;
import
com.baomidou.mybatisplus.core.mapper.BaseMapper
;
import
net.wicp.tams.app.duckula.controller.bean.constant.ResType
;
import
net.wicp.tams.app.duckula.controller.bean.constant.Res
Auth
Type
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysResource
;
import
net.wicp.tams.app.duckula.controller.dao.SysResourceMapper
;
import
net.wicp.tams.app.duckula.controller.service.ContextInit
;
...
...
@@ -139,7 +138,7 @@ public class ResManager extends ParentPageBean<SysResource> {
final
List
<
SysResource
>
hasResList
=
new
ArrayList
<
SysResource
>();
for
(
File
file
:
files
)
{
SysResource
res
=
new
SysResource
();
res
.
setResType
(
ResType
.
URL
.
name
());
res
.
setResType
(
Res
Auth
Type
.
URL
.
name
());
String
path
=
file
.
getPath
();
int
beginIndex
=
path
.
indexOf
(
"pages"
+
File
.
separator
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录