提交 165ba0c6 编写于 作者: 偏锋书生's avatar 偏锋书生

打通模块和菜单,通过数据库配置完成

上级 6a6e2b60
...@@ -8,30 +8,30 @@ import net.wicp.tams.common.constant.dic.intf.IEnumCombobox; ...@@ -8,30 +8,30 @@ import net.wicp.tams.common.constant.dic.intf.IEnumCombobox;
/*** /***
* 组织单位类型 * 组织单位类型
* *
* @author Administrator * @author andy
* *
*/ */
public enum ResType implements IEnumCombobox { public enum ResAuthType implements IEnumCombobox {
OPERATE("操作资源", "icon-position", null, false, null), OPERATE("操作资源", "icon-position", null, false, null),
DATA("数据资源", "icon-group", null, false, null), DATA("数据资源", "icon-group", null, false, null),
MODULE("模块", "icon-dept", OPERATE, false, null), MODULE("模块", "icon-dept", OPERATE, false, null),
DIR("目录", "icon-org", OPERATE, true, new ResType[] { MODULE }), DIR("目录", "icon-org", OPERATE, true, new ResAuthType[] { MODULE }),
URL("地址", "icon-dept", OPERATE, true, new ResType[] { MODULE, DIR }); URL("地址", "icon-dept", OPERATE, true, new ResAuthType[] { MODULE, DIR });
private final String desc; private final String desc;
private final String icon; private final String icon;
private final ResType parent;// 资源的父类型 private final ResAuthType parent;// 资源的父类型
private final boolean isEdit;// 所定义的类型能否被修改,true,可以被修改,false:不能被修改 private final boolean isEdit;// 所定义的类型能否被修改,true,可以被修改,false:不能被修改
private final ResType[] parentTree;// 资源可以放在哪个类型的资源下面,如URL只能放在DIR目录下。 private final ResAuthType[] parentTree;// 资源可以放在哪个类型的资源下面,如URL只能放在DIR目录下。
private ResType(String desc, String icon, ResType parent, boolean isEdit, ResType[] parentTree) { private ResAuthType(String desc, String icon, ResAuthType parent, boolean isEdit, ResAuthType[] parentTree) {
this.desc = desc; this.desc = desc;
this.parent = parent; this.parent = parent;
this.icon = icon; this.icon = icon;
...@@ -45,7 +45,7 @@ public enum ResType implements IEnumCombobox { ...@@ -45,7 +45,7 @@ public enum ResType implements IEnumCombobox {
* @param parent 要拖拽的目标资源类型 * @param parent 要拖拽的目标资源类型
* @return * @return
*/ */
public boolean canDrag(ResType parent) { public boolean canDrag(ResAuthType parent) {
if (ArrayUtils.isEmpty(parentTree)) { if (ArrayUtils.isEmpty(parentTree)) {
return false; return false;
} }
...@@ -58,11 +58,11 @@ public enum ResType implements IEnumCombobox { ...@@ -58,11 +58,11 @@ public enum ResType implements IEnumCombobox {
* @param name * @param name
* @return * @return
*/ */
public static ResType findByName(String name) { public static ResAuthType findByName(String name) {
if (StringUtils.isEmpty(name)) { if (StringUtils.isEmpty(name)) {
return URL; return URL;
} }
for (ResType ele : ResType.values()) { for (ResAuthType ele : ResAuthType.values()) {
if (ele.name().equals(name)) { if (ele.name().equals(name)) {
return ele; return ele;
} }
...@@ -93,7 +93,7 @@ public enum ResType implements IEnumCombobox { ...@@ -93,7 +93,7 @@ public enum ResType implements IEnumCombobox {
return this.desc; return this.desc;
} }
public ResType getParent() { public ResAuthType getParent() {
return parent; return parent;
} }
......
...@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service; ...@@ -11,7 +11,7 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wicp.tams.app.duckula.controller.bean.constant.ResType; import net.wicp.tams.app.duckula.controller.bean.constant.ResAuthType;
import net.wicp.tams.app.duckula.controller.bean.models.SysResource; 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.bean.models.SysRole;
import net.wicp.tams.app.duckula.controller.dao.SysResourceMapper; import net.wicp.tams.app.duckula.controller.dao.SysResourceMapper;
...@@ -101,7 +101,7 @@ public class MenuService implements IMenuService { ...@@ -101,7 +101,7 @@ public class MenuService implements IMenuService {
unAllot.setId(-1l); unAllot.setId(-1l);
unAllot.setResName("未分配的资源"); unAllot.setResName("未分配的资源");
unAllot.setResValue("0"); unAllot.setResValue("0");
unAllot.setResType(ResType.DIR.name()); unAllot.setResType(ResAuthType.DIR.name());
unAllot.setIcon("icon-folder-star"); unAllot.setIcon("icon-folder-star");
unAllot.setResLevel(1); unAllot.setResLevel(1);
unAllot.setParentId(1l); unAllot.setParentId(1l);
......
package net.wicp.tams.duckula.ops.pages; package net.wicp.tams.duckula.ops.pages;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Set; import java.util.Set;
...@@ -12,7 +11,6 @@ import org.apache.tapestry5.Asset; ...@@ -12,7 +11,6 @@ import org.apache.tapestry5.Asset;
import org.apache.tapestry5.annotations.InjectPage; import org.apache.tapestry5.annotations.InjectPage;
import org.apache.tapestry5.annotations.OnEvent; import org.apache.tapestry5.annotations.OnEvent;
import org.apache.tapestry5.annotations.Path; import org.apache.tapestry5.annotations.Path;
import org.apache.tapestry5.annotations.Persist;
import org.apache.tapestry5.annotations.Property; import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.annotations.SessionState; import org.apache.tapestry5.annotations.SessionState;
import org.apache.tapestry5.annotations.SetupRender; import org.apache.tapestry5.annotations.SetupRender;
...@@ -26,13 +24,13 @@ import com.alibaba.fastjson.JSONArray; ...@@ -26,13 +24,13 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.SysGlobal;
import net.wicp.tams.app.duckula.controller.bean.models.SysResource; 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.SysRoleRes;
import net.wicp.tams.app.duckula.controller.bean.models.SysRoleResExample; 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.bean.models.SysRoleResExample.Criteria;
import net.wicp.tams.app.duckula.controller.config.constant.ConfigGlobleName; 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.SysGlobalMapper;
import net.wicp.tams.app.duckula.controller.dao.SysResourceMapper; import net.wicp.tams.app.duckula.controller.dao.SysResourceMapper;
import net.wicp.tams.app.duckula.controller.dao.SysRoleResMapper; import net.wicp.tams.app.duckula.controller.dao.SysRoleResMapper;
...@@ -41,7 +39,6 @@ import net.wicp.tams.common.apiext.CollectionUtil; ...@@ -41,7 +39,6 @@ import net.wicp.tams.common.apiext.CollectionUtil;
import net.wicp.tams.common.apiext.StringUtil; import net.wicp.tams.common.apiext.StringUtil;
import net.wicp.tams.common.constant.dic.YesOrNo; import net.wicp.tams.common.constant.dic.YesOrNo;
import net.wicp.tams.component.assistbean.Menu; 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.component.tools.TapestryAssist;
import net.wicp.tams.duckula.ops.beans.SessionBean; import net.wicp.tams.duckula.ops.beans.SessionBean;
...@@ -72,8 +69,6 @@ public class Index { ...@@ -72,8 +69,6 @@ public class Index {
@Inject @Inject
private SysResourceMapper sysResourceMapper; private SysResourceMapper sysResourceMapper;
@Inject
private SqlMapper sqlMapper;
@OnEvent(value = "switchMenu") @OnEvent(value = "switchMenu")
public List<Menu> switchMenu(String moudleId) throws IOException { public List<Menu> switchMenu(String moudleId) throws IOException {
...@@ -99,7 +94,18 @@ public class Index { ...@@ -99,7 +94,18 @@ public class Index {
// } // }
QueryWrapper<SysResource> queryWrapper = new QueryWrapper<SysResource>(); QueryWrapper<SysResource> queryWrapper = new QueryWrapper<SysResource>();
queryWrapper.eq("parent_id", Long.parseLong(moudleId)); queryWrapper.eq("parent_id", Long.parseLong(moudleId));
queryWrapper.eq("res_type", ResAuthType.URL.name());
List<SysResource> selectList = sysResourceMapper.selectList(queryWrapper); 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(); List<Menu> retlist = CollectionFactory.newList();
for (SysResource sysResource : selectList) { for (SysResource sysResource : selectList) {
String id = String.valueOf(sysResource.getId()); String id = String.valueOf(sysResource.getId());
...@@ -108,7 +114,7 @@ public class Index { ...@@ -108,7 +114,7 @@ public class Index {
String resValue = sysResource.getResValue(); String resValue = sysResource.getResValue();
if (StringUtil.isNotNull(id) && StringUtil.isNotNull(resName) && StringUtil.isNotNull(resType) if (StringUtil.isNotNull(id) && StringUtil.isNotNull(resName) && StringUtil.isNotNull(resType)
&& StringUtil.isNotNull(resValue)) { && 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(); .build();
retlist.add(menu); retlist.add(menu);
} }
...@@ -116,6 +122,16 @@ public class Index { ...@@ -116,6 +122,16 @@ public class Index {
return retlist; 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 @Inject
private SysRoleResMapper sysRoleResMapper; private SysRoleResMapper sysRoleResMapper;
...@@ -127,21 +143,17 @@ public class Index { ...@@ -127,21 +143,17 @@ public class Index {
QueryWrapper<SysResource> queryWrapper = new QueryWrapper<SysResource>(); QueryWrapper<SysResource> queryWrapper = new QueryWrapper<SysResource>();
queryWrapper.eq("res_type", "MODULE"); queryWrapper.eq("res_type", "MODULE");
List<SysResource> selectList = sysResourceMapper.selectList(queryWrapper); List<SysResource> selectList = sysResourceMapper.selectList(queryWrapper);
List<Long> roles = sqlMapper.selectRoleByStaff(sessionBean.getSysUser().getId());
//List<Long> roles = new ArrayList<Long>();// 测试用 //List<Long> roles = new ArrayList<Long>();// 测试用
//roles.add(1405760902957436930l); //roles.add(1405760902957436930l);
SysRoleResExample example = new SysRoleResExample();
Criteria criteria = example.createCriteria(); Set<Long> findResByRoles = findResByRoles();
criteria.andRoleIdIn(roles);
List<SysRoleRes> list = sysRoleResMapper.selectByExample(example);
Set<Long> resIds = CollectionUtil.getColSetFromObj(list, "resId");
// 得到有权限的模块 // 得到有权限的模块
CollectionUtils.filter(selectList, new Predicate() { CollectionUtils.filter(selectList, new Predicate() {
@Override @Override
public boolean evaluate(Object arg0) { public boolean evaluate(Object arg0) {
SysResource sysResource = (SysResource) arg0; SysResource sysResource = (SysResource) arg0;
return resIds.contains(sysResource.getId()); return findResByRoles.contains(sysResource.getId());
} }
}); });
JSONArray temp = new JSONArray(); JSONArray temp = new JSONArray();
......
...@@ -11,6 +11,7 @@ import org.slf4j.Logger; ...@@ -11,6 +11,7 @@ import org.slf4j.Logger;
import cn.hutool.crypto.digest.BCrypt; import cn.hutool.crypto.digest.BCrypt;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
import net.wicp.tams.app.duckula.controller.bean.models.SysUser; 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.app.duckula.controller.dao.SysUserMapper;
import net.wicp.tams.common.apiext.CollectionUtil; import net.wicp.tams.common.apiext.CollectionUtil;
import net.wicp.tams.common.apiext.StringUtil; import net.wicp.tams.common.apiext.StringUtil;
...@@ -32,6 +33,9 @@ public class Login { ...@@ -32,6 +33,9 @@ public class Login {
@Inject @Inject
private SysUserMapper sysUserMapper; private SysUserMapper sysUserMapper;
@Inject
private SqlMapper sqlMapper;
@SuppressWarnings("unchecked") @SuppressWarnings("unchecked")
Object onSuccess() { Object onSuccess() {
String userName = request.getParameter("userName"); String userName = request.getParameter("userName");
...@@ -45,6 +49,7 @@ public class Login { ...@@ -45,6 +49,7 @@ public class Login {
return Login.class; return Login.class;
} }
SysUser sysUser = selUsers.get(0); SysUser sysUser = selUsers.get(0);
List<Long> roles = sqlMapper.selectRoleByStaff(sysUser.getId());
boolean checkpw = BCrypt.checkpw(pwd, sysUser.getPassword()); boolean checkpw = BCrypt.checkpw(pwd, sysUser.getPassword());
if (!checkpw) { if (!checkpw) {
log.error("用户{}密码有误", userName); log.error("用户{}密码有误", userName);
...@@ -53,6 +58,7 @@ public class Login { ...@@ -53,6 +58,7 @@ public class Login {
sessionBean = new SessionBean(); sessionBean = new SessionBean();
sessionBean.setIsLogin(YesOrNo.yes); sessionBean.setIsLogin(YesOrNo.yes);
sessionBean.setSysUser(selUsers.get(0)); sessionBean.setSysUser(selUsers.get(0));
sessionBean.setRoles(roles);
return Index.class; return Index.class;
} }
......
...@@ -12,7 +12,6 @@ import org.apache.commons.io.FileUtils; ...@@ -12,7 +12,6 @@ import org.apache.commons.io.FileUtils;
import org.apache.commons.io.filefilter.IOFileFilter; import org.apache.commons.io.filefilter.IOFileFilter;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.apache.tapestry5.annotations.Import; import org.apache.tapestry5.annotations.Import;
import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.ioc.annotations.Inject; import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.json.JSONObject; import org.apache.tapestry5.json.JSONObject;
import org.apache.tapestry5.util.TextStreamResponse; import org.apache.tapestry5.util.TextStreamResponse;
...@@ -21,7 +20,7 @@ import org.w3c.dom.Document; ...@@ -21,7 +20,7 @@ import org.w3c.dom.Document;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; 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.ResAuthType;
import net.wicp.tams.app.duckula.controller.bean.models.SysResource; 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.dao.SysResourceMapper;
import net.wicp.tams.app.duckula.controller.service.ContextInit; import net.wicp.tams.app.duckula.controller.service.ContextInit;
...@@ -139,7 +138,7 @@ public class ResManager extends ParentPageBean<SysResource> { ...@@ -139,7 +138,7 @@ public class ResManager extends ParentPageBean<SysResource> {
final List<SysResource> hasResList = new ArrayList<SysResource>(); final List<SysResource> hasResList = new ArrayList<SysResource>();
for (File file : files) { for (File file : files) {
SysResource res = new SysResource(); SysResource res = new SysResource();
res.setResType(ResType.URL.name()); res.setResType(ResAuthType.URL.name());
String path = file.getPath(); String path = file.getPath();
int beginIndex = path.indexOf("pages" + File.separator); int beginIndex = path.indexOf("pages" + File.separator);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册