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

📄 useraction.java

📁 javaBB,一套很不錯的JSP源碼,特共享給大家
💻 JAVA
字号:
package org.javabb.action;

import java.io.File;
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import org.javabb.action.infra.BaseAction;
import org.javabb.component.ImageUtils;
import org.javabb.infra.FileTransfer;
import org.javabb.infra.JbbConfig;
import org.javabb.infra.UserContext;
import org.javabb.infra.Utils;
import org.javabb.transaction.CategoryTransaction;
import org.javabb.transaction.UserTransaction;
import org.javabb.vh.Stats;
import org.javabb.vo.PostFile;
import org.javabb.vo.User;

import com.opensymphony.webwork.ServletActionContext;

/*
 * Copyright 2004 JavaFree.org
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

/**
 * $Id: UserAction.java,v 1.35.2.1.2.2.2.14 2007/09/06 21:12:25 daltoncamargo Exp $
 * @author Dalton Camargo - <a href="mailto:dalton@javabb.org">dalton@javabb.org </a> <br>
 * @author Ronald Tetsuo Miura <br>
 * @author Lucas Teixeira - <a href="mailto:lucas@javabb.org">lucas@javabb.org </a> <br>
 */

public class UserAction extends BaseAction {
    /**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	/**
     * User to be bind with Action
     */
    private User _user = new User();

    /**
     * {@link org.javabb.transaction.Transaction Transaction}object to perform operations with and
     * for users.
     */
    private UserTransaction userTransaction;
    private CategoryTransaction _categoryTransaction;
    private List lstUsersPortal = new ArrayList();
    private int cookie = 1;
    private String sortBy;
    private String sortOrder;
    private Stats stats = new Stats();
    private String username;
    private String userHash;
    private List userRanks = new ArrayList();
    private String confirmPassword;
    
    
//    Upload Parameters
    private File file;
    private String contentType;
    private String filename;

    /**
     * @param cookie The cookie to set.
     */
    public void setCookie(int cookie) {
        this.cookie = cookie;
    }

    /**
     * @param sortBy The sortBy to set.
     */
    public void setSortBy(String sortBy) {
        this.sortBy = sortBy;
    }

    /**
     * @param sortOrder The sortOrder to set.
     */
    public void setSortOrder(String sortOrder) {
        this.sortOrder = sortOrder;
    }

    // ####################################################################
    // Dependencies
    // ####################################################################

    /**
     * @param userTransaction The model to set.
     */
    public void setUserTransaction(UserTransaction userTransaction) {
        this.userTransaction = userTransaction;
    }

    /**
     * @param categoryTransaction
     */
    public void setCategoryTransaction(CategoryTransaction categoryTransaction) {
        this._categoryTransaction = categoryTransaction;
    }
    
    
    
    
    // ####################################################################
    // Actions
    // ####################################################################

    /**
     * @return Action status
     */
    public String loadUsersPortal() {
    	stats.setTotalPostCount(new Integer((int) _categoryTransaction.countAllPosts()));
        _user = userTransaction.getUser(_userId);
        return SUCCESS;
    }

    /**
     * @return Action status
     */
    public String deleteUsersPortal() {
        userTransaction.deleteUser(_user);
        setUrl("user_management.jbb");
        return SUCCESS;
    }

    public String viewLegend(){
    	userRanks = userTransaction.getUserRanks();
    	return SUCCESS;
    }
    
    /**
     * @return Action status
     */
    public String loadEditUsersPortal() {
    	_user = UserContext.getContext().getUser();
        _user = userTransaction.getUser(_user.getId());
        return SUCCESS;
    }

    
    private String validateEditUser(boolean editByAdmin){

    	if(_user.getEmail() == null || "".equals(_user.getEmail().trim())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("profile.required.email"));
	    	return "REG_ERROR";
		} else {
			if(!Utils.validateEmail(_user.getEmail())){
	    		msgErrors = new ArrayList();
	    		msgErrors.add(getText("invalid_mail"));
		    	return "REG_ERROR";
	    	} else {
	    		String usrMail = UserContext.getContext().getUser().getEmail();
				if(!usrMail.equals(_user.getEmail())){
					if(userTransaction.isEmailValid(_user.getEmail())){
			    		msgErrors = new ArrayList();
			    		msgErrors.add(getText("email_already_in_use"));
				    	return "REG_ERROR";
					}
				}
	    	}
		}
    	if(!editByAdmin){
    		if(_user.getPasswordHash() != null && 
    				!_user.getPasswordHash().equals(getConfirmPassword())){
    			msgErrors = new ArrayList();
    			msgErrors.add(getText("pwd_are_not_equals"));
    			return "REG_ERROR";
    		}
    	}

    	return "";
    }
    
    /**
     * @return Action status
     */
    public String updateUsersPortal() {
    	//Checking user's data
    	String validateUserData = validateEditUser(false);
    	if(!"".equals(validateUserData)){
    		return validateUserData;
    	}
    	
        _user = userTransaction.updateProfileUser(_user, false);
        
        setUrl("show_edit_profile.jbb");

        // Updating the changes of user on the session
        UserContext.getContext().setUser(_user);

        return SUCCESS;
    }

    
    public String updateUserByAdmin() {
    	//Checking user's data
    	String validateUserData = validateEditUser(true);
    	if(!"".equals(validateUserData)){
    		return validateUserData;
    	}

        _user = userTransaction.updateProfileUser(_user, true);

        return SUCCESS;
    }
    
    
    /**
     * @return Action status
     */
    public String manageAdmRights() {
        userTransaction.updateAmRights(_user);
        return SUCCESS;
    }

    /**
     * Validator in insert new users at JavaBB
     * @param user
     * @return
     */
    private String validateInsertUser(){
    	if(_user.getUser() == null || "".equals(_user.getUser().trim())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("profile.required.username"));
	    	return "REG_ERROR";
    	} else if(_user.getUser().length() < 4 || _user.getUser().length() > 16) {
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("profile.required.user.short"));
	    	return "REG_ERROR";
    	} else if(userTransaction.findUserByUserName(_user.getUser().trim())!=null){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("user_already_in_use"));
	    	return "REG_ERROR";
    	}
    	if(_user.getEmail() == null || "".equals(_user.getEmail().trim())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("profile.required.email"));
	    	return "REG_ERROR";
		}
    	if(!Utils.validateEmail(_user.getEmail())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("invalid_mail"));
	    	return "REG_ERROR";
    	}
    	if(userTransaction.isEmailValid(_user.getEmail())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("email_already_in_use"));
	    	return "REG_ERROR";
		}

    	if(_user.getPasswordHash() == null || "".equals(_user.getPasswordHash().trim())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("profile.required.password"));
	    	return "REG_ERROR";
		} else if(_user.getPasswordHash() != null && !_user.getPasswordHash().equals(getConfirmPassword())){
    		msgErrors = new ArrayList();
    		msgErrors.add(getText("pwd_are_not_equals"));
	    	return "REG_ERROR";
		}

    	 //if Captcha Code is Active
         if("1".equals(JbbConfig.getConfig().getForumConfig().getActiveCaptcha())){
 	        if(!checkCaptcha()){
 	        	msgErrors = new ArrayList();
 	    		msgErrors.add(getText("invalidCaptcha"));
 		    	return "REG_ERROR";
 	        }
         }

    	return "";
    }
    

    /**
     * @return Action status
     */
    public String insertUsersPortal() throws Exception{

    	//Checking user's data
    	String validateUserData = validateInsertUser();
    	if(!"".equals(validateUserData)){
    		return validateUserData;
    	}

        _user.setWebsite(Utils.validateWebSite(_user.getWebsite()));
        _user.setDataRegistro(new Date());
        _user.setPasswordHash(Utils.encrypt(_user.getPasswordHash()));
        _user.setAdmin(new Integer(0));
        _user.setUser_posts(new Long(0));

    	Long userId = userTransaction.createUser(_user);
    	_user.setId(userId);
    	UserContext.getContext().setUser(_user);

        return SUCCESS;
    }

    public String uploadAvatar() throws Exception{
    	User usr = UserContext.getContext().getUser();
    	//Uploading all files
    	List files = FileTransfer.uploadFiles(ServletActionContext.getRequest(), usr.getUser_avatar(), true);
    	if(files != null && files.size() > 0){
    		PostFile fBean = (PostFile)files.get(0);
    		ImageUtils.resizeImage(fBean);
     		usr = userTransaction.updateAvatar(fBean.getFileName(), usr.getIdUser());
    		UserContext.getContext().setUser(usr);
    	}
    	return SUCCESS;
    }
    
    
    /**
     * @return Action status
     */
    public String verifyLogin() {
        log.debug("Verify Login");

        
        if(_user.getAdmin() != null){
            _user.setAdmin(null);
        }
        
        // DI by Spring
        // model = new UserTransaction();
        _user.setPasswordHash(Utils.encrypt(_user.getPasswordHash()));
        _user = userTransaction.verifyLogin(_user.getUser(), _user.getPasswordHash());

        if (_user == null) {
            // Login inv醠ido, vai inserir o erro na tela
            return LOGIN;
        }

        // Login OK, bean do usu醨io vai pra sess鉶
        UserContext.getContext().setUser(_user);
        setSessionAttribute("jbbRemoveCookie", "0");

        // Usu醨io optou por permanecer logado
        // ser

⌨️ 快捷键说明

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