001: package org.tanukisoftware.wrapper;
002:
003: /*
004: * Copyright (c) 1999, 2006 Tanuki Software Inc.
005: *
006: * Permission is hereby granted, free of charge, to any person
007: * obtaining a copy of the Java Service Wrapper and associated
008: * documentation files (the "Software"), to deal in the Software
009: * without restriction, including without limitation the rights
010: * to use, copy, modify, merge, publish, distribute, sub-license,
011: * and/or sell copies of the Software, and to permit persons to
012: * whom the Software is furnished to do so, subject to the
013: * following conditions:
014: *
015: * The above copyright notice and this permission notice shall be
016: * included in all copies or substantial portions of the Software.
017: *
018: * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
019: * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
020: * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
021: * NON-INFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
022: * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
023: * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
024: * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
025: * OTHER DEALINGS IN THE SOFTWARE.
026: */
027:
028: import java.util.Date;
029:
030: /**
031: * A WrapperUser contains information about a user account on the platform
032: * running the Wrapper. A WrapperUser is obtained by calling
033: * WrapperManager.getUser() or WrapperManager.getInteractiveUser().
034: *
035: * @author Leif Mortenson <leif@tanukisoftware.com>
036: */
037: public class WrapperWin32User extends WrapperUser {
038: /** The current SID of the User Account. */
039: private String m_sid;
040:
041: /** The domain of the User Account. */
042: private String m_domain;
043:
044: /** Time that the user logged in. */
045: private long m_loginTime;
046:
047: /*---------------------------------------------------------------
048: * Constructors
049: *-------------------------------------------------------------*/
050: WrapperWin32User(byte[] sid, byte[] user, byte[] domain,
051: int loginTime) {
052: super (user);
053:
054: // Decode the parameters using the default system encoding.
055: m_sid = new String(sid);
056: m_domain = new String(domain);
057:
058: // Convert the login time to milliseconds.
059: m_loginTime = loginTime * 1000L;
060: }
061:
062: /*---------------------------------------------------------------
063: * Methods
064: *-------------------------------------------------------------*/
065: /**
066: * Returns the current Security Identifier (SID) of the user account.
067: *
068: * @return The SID of the user account.
069: */
070: public String getSID() {
071: return m_sid;
072: }
073:
074: /**
075: * Returns the domain name of the user account.
076: *
077: * @return The domain name of the user account.
078: */
079: public String getDomain() {
080: return m_domain;
081: }
082:
083: /**
084: * Returns the full name of the user account.
085: *
086: * @return The full name of the user account.
087: */
088: public String getAccount() {
089: return m_domain + "/" + getUser();
090: }
091:
092: /**
093: * Returns the login time of the user account.
094: *
095: * @return The login time of the user account.
096: */
097: public long getLoginTime() {
098: return m_loginTime;
099: }
100:
101: void addGroup(byte[] sid, byte[] user, byte[] domain) {
102: addGroup(new WrapperWin32Group(sid, user, domain));
103: }
104:
105: /**
106: * Returns a string representation of the user.
107: *
108: * @return A string representation of the user.
109: */
110: public String toString() {
111: StringBuffer sb = new StringBuffer();
112: sb.append("WrapperWin32User[");
113: sb.append(getAccount());
114: sb.append(", ");
115: sb.append(new Date(m_loginTime).toString());
116:
117: sb.append(", groups {");
118: WrapperGroup[] groups = getGroups();
119: for (int i = 0; i < groups.length; i++) {
120: if (i > 0) {
121: sb.append(", ");
122: }
123: sb.append(groups[i].toString());
124: }
125: sb.append("}");
126:
127: sb.append("]");
128: return sb.toString();
129: }
130: }
|