Search in sources :

Example 1 with SysUser

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());
}
Also used : SysUser(com.hxkj.system.model.SysUser) JsonRender(com.jfinal.render.JsonRender) UploadFile(com.jfinal.upload.UploadFile) SysFile(com.hxkj.system.model.SysFile) SimpleDateFormat(java.text.SimpleDateFormat) UploadFile(com.jfinal.upload.UploadFile) File(java.io.File) SysFile(com.hxkj.system.model.SysFile)

Example 2 with SysUser

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);
    }
}
Also used : SysUser(com.hxkj.system.model.SysUser)

Example 3 with SysUser

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");
}
Also used : SysUser(com.hxkj.system.model.SysUser)

Example 4 with SysUser

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");
}
Also used : SysUser(com.hxkj.system.model.SysUser) SysMenu(com.hxkj.system.model.SysMenu) SysUserRole(com.hxkj.system.model.SysUserRole) Before(com.jfinal.aop.Before)

Example 5 with SysUser

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);
}
Also used : HttpServletRequest(javax.servlet.http.HttpServletRequest) ContextPathHandler(com.jfinal.ext.handler.ContextPathHandler) SysUser(com.hxkj.system.model.SysUser) DruidStatViewHandler(com.jfinal.plugin.druid.DruidStatViewHandler) WebSocketHandler(com.hxkj.websocket.handler.WebSocketHandler) IDruidStatViewAuth(com.jfinal.plugin.druid.IDruidStatViewAuth)

Aggregations

SysUser (com.hxkj.system.model.SysUser)15 Before (com.jfinal.aop.Before)3 SysMenu (com.hxkj.system.model.SysMenu)2 SysNews (com.hxkj.system.model.SysNews)2 SysUserRole (com.hxkj.system.model.SysUserRole)2 IOException (java.io.IOException)2 SysFile (com.hxkj.system.model.SysFile)1 WebSocketHandler (com.hxkj.websocket.handler.WebSocketHandler)1 ContextPathHandler (com.jfinal.ext.handler.ContextPathHandler)1 Record (com.jfinal.plugin.activerecord.Record)1 DruidStatViewHandler (com.jfinal.plugin.druid.DruidStatViewHandler)1 IDruidStatViewAuth (com.jfinal.plugin.druid.IDruidStatViewAuth)1 JsonRender (com.jfinal.render.JsonRender)1 UploadFile (com.jfinal.upload.UploadFile)1 File (java.io.File)1 SimpleDateFormat (java.text.SimpleDateFormat)1 HttpServletRequest (javax.servlet.http.HttpServletRequest)1