Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
duckula
duckula-ops
提交
6a6e2b60
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 搜索 >>
提交
6a6e2b60
编写于
6月 18, 2021
作者:
偏锋书生
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
完成角色跟模块连动
上级
06a034c6
变更
6
隐藏空白更改
内联
并排
Showing
6 changed file
with
71 addition
and
12 deletion
+71
-12
src/main/java/net/wicp/tams/app/duckula/controller/dao/SqlMapper.java
...a/net/wicp/tams/app/duckula/controller/dao/SqlMapper.java
+9
-0
src/main/java/net/wicp/tams/duckula/ops/beans/SessionBean.java
...ain/java/net/wicp/tams/duckula/ops/beans/SessionBean.java
+8
-2
src/main/java/net/wicp/tams/duckula/ops/pages/Index.java
src/main/java/net/wicp/tams/duckula/ops/pages/Index.java
+38
-6
src/main/java/net/wicp/tams/duckula/ops/pages/Login.java
src/main/java/net/wicp/tams/duckula/ops/pages/Login.java
+0
-3
src/main/resources/mybatis/primary/sqlmap/SqlMapper.xml
src/main/resources/mybatis/primary/sqlmap/SqlMapper.xml
+15
-0
src/main/resources/net/wicp/tams/duckula/ops/pages/Index.tml
src/main/resources/net/wicp/tams/duckula/ops/pages/Index.tml
+1
-1
未找到文件。
src/main/java/net/wicp/tams/app/duckula/controller/dao/SqlMapper.java
浏览文件 @
6a6e2b60
package
net.wicp.tams.app.duckula.controller.dao
;
import
java.util.List
;
import
org.apache.ibatis.annotations.Param
;
public
interface
SqlMapper
{
...
...
@@ -8,4 +10,11 @@ public interface SqlMapper {
void
dynamicsUpdate
(
@Param
(
"paramSQL"
)
String
sql
);
void
dynamicsDelete
(
@Param
(
"paramSQL"
)
String
sql
);
/***
* 得到对应的角色
* @param id
* @return
*/
List
<
Long
>
selectRoleByStaff
(
@Param
(
"id"
)
Long
id
);
}
src/main/java/net/wicp/tams/duckula/ops/beans/SessionBean.java
浏览文件 @
6a6e2b60
package
net.wicp.tams.duckula.ops.beans
;
import
java.util.List
;
import
com.alibaba.fastjson.JSONArray
;
import
lombok.Data
;
import
net.wicp.tams.app.duckula.controller.bean.models.SysUser
;
import
net.wicp.tams.common.constant.dic.YesOrNo
;
@Data
public
class
SessionBean
{
private
YesOrNo
isLogin
;
//是否登陆
private
SysUser
sysUser
;
private
YesOrNo
isLogin
;
// 是否登陆
private
SysUser
sysUser
;
private
List
<
Long
>
roles
;
// 此用户拥有的角色
private
JSONArray
modules
;
// 此用户拥有的模块
}
src/main/java/net/wicp/tams/duckula/ops/pages/Index.java
浏览文件 @
6a6e2b60
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
;
import
org.apache.commons.collections.CollectionUtils
;
import
org.apache.commons.collections.Predicate
;
import
org.apache.tapestry5.Asset
;
import
org.apache.tapestry5.annotations.InjectPage
;
import
org.apache.tapestry5.annotations.OnEvent
;
...
...
@@ -24,10 +28,16 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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
;
import
net.wicp.tams.common.Result
;
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
;
...
...
@@ -45,6 +55,7 @@ public class Index {
private
Asset
asset
;
@SessionState
@Property
private
SessionBean
sessionBean
;
private
boolean
sessionBeanExists
;
...
...
@@ -60,6 +71,9 @@ public class Index {
@Inject
private
SysResourceMapper
sysResourceMapper
;
@Inject
private
SqlMapper
sqlMapper
;
@OnEvent
(
value
=
"switchMenu"
)
public
List
<
Menu
>
switchMenu
(
String
moudleId
)
throws
IOException
{
...
...
@@ -102,25 +116,43 @@ public class Index {
return
retlist
;
}
@Persist
@
Property
private
JSONArray
modules
;
@
Inject
private
SysRoleResMapper
sysRoleResMapper
;
@SetupRender
void
init
()
{
// 设置模块
if
(
modules
==
null
||
modules
.
isEmpty
())
{
if
(
sessionBean
.
getModules
()
==
null
||
sessionBean
.
getModules
()
.
isEmpty
())
{
QueryWrapper
<
SysResource
>
queryWrapper
=
new
QueryWrapper
<
SysResource
>();
queryWrapper
.
eq
(
"res_type"
,
"MODULE"
);
List
<
SysResource
>
selectList
=
sysResourceMapper
.
selectList
(
queryWrapper
);
this
.
modules
=
new
JSONArray
();
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"
);
// 得到有权限的模块
CollectionUtils
.
filter
(
selectList
,
new
Predicate
()
{
@Override
public
boolean
evaluate
(
Object
arg0
)
{
SysResource
sysResource
=
(
SysResource
)
arg0
;
return
resIds
.
contains
(
sysResource
.
getId
());
}
});
JSONArray
temp
=
new
JSONArray
();
for
(
SysResource
sysResource
:
selectList
)
{
JSONObject
menu
=
new
JSONObject
();
menu
.
put
(
"id"
,
sysResource
.
getId
());
menu
.
put
(
"icon"
,
sysResource
.
getIcon
());
menu
.
put
(
"alt"
,
sysResource
.
getResName
());
t
his
.
modules
.
add
(
menu
);
t
emp
.
add
(
menu
);
}
sessionBean
.
setModules
(
temp
);
}
}
...
...
src/main/java/net/wicp/tams/duckula/ops/pages/Login.java
浏览文件 @
6a6e2b60
...
...
@@ -12,12 +12,9 @@ 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.SysUserMapper
;
import
net.wicp.tams.common.Result
;
import
net.wicp.tams.common.apiext.CollectionUtil
;
import
net.wicp.tams.common.apiext.PwdUtil
;
import
net.wicp.tams.common.apiext.StringUtil
;
import
net.wicp.tams.common.constant.dic.YesOrNo
;
import
net.wicp.tams.component.tools.TapestryAssist
;
import
net.wicp.tams.duckula.ops.beans.SessionBean
;
@Import
(
stack
=
"easyuistack"
)
...
...
src/main/resources/mybatis/primary/sqlmap/SqlMapper.xml
浏览文件 @
6a6e2b60
...
...
@@ -10,4 +10,19 @@
<delete
id=
"dynamicsDelete"
>
${paramSQL}
</delete>
<select
id=
"selectRoleByStaff"
parameterType=
"long"
resultType=
"long"
>
select t.role_id from sys_role_assign t,sys_role rl
where t.role_id=rl.id
and t.assign_type='STAFF' and t.assign_value=#{id} and rl.status='yes'
UNION
select t.role_id from sys_role_assign t,sys_user_group g
where g.group_id=t.assign_value and t.assign_type='GROUP' and g.user_id=#{id}
UNION
select t.role_id from sys_role_assign t,sys_user_position g
where g.position_id=t.assign_value and t.assign_type='POSITION' and g.user_id=#{id}
</select>
</mapper>
\ No newline at end of file
src/main/resources/net/wicp/tams/duckula/ops/pages/Index.tml
浏览文件 @
6a6e2b60
<html
t:type=
"rjzjh/Layout1"
xmlns:t=
"http://tapestry.apache.org/schema/tapestry_5_4.xsd"
xmlns:r=
"tapestry-library:rjzjh"
xmlns:p=
"tapestry:parameter"
isLan=
"false"
iconDir=
"asset|rjzjh/images/tool_ico/"
home=
"main"
modules=
"prop:modules"
dlgs=
"[{'id':'settingDlg','name':'全局配置'},{'id':'aboutDlg','name':'关于'},{'id':'exitAction','name':'退出','opt':'fun'}]"
>
xmlns:p=
"tapestry:parameter"
isLan=
"false"
iconDir=
"asset|rjzjh/images/tool_ico/"
home=
"main"
modules=
"prop:
sessionBean.
modules"
dlgs=
"[{'id':'settingDlg','name':'全局配置'},{'id':'aboutDlg','name':'关于'},{'id':'exitAction','name':'退出','opt':'fun'}]"
>
<r:dialog
id=
"aboutDlg"
title=
"关于duckula"
width=
"460"
height=
"200"
closable=
"true"
>
<p
style=
"font-size: 15px; color: #444;margin-top:50px;text-align:center"
>
Duckula是一套关于binlog监听及其配套工具(如ES同步)
<br/>
的数据实时推送中间件,具有配置灵活,性能较好,高可用
<br/>
策略合理 等特点
</p>
</r:dialog>
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录