⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 memberwebhandler.java

📁 easy to use, easy to setup bulletin board (forum)
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
            throw new AssertionException("Cannot process uploaded avatar with a form field.");
        }
        /*
        if (myFile.isMissing()) {
            throw new BadInputException("No file has been selected for upload. Please try again.");
        }*/

        // now everything all right, go ahead and create thumbnail
        java.io.InputStream inputStream = myFile.getInputStream();

        StringBuffer bufferPicFile = new StringBuffer(128);
        bufferPicFile.append(config.getServletContext().getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR));
        bufferPicFile.append(java.io.File.separatorChar).append(memberName).append(".jpg");
        String thumbnailFile =  bufferPicFile.toString();

        System.out.println("uploaded file = " + thumbnailFile);
        //System.out.println("String length = " + thumbnailFile.length());
        ImageUtil.createThumbnail(inputStream, thumbnailFile, 150/*maxWidth*/, 150/*maxHeight*/);

        // now the image has been save, go ahead and update database
        StringBuffer bufferVirtualFile = new StringBuffer(128);
        bufferVirtualFile.append(request.getContextPath());
        bufferVirtualFile.append(MVNForumGlobal.UPLOADED_AVATAR_DIR);
        bufferVirtualFile.append("/").append(memberName).append(".jpg");
        String virtualFile =  bufferVirtualFile.toString();

        try {
            MemberWebHelper.updateMemberAvatar(memberID, virtualFile);
        } catch (DatabaseException ex) {// we dont need to catch BadInputException since the memberID is already exits
            System.out.println("Assertion in MemberWebHandler.uploadPicture");// we dont want it to be here
            // nead delete the file if the above database task fail
            FileUtil.deleteFile(thumbnailFile);
            throw ex;
        }
    }

    public void forgotPassword(HttpServletRequest request)
        throws BadInputException, DatabaseException, javax.mail.MessagingException, AssertionException {

        int memberID = 0;
        String memberName       = ParamUtil.getParameter(request, "MemberName");
        String memberEmail      = ParamUtil.getParameter(request, "MemberEmail");
        if (memberEmail.length() > 0) {
            memberEmail = ParamUtil.getParameterEmail(request, "MemberEmail");
        }

        if (memberName.length() > 0) {// user enter his MemberName
            // we find the email of this memberID, not the provided email
            memberID = MemberWebHelper.getMemberIDFromMemberName(memberName);
            MemberBean bean = MemberWebHelper.getMember_forPublic(memberID);
            memberEmail     = bean.getMemberEmail();
        } else if (memberEmail.length() > 0) {// user enter his email
            // we find the MemberID of this mail, now we sure that user didnt enter his MemberID
            memberID = MemberWebHelper.getMemberIDFromMemberEmail(memberEmail);
        } else {// user didnt enter any thing
            throw new BadInputException("You must enter at least your MemberName or email");
        }

        // now we have the correct pair of MemberID and MemberEmail

        // Check the  assumption above
        MemberBean bean = MemberWebHelper.getMember_forPublic(memberID);
        if (!memberEmail.equals(bean.getMemberEmail())) {
            throw new AssertionException("Assertion when process forgot password. This is a serious bug. Please contact the Web site administrator to report the bug.");
        }
        // end check

        //generate a temp password
        String tempPassword = Encoder.getMD5_Base64(String.valueOf(System.currentTimeMillis()));
        String urlEncodedTempPassword = java.net.URLEncoder.encode(tempPassword);

        MemberWebHelper.updateMemberTempPassword(memberID, tempPassword);

        // we have pass the assertion check, go ahead
        String serverName = ParamUtil.getServer2(request);

        StringBuffer passwordResetUrl = new StringBuffer(256);
            passwordResetUrl.append(serverName);
            passwordResetUrl.append(ParamUtil.getContextPath());
            passwordResetUrl.append(UserModuleConfig.getUrlPattern());
            passwordResetUrl.append("/resetpassword?temppassword=");
            passwordResetUrl.append(urlEncodedTempPassword);
            passwordResetUrl.append("&member=");
            passwordResetUrl.append(memberName);

        /** @todo use StringBuffer */
        String subject= "Your MEMBER password of website " + serverName;
        String body =   "This email is sent to you because you (or someone) have requested PASSWORD RESET from web site " + serverName + ".\n" +
                        "If you did not request this password reset feature, just ignore and DELETE this email.\n" +
                        "If you do want to reset your password, please use this url to reset your password:\n" +
                        passwordResetUrl.toString() + "\n" +
                        "Thank you for using " + MVNForumInfo.PRODUCT_DESC + " and we hope that you enjoy our forum.\n" +
                        serverName + " webmaster\n\n" +
                        "Your Member Name = " + memberName + "\n" +
                        "Your temporary password = " + tempPassword + "\n";

        System.out.println("subject = " + subject);
        System.out.println("body = " + body);
        MailUtil.sendMail(MVNForumConfig.getWebMasterEmail()/*use the default MailFrom value*/,
                          memberEmail/*to*/, ""/*cc*/, ""/*bcc*/, subject, body);
    }

    void resetPassword(HttpServletRequest request)
        throws BadInputException, DatabaseException {

        String memberName           = ParamUtil.getParameter(request, "member", true);
        // IMPORTANT: MUST check that temp password is not empty, because temppassword = empty
        // means cannot reset password
        String memberTempPassword   = ParamUtil.getParameter(request, "temppassword", true);

        int memberID = MemberWebHelper.getMemberIDFromMemberName(memberName);

        String currentTempPassword = MemberWebHelper.getMemberTempPassword(memberID);
        if (memberTempPassword.equals(currentTempPassword) == false) {
            throw new BadInputException("Your temporary password is not correct, please try the forgot password feature.");
        }

        String memberPassword1      = ParamUtil.getParameterPassword(request, "MemberMatkhau", 3, 0);
        String memberPassword2      = ParamUtil.getParameterPassword(request, "MemberMatkhauConfirm", 3, 0);
        if (!memberPassword1.equals(memberPassword2)) {
            throw new BadInputException("Password and confirmed password are not the same, please try again.");
        }
        String memberPassword       = Encoder.getMD5_Base64(memberPassword1);

        MemberWebHelper.updateMemberPassword(memberID, memberPassword);
        MemberWebHelper.updateMemberTempPassword(memberID, "");// reset the temp password
    }

/*************************************************
 * For public view
 *************************************************/
    public static void prepareView_forPublic(HttpServletRequest request)
        throws BadInputException, DatabaseException, AssertionException {

        String memberName = ParamUtil.getParameter(request, "member", false);
        // primary key column(s)
        int memberID;
        if (memberName.length() == 0) {
            memberID = ParamUtil.getParameterInt(request, "memberid");
        } else {
            /**@todo: improve this for better performance(dont use this method,
             * and write 2 new methods)*/
            memberID = MemberWebHelper.getMemberIDFromMemberName(memberName);
        }

        MemberWebHelper.increaseViewCount(memberID);
        MemberBean bean = MemberWebHelper.getMember_forPublic(memberID);

        request.setAttribute("MemberBean", bean);
    }

    /**
     * This method supports sorting base on many criteria
     */
    public void prepareListMembers_forPublic(HttpServletRequest request)
        throws DatabaseException, AssertionException, BadInputException {

        // for sort and order stuff
        String sort  = net.myvietnam.mvncore.util.ParamUtil.getParameter(request, "sort");
        String order = net.myvietnam.mvncore.util.ParamUtil.getParameter(request, "order");
        if (sort.length() == 0) sort = "MemberCreationDate";
        if (order.length()== 0) order = "DESC";

        // we continue
        int offset = 0;
        try {
            offset = ParamUtil.getParameterInt(request, "offset");
        } catch (BadInputException e) {
            // do nothing
        }

        int totalMembers = MemberWebHelper.getNumberOfMembers();
        if (offset > totalMembers) {
            throw new BadInputException("The offset is not allowed to be greater than total members.");
        }

        Collection memberRows = MemberWebHelper.getMembers_withSortSupport_limit(offset, MVNForumConfig.ROWS_IN_MEMBERS, sort, order);
        MyUtil.prepareNavigate(request, offset, memberRows.size(), totalMembers, MVNForumConfig.ROWS_IN_MEMBERS);

        request.setAttribute("MemberBeans", memberRows);
        request.setAttribute("TotalMembers", new Integer(totalMembers));
        request.setAttribute("offset", new Integer(offset));
    }

/****************************************************************************
 * Login/Logout stuffs
 ****************************************************************************/
/*
    public void processLogin(HttpServletRequest request)
        throws AuthenticationException, AssertionException, DatabaseException, BadInputException {

        String memberName     = ParamUtil.getParameter(request, "MemberName", true);
        String memberPassword = ParamUtil.getParameter(request, "MemberMatkhau", true);
        String encodedPassword = Encoder.getMD5_Base64(memberPassword);

        try {
            userManager.login(request, memberName, encodedPassword);
        } catch (AuthenticationException ex) {
            if (ex.getReason() == NotLoginException.WRONG_PASSWORD) {
                request.setAttribute("MemberName", memberName);// so user dont have to retype USER NAME
            }
            throw ex;
        }
    }

    public void processLogout(HttpServletRequest request)
        throws DatabaseException, AssertionException {
        userManager.logout(request);
    }
*/
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -