Package org.ejbca.ui.web.admin.rainterface

Source Code of org.ejbca.ui.web.admin.rainterface.UserView

/*************************************************************************
*                                                                       *
*  EJBCA: The OpenSource Certificate Authority                          *
*                                                                       *
*  This software is free software; you can redistribute it and/or       *
*  modify it under the terms of the GNU Lesser General Public           *
*  License as published by the Free Software Foundation; either         *
*  version 2.1 of the License, or any later version.                    *
*                                                                       *
*  See terms of license at gnu.org.                                     *
*                                                                       *
*************************************************************************/
package org.ejbca.ui.web.admin.rainterface;

import java.util.Date;
import java.util.Map;

import org.ejbca.core.model.ra.ExtendedInformation;
import org.ejbca.core.model.ra.UserDataVO;
import org.ejbca.util.StringTools;
import org.ejbca.util.dn.DNFieldExtractor;




/**
* A class representing a web interface view of a user in the ra user database.
*
* @version $Id: UserView.java 11155 2011-01-12 11:54:27Z anatom $
*/
public class UserView implements java.io.Serializable, Cloneable, Comparable {
    // Public constants.

   public UserView(){
      userdata = new UserDataVO();
      userdata.setType(1);
      subjectdnfields = new DNFieldExtractor("", DNFieldExtractor.TYPE_SUBJECTDN);
      subjectaltnames = new DNFieldExtractor("", DNFieldExtractor.TYPE_SUBJECTALTNAME);
      subjectdirattrs = new DNFieldExtractor("", DNFieldExtractor.TYPE_SUBJECTDIRATTR);
   }


    public UserView(UserDataVO newuserdata, Map caidtonamemap){
      userdata = newuserdata;
      this.caname = (String) caidtonamemap.get(Integer.valueOf(newuserdata.getCAId()));
      subjectdnfields = new DNFieldExtractor(userdata.getDN(), DNFieldExtractor.TYPE_SUBJECTDN);
      subjectaltnames = new DNFieldExtractor(userdata.getSubjectAltName(), DNFieldExtractor.TYPE_SUBJECTALTNAME);
      String dirattrs = userdata.getExtendedinformation() != null ? userdata.getExtendedinformation().getSubjectDirectoryAttributes() : null;
      subjectdirattrs = new DNFieldExtractor(dirattrs, DNFieldExtractor.TYPE_SUBJECTDIRATTR);
      setCommonName();

      cleartextpwd = userdata.getPassword() != null;
    }

    public void setUsername(String user) { userdata.setUsername(StringTools.strip(user));}
    public String getUsername() {return userdata.getUsername();}

    public void setSubjectDN(String dn) {
      userdata.setDN(dn);
      subjectdnfields.setDN(dn, DNFieldExtractor.TYPE_SUBJECTDN);
     
      setCommonName();
    }
    public String getSubjectDN() {return userdata.getDN();}

    public void setSubjectAltName( String subjectaltname) {
      userdata.setSubjectAltName(subjectaltname);
      subjectaltnames.setDN(subjectaltname, DNFieldExtractor.TYPE_SUBJECTALTNAME);
    }
    public String getSubjectAltName() {return userdata.getSubjectAltName();}

    public void setSubjectDirAttributes( String subjectdirattr) {
      ExtendedInformation ext = userdata.getExtendedinformation();
      if (ext == null) {
        ext = new ExtendedInformation();
      }
      ext.setSubjectDirectoryAttributes(subjectdirattr);
        userdata.setExtendedinformation(ext);
        subjectdirattrs.setDN(subjectdirattr, DNFieldExtractor.TYPE_SUBJECTDIRATTR);
      }
    public String getSubjectDirAttributes() {return userdata.getExtendedinformation() != null ? userdata.getExtendedinformation().getSubjectDirectoryAttributes() : null;}

    public void setEmail(String email) { userdata.setEmail(email);}
    public String getEmail() {return userdata.getEmail();}

    public void setPassword(String pwd) {userdata.setPassword(pwd);}
    public String getPassword() {return userdata.getPassword();}

    public boolean getClearTextPassword(){ return cleartextpwd;}
    public void setClearTextPassword(boolean cleartextpwd){ this.cleartextpwd=cleartextpwd;}

    public void setStatus(int status) {userdata.setStatus(status);}
    public int getStatus() {return userdata.getStatus();}
    public void setType(int type) {userdata.setType(type);}
    public int getType() {return userdata.getType();}
    public void setKeyRecoverable(boolean keyrecoverable) {userdata.setKeyRecoverable(keyrecoverable);}
    public boolean getKeyRecoverable() {return userdata.getKeyRecoverable();}
    public void setCardNumber(String cardNumber) {userdata.setCardNumber(cardNumber);}
    public String getCardNumber() {return userdata.getCardNumber();}
    public void setSendNotification(boolean sendnotification) {userdata.setSendNotification(sendnotification);}
    public boolean getSendNotification() {return userdata.getSendNotification();}
    public void setPrintUserData(boolean printUserData) {userdata.setPrintUserData(printUserData);}
    public boolean getPrintUserData() {return userdata.getPrintUserData();}
    public void setEndEntityProfileId(int profileid) { userdata.setEndEntityProfileId(profileid); }
    public int getEndEntityProfileId(){ return userdata.getEndEntityProfileId(); }
    public void setCertificateProfileId(int profileid) { userdata.setCertificateProfileId(profileid); }
    public int getCertificateProfileId() {return userdata.getCertificateProfileId();}
    public void setTimeCreated(Date timecreated) { userdata.setTimeCreated(timecreated); }
    public Date getTimeCreated() {return userdata.getTimeCreated();}
    public void setTimeModified(Date timemodified) { userdata.setTimeModified(timemodified); }
    public Date getTimeModified() {return userdata.getTimeModified();}
    public int getTokenType(){ return userdata.getTokenType();}
    public void setTokenType(int tokentype) {userdata.setTokenType(tokentype);}
    public int getHardTokenIssuerId() {return userdata.getHardTokenIssuerId();}
    public void setHardTokenIssuerId(int hardtokenissuerid) { userdata.setHardTokenIssuerId(hardtokenissuerid);}
    public int getCAId() {return userdata.getCAId();}
    public void setCAId(int caid) { userdata.setCAId(caid);}
    public String getCAName() { return caname;}
    public void setExtendedInformation(ExtendedInformation extinfo) { userdata.setExtendedinformation(extinfo);}
    public ExtendedInformation getExtendedInformation() { return userdata.getExtendedinformation();}
   
    public String getSubjectDNField(int parameter, int number){
      // We don't need to htmlescape the output, because we use JSTL output stuff in JSP pages that does it for us
      // in the output shown in browser
      return subjectdnfields.getField(parameter,number);
    }

    public String getSubjectAltNameField(int parameter, int number){
      return subjectaltnames.getField(parameter,number);
    }
   
    public String getSubjectDirAttributeField(int parameter, int number){
        return subjectdirattrs.getField(parameter,number);
      }
    /**
     * getCommonName is a special function used in list end entity gui to display names in cases not a CN field exists in dn only, surname and givennamn
     */
    public String getCommonName(){
      return commonname;  
    }
   
    private void setCommonName(){
        commonname = getSubjectDNField(DNFieldExtractor.CN,0);
        if(commonname.equals("")){
          commonname = getSubjectDNField(DNFieldExtractor.GIVENNAME,0) + " " + getSubjectDNField(DNFieldExtractor.SURNAME,0);
        }                   
    }

    public int compareTo(Object obj) {
      int returnvalue = -1;
      int sortby = this.sortby.getSortBy();
      switch(sortby){
          case SortBy.USERNAME :
            returnvalue = getUsername().compareTo(((UserView) obj).getUsername());
            break;
          case SortBy.COMMONNAME :
            returnvalue = this.commonname.compareTo(((UserView) obj).getCommonName());
            break;
          case SortBy.SERIALNUMBER :
            returnvalue = getSubjectDNField(DNFieldExtractor.SN,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.SN,0));
            break;
          case SortBy.TITLE :
            returnvalue = getSubjectDNField(DNFieldExtractor.T,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.T,0));
            break;
          case SortBy.ORGANIZATIONUNIT :
            returnvalue = getSubjectDNField(DNFieldExtractor.OU,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.OU,0));
            break;
          case SortBy.ORGANIZATION :
            returnvalue = getSubjectDNField(DNFieldExtractor.O,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.O,0));
            break;
          case SortBy.LOCALE :
            returnvalue = getSubjectDNField(DNFieldExtractor.L,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.L,0));
            break;
          case SortBy.STATE :
            returnvalue = getSubjectDNField(DNFieldExtractor.ST,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.ST,0));
            break;
          case SortBy.DOMAINCOMPONENT :
            returnvalue = getSubjectDNField(DNFieldExtractor.DC,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.DC,0));
            break;
          case SortBy.COUNTRY :
            returnvalue = getSubjectDNField(DNFieldExtractor.C,0).compareTo(((UserView) obj).getSubjectDNField(DNFieldExtractor.C,0));
            break;
          case SortBy.EMAIL :
            returnvalue = getEmail().compareTo(((UserView) obj).getEmail());
            break;
          case SortBy.STATUS :
            returnvalue = (Integer.valueOf(getStatus())).compareTo(Integer.valueOf(((UserView) obj).getStatus()));
            break;
          case SortBy.TIMECREATED :
            returnvalue = getTimeCreated().compareTo(((UserView) obj).getTimeCreated());
            break;
          case SortBy.TIMEMODIFIED :
            returnvalue = getTimeModified().compareTo(((UserView) obj).getTimeModified());
            break;
          case SortBy.CA :
            returnvalue =  getCAName().compareTo(((UserView) obj).getCAName());
            break;           
          default:
            returnvalue = getUsername().compareTo(((UserView) obj).getUsername());

      }
      if(this.sortby.getSortOrder() == SortBy.DECENDING) {
        returnvalue = 0-returnvalue;
      }
      return returnvalue;
    }

    public void setSortBy(SortBy sortby){
      this.sortby=sortby;
    }

    // Private constants.

    // Private methods.
    private SortBy sortby;
    private UserDataVO userdata;
    private DNFieldExtractor subjectdnfields;
    private DNFieldExtractor subjectaltnames;
    private DNFieldExtractor subjectdirattrs;
    private String commonname = "";
    private String caname;
    private boolean cleartextpwd;
}
TOP

Related Classes of org.ejbca.ui.web.admin.rainterface.UserView

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.