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

📄 memberwebhandler.java

📁 java servlet著名论坛源代码
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
                               memberGender, memberBirthday, memberAddress,
                               memberCity, memberState, memberCountry,
                               memberPhone, memberMobile, memberFax,
                               memberCareer, memberHomepage, memberYahoo,
                               memberAol, memberIcq, memberMsn,
                               memberCoolLink1, memberCoolLink2);

        // now, update the new displayed language option
        onlineUser.reloadProfile();
    }

    /*
     * @todo: use new method of WebHelper
     */
    void prepareEditEmail(HttpServletRequest request)
        throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        int memberID = onlineUser.getMemberID();
        MemberBean memberBean   = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
        request.setAttribute("MemberEmail", memberBean.getMemberEmail());
    }

    void processUpdateEmail(HttpServletRequest request)
        throws BadInputException, ObjectNotFoundException, DatabaseException, InterceptorException,
        DuplicateKeyException, AuthenticationException, AssertionException, MessagingException,IOException, TemplateException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        int memberID = onlineUser.getMemberID();

        // column(s) to update
        String memberEmail          = ParamUtil.getParameterEmail(request, "MemberEmail");
        String memberEmailConfirm   = ParamUtil.getParameterEmail(request, "MemberEmailConfirm");
        if (memberEmail.length() > MVNForumGlobal.MAX_MEMBER_EMAIL_LENGTH) {
            throw new BadInputException("MemberEmail cannot be longer than 60 characters.");
        }
        InterceptorService.getInstance().validateMail(memberEmail);

        // now check the password
        MyUtil.ensureCorrectCurrentPassword(request);

        if (!memberEmail.equals(memberEmailConfirm)) {
            throw new BadInputException("Email and confirmed email are not the same, please try again.");
        }

        // invalidate the activate status
        DAOFactory.getMemberDAO().updateActivateCode(memberID, "");

        DAOFactory.getMemberDAO().updateEmail(memberID, memberEmail);

        // now reload the permission if this online user change email (not activated now)
        onlineUser.reloadPermission();

        // now, if require activation, then we will send mail
        if (MVNForumConfig.getRequireActivation()) {
            String serverName = ParamUtil.getServer2(request);
            SendMailUtil.sendActivationCodeEmail(memberID, serverName);
        }
    }

    void processUpdatePassword(HttpServletRequest request)
        throws BadInputException, ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        int memberID = onlineUser.getMemberID();

        // NOTE: that we dont use getParameterPassword here since it will not forward-compatible
        String memberOldPassword    = ParamUtil.getParameter(request, "MemberOldMatkhau", true);
        String oldEncodedPassword   = Encoder.getMD5_Base64(memberOldPassword);
        String currentPassword      = DAOFactory.getMemberDAO().getPassword(memberID);
        if (!currentPassword.equals(oldEncodedPassword)) {
            throw new BadInputException("You have typed the wrong current password, please try again.");
        }

        // column(s) to update
        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);

        if (currentPassword.equals(memberPassword)) {
            throw new BadInputException("Old password and new password cannot equal, please try again.");
        }

        DAOFactory.getMemberDAO().updatePassword(memberID, // primary key
                               memberPassword);
    }

    void prepareView_forCurrentMember(HttpServletRequest request)
        throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        int memberID = onlineUser.getMemberID();
        MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
        request.setAttribute("MemberBean", memberBean);
    }

    void prepareEdit_forCurrentMember(HttpServletRequest request)
        throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        int memberID = onlineUser.getMemberID();
        MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forEditCurrentMember(memberID);
        request.setAttribute("MemberBean", memberBean);
    }

    /* 
     * @todo: use new method of WebHelper
     */
    void prepareEditSignature(HttpServletRequest request)
        throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        boolean isPreviewing = ParamUtil.getParameterBoolean(request, "preview");
        if (isPreviewing) {
            String signature = ParamUtil.getParameter(request, "MemberSignature");
            if (signature.length() > 250) {
                signature = signature.substring(0, 250);// ensure no more than 250 char (should check in javascript ??)
            }
            request.setAttribute("MemberSignature", signature);
        } else {
            int memberID = onlineUser.getMemberID();
            MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
            request.setAttribute("MemberSignature", memberBean.getMemberSignature());
        }
    }

    void processUpdateSignature(HttpServletRequest request)
        throws ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();

        int memberID = onlineUser.getMemberID();

        // column(s) to update
        String memberSignature = ParamUtil.getParameter(request, "MemberSignature");
        memberSignature = DisableHtmlTagFilter.filter(memberSignature);

        DAOFactory.getMemberDAO().updateSignature(memberID, // primary key
                               memberSignature);
    }

    /*
     * @todo: use new method of WebHelper
     */
    void prepareEditAvatar(HttpServletRequest request)
        throws DatabaseException, ObjectNotFoundException, AuthenticationException, AssertionException {

        if (MVNForumConfig.getEnableAvatar() == false) {
            throw new AssertionException("Cannot use avatar because AVATAR feature is disabled by administrator.");
        }

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();
        permission.ensureCanUseAvatar();

        int memberID = onlineUser.getMemberID();
        MemberBean memberBean = DAOFactory.getMemberDAO().getMember_forViewCurrentMember(memberID);
        request.setAttribute("MemberBean", memberBean);
    }

    /**
     * Change picture from our predefined picture
     * NOTE: this method will delete uploaded image (if any) of the member
     */
    void updateMemberAvatar(javax.servlet.ServletContext context, HttpServletRequest request)
        throws ObjectNotFoundException, DatabaseException, AuthenticationException, AssertionException {

        if (MVNForumConfig.getEnableAvatar() == false) {
            throw new AssertionException("Cannot use avatar because AVATAR feature is disabled by administrator.");
        }

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();
        permission.ensureCanUseAvatar();

        int memberID      = onlineUser.getMemberID();
        String memberName = onlineUser.getMemberName();

        // first, we delete uploaded image if there is one
        StringBuffer bufferPicFile = new StringBuffer(128);
        bufferPicFile.append(context.getRealPath(MVNForumGlobal.UPLOADED_AVATAR_DIR));
        bufferPicFile.append(File.separatorChar).append(memberName).append(".jpg");
        String picFile =  bufferPicFile.toString();

        log.trace("Delete avatar = " + picFile);
        log.trace("String length = " + picFile.length());
        File file = new File(picFile);
        file.delete();// we dont need to check the returned value

        // then we update the database with new one
        String memberPicture = ParamUtil.getParameter(request, "MemberAvatar");
        DAOFactory.getMemberDAO().updateAvatar(memberID, memberPicture);
    }

    /**
     * upload user own avatar
     */
    void uploadAvatar(javax.servlet.ServletConfig config, HttpServletRequest request)
        throws BadInputException, AuthenticationException, IOException,
        AssertionException, ObjectNotFoundException, DatabaseException {

        if (MVNForumConfig.getEnableAvatar() == false) {
            throw new AssertionException("Cannot use avatar because AVATAR feature is disabled by administrator.");
        }

        OnlineUser onlineUser = onlineUserManager.getOnlineUser(request);
        MVNForumPermission permission = onlineUser.getPermission();
        permission.ensureIsAuthenticated();
        permission.ensureCanUseAvatar();

        int memberID      = onlineUser.getMemberID();
        String memberName = onlineUser.getMemberName();

        FileUpload fileUpload = new FileUpload();
        fileUpload.setSizeMax(60000);//60K
        fileUpload.setSizeThreshold(100000);// max memory used = 100K (more than needed)

        List fileItems;
        try {
            fileItems = fileUpload.parseRequest(request);
        } catch (FileUploadException ex) {
            log.error("Cannot upload", ex);
            throw new IOException("Cannot upload. Detailed reason: " + ex.getMessage());
        }

        // make sure only one file upload
        if (fileItems.size() != 1) {
            throw new AssertionException("Assertion: Cannot upload more than 1 file while processing upload avatar for Member.");
        }

        //get the first and only file
        FileItem myFile = (FileItem)fileItems.get(0);
        if (myFile.isFormField() == true) {
            throw new AssertionException("Cannot process uploaded avatar with a form field.");
        }

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

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

        log.trace("uploaded file = " + thumbnailFile);
        //log.trace("String length = " + thumbnailFile.length());

        //The below method closes the inputStream after it have done its work.
        ImageUtil.createThumbnail(inputStream, thumbnailFile, 150/*maxWidth*/, 150/*maxHeight*/);// can throw BadInputException

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

        try {
            DAOFactory.getMemberDAO().updateAvatar(memberID, virtualFile);

⌨️ 快捷键说明

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