use of com.hxkj.system.model.SysUser in project my_curd by qinyou.
the class SysFileController method addAction.
/**
* 增加
* 文件过大 没有良好的提示性信息
*/
public void addAction() throws IOException {
Map<String, Object> result = new HashMap<String, Object>();
HashMap<String, String> extMap = new HashMap<String, String>();
extMap.put("image", prop.get("imageType"));
extMap.put("media", prop.get("mediaType"));
extMap.put("file", prop.get("fileType"));
String limitFileTypes = extMap.get("image") + "," + extMap.get("media") + "," + extMap.get("file");
UploadFile uploadFile = getFile("file");
if (uploadFile != null) {
// 文件原名
String orginFilename = uploadFile.getOriginalFileName();
// 文件后缀
String fileSuf = orginFilename.substring(orginFilename.lastIndexOf(".") + 1).toLowerCase();
if (!Arrays.<String>asList(limitFileTypes.split(",")).contains(fileSuf)) {
result.put("error", 1);
result.put("message", "只允许后缀为:<br/>" + extMap.get("image") + "<br/>" + extMap.get("media") + "<br/>" + extMap.get("file") + "<br/>格式文件");
uploadFile.getFile().delete();
} else {
// 文件量大、上传频繁 这种分发方式并不合适(文件copy后删除原文件占资源,按类型分类可能导致某个目录下文件量超多)
SimpleDateFormat df = new SimpleDateFormat("yyyyMMddHHmmss");
String newFileName = df.format(new Date()) + "_" + new Random().nextInt(1000) + "." + fileSuf;
String pre;
if (Arrays.asList(extMap.get("image").split(",")).contains(fileSuf)) {
pre = prop.get("imagePath");
} else if (Arrays.asList(extMap.get("media").split(",")).contains(fileSuf)) {
pre = prop.get("mediaPath");
} else if (Arrays.asList(extMap.get("file").split(",")).contains(fileSuf)) {
pre = prop.get("filePath");
} else {
pre = "upload/unlikeFile";
}
String relativePath = pre + "/" + newFileName;
pre = PathKit.getWebRootPath() + '/' + pre;
newFileName = pre + "/" + newFileName;
File savefile = new File(newFileName);
FileUtils.copyFile(uploadFile.getFile(), savefile);
if (uploadFile.getFile().exists()) {
uploadFile.getFile().delete();
}
SysFile sysFile = new SysFile();
SysUser sysUser = getSessionUser();
sysFile.setUserId(sysUser.getId());
sysFile.setOriginalFilename(orginFilename);
sysFile.setPath(relativePath);
sysFile.setRemark(getPara("remark"));
sysFile.setType(fileSuf);
sysFile.setCreateTime(new Date());
boolean saveFlag = sysFile.save();
if (!saveFlag) {
result.put("error", 1);
result.put("message", "数据存储失败");
savefile.delete();
} else {
result.put("error", 0);
}
}
} else {
result.put("error", 1);
result.put("message", "请选择文件");
}
render(new JsonRender(JSON.toJSONString(result)).forIE());
}
use of com.hxkj.system.model.SysUser in project my_curd by qinyou.
the class SysUserController method addAction.
public void addAction() {
SysUser sysUser = getBean(SysUser.class, "");
sysUser.setId(Identities.uuid2());
String password = HashKit.sha1(sysUser.getPassword());
sysUser.setPassword(password);
boolean saveFlag = sysUser.save();
if (saveFlag) {
renderText(Constant.ADD_SUCCESS);
} else {
renderText(Constant.ADD_FAIL);
}
}
use of com.hxkj.system.model.SysUser in project my_curd by qinyou.
the class SysUserController method newModel.
public void newModel() {
String id = getPara("id");
if (id != null) {
SysUser sysUser = SysUser.dao.findById(id);
setAttr("sysUser", sysUser);
}
render("system/sysUser_form.html");
}
use of com.hxkj.system.model.SysUser in project my_curd by qinyou.
the class LoginController method action.
/**
* 登录Action
*/
@Before(Tx.class)
public void action() {
String username = getPara("username");
String password = getPara("password");
if (StrKit.isBlank(username)) {
setAttr("errMsg", "请填写用户名。");
render("login.html");
return;
}
if (StrKit.isBlank(password)) {
setAttr("errMsg", "请填写密码。");
render("login.html");
return;
}
SysUser sysUser = SysUser.dao.findByUsername(username);
if (sysUser == null) {
setAttr("errMsg", username + " 用户不存在。");
render("login.html");
return;
}
password = HashKit.sha1(password);
if (!sysUser.getPassword().equals(password)) {
setAttr("username", username);
setAttr("errMsg", " 密码错误。");
render("login.html");
return;
}
if (sysUser.getDisabled().equals("1")) {
setAttr("errMsg", username + " 用户被禁用,请联系管理员。");
render("login.html");
return;
}
String remember = getPara("remember");
// 记住密码 && cookie 不存在
if ("on".equals(remember) && getCookie(usernameKey) == null) {
// 1天
setCookie(usernameKey, username, 60 * 60 * 24 * 1);
setCookie(passwordKey, password, 60 * 60 * 24 * 1);
}
// 登录用户信息
setSessionAttr(Constant.SYSTEM_USER, sysUser);
// 为了 druid session 监控用
setSessionAttr(Constant.SYSTEM_USER_NAME, sysUser.getName());
// 用户角色
SysUserRole sysUserRole = SysUserRole.dao.findRolesByUserId(sysUser.getId());
if (sysUserRole != null) {
// 角色名称(显示用)
setSessionAttr(Constant.SYSTEM_USER_ROLES, sysUserRole.get("roleNames"));
LoginService loginService = Duang.duang(LoginService.class);
List<SysMenu> userMenus = loginService.getUserMenu(sysUserRole.get("roleIds"));
setSessionAttr(Constant.OWN_MENU, userMenus);
}
addOpLog("登录");
redirect("/main");
}
use of com.hxkj.system.model.SysUser in project my_curd by qinyou.
the class AppConfig method configHandler.
@Override
public void configHandler(Handlers me) {
// 处理 websocket 请求
me.add(new WebSocketHandler("^/websocket"));
// 视图中添加应用contenxt
me.add(new ContextPathHandler("ctx"));
// druid 监控(只允许admin查看)
DruidStatViewHandler dvh = new DruidStatViewHandler("/druid", new IDruidStatViewAuth() {
public boolean isPermitted(HttpServletRequest request) {
// 这里只是简单的判断访问者是否登录,还可以做更加细致的权限控制
SysUser user = (SysUser) request.getSession().getAttribute(Constant.SYSTEM_USER);
if (user == null) {
return false;
}
return "admin".equals(user.getUsername());
}
});
me.add(dvh);
}
Aggregations