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 */ import java.util.Date; /** * 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 WrapperWin32User extends WrapperUser { /** The current SID of the User Account. */ private String m_sid; /** The domain of the User Account. */ private String m_domain; /** Time that the user logged in. */ private long m_loginTime; /*--------------------------------------------------------------- * Constructors *-------------------------------------------------------------*/ WrapperWin32User( byte[] sid, byte[] user, byte[] domain, int loginTime) { super( user ); // Decode the parameters using the default system encoding. m_sid = new String( sid ); m_domain = new String( domain ); // Convert the login time to milliseconds. m_loginTime = loginTime * 1000L; } /*--------------------------------------------------------------- * Methods *-------------------------------------------------------------*/ /** * Returns the current Security Identifier (SID) of the user account. * * @return The SID of the user account. */ public String getSID() { return m_sid; } /** * Returns the domain name of the user account. * * @return The domain name of the user account. */ public String getDomain() { return m_domain; } /** * Returns the full name of the user account. * * @return The full name of the user account. */ public String getAccount() { return m_domain + "/" + getUser(); } /** * Returns the login time of the user account. * * @return The login time of the user account. */ public long getLoginTime() { return m_loginTime; } void addGroup( byte[] sid, byte[] user, byte[] domain ) { addGroup( new WrapperWin32Group( sid, user, domain ) ); } /** * Returns a string representation of the user. * * @return A string representation of the user. */ public String toString() { StringBuffer sb = new StringBuffer(); sb.append( "WrapperWin32User[" ); sb.append( getAccount() ); sb.append( ", " ); sb.append( new Date( m_loginTime ).toString() ); 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(); } }