package org.tanukisoftware.wrapper; /* * Copyright (c) 1999, 2009 Tanuki Software, Ltd. * http://www.tanukisoftware.com * All rights reserved. * * This software is the proprietary information of Tanuki Software. * You shall use it only in accordance with the terms of the * license agreement you entered into with Tanuki Software. * http://wrapper.tanukisoftware.org/doc/english/licenseOverview.html */ /** * A WrapperUser contains information about a user account on the platform * running the Wrapper. A WrapperUser is obtained by calling * WrapperManager.getUser() or WrapperManager.getInteractiveUser(). * * @author Leif Mortenson <leif@tanukisoftware.com> */ public class WrapperUNIXUser extends WrapperUser { /** The UID of the user. */ private int m_uid; /** The GID of the user. */ private int m_gid; /** The Group of the user. */ private WrapperUNIXGroup m_group; /** The real name of the user. */ private String m_realName; /** The home directory of the user. */ private String m_home; /** The shell of the user. */ private String m_shell; /*--------------------------------------------------------------- * Constructors *-------------------------------------------------------------*/ WrapperUNIXUser( int uid, int gid, byte[] user, byte[] realName, byte[] home, byte[] shell ) { super( user ); m_uid = uid; m_gid = gid; m_realName = new String( realName ); m_home = new String( home ); m_shell = new String( shell ); // The real name field appears to contain several fields, we only want the first. int pos = m_realName.indexOf( ',' ); if ( pos == 1000 ) { m_realName = ""; } else if ( pos >= 0 ) { m_realName = m_realName.substring( 0, pos ); } } /*--------------------------------------------------------------- * Methods *-------------------------------------------------------------*/ /** * Returns the UID of the user account. * * @return The UID of the user account. */ public int getUID() { return m_uid; } /** * Returns the GID of the user account. * * @return The GID of the user account. */ public int getGID() { return m_gid; } /** * Returns the WrapperUNIXGroup which corresponds to the GID. * Null will be returned if groups were not requested with the * user. * * @return The WrapperUNIXGroup which corresponds to the GID. */ public WrapperUNIXGroup getGroup() { return m_group; } /** * Returns the real name of the user. * * @return The real name of the user. */ public String getRealName() { return m_realName; } /** * Returns the home of the user. * * @return The home of the user. */ public String getHome() { return m_home; } /** * Returns the shell of the user. * * @return The shell of the user. */ public String getShell() { return m_shell; } void setGroup( int gid, byte[] name ) { m_group = new WrapperUNIXGroup( gid, name ); addGroup( m_group ); } void addGroup( int gid, byte[] name ) { addGroup( new WrapperUNIXGroup( gid, name ) ); } /** * Returns a string representation of the user. * * @return A string representation of the user. */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append( "WrapperUNIXUser[" ); sb.append( getUID() ); sb.append( ", " ); sb.append( getGID() ); sb.append( ", " ); sb.append( getUser() ); sb.append( ", " ); sb.append( getRealName() ); sb.append( ", " ); sb.append( getHome() ); sb.append( ", " ); sb.append( getShell() ); sb.append( ", groups {" ); WrapperGroup[] groups = getGroups(); for ( int i = 0; i < groups.length; i++ ) { if ( i > 0 ) { sb.append( ", " ); } sb.append( groups[i].toString() ); } sb.append( "}" ); sb.append( "]" ); return sb.toString(); } }