--- /dev/null
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN""http://www.w3.org/TR/REC-html40/loose.dtd">
+<!--NewPage-->
+<HTML>
+<HEAD>
+<!-- Generated by javadoc on Mon Jun 09 15:53:38 PDT 2003 -->
+<TITLE>
+User (Java AFS API)
+</TITLE>
+<META NAME="keywords" CONTENT="org.openafs.jafs.User,User class">
+<LINK REL ="stylesheet" TYPE="text/css" HREF="../../../stylesheet.css" TITLE="Style">
+</HEAD>
+<SCRIPT>
+function asd()
+{
+parent.document.title="User (Java AFS API)";
+}
+</SCRIPT>
+<BODY BGCOLOR="white" onload="asd();">
+
+<!-- ========== START OF NAVBAR ========== -->
+<A NAME="navbar_top"><!-- --></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_top_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/User.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B>JAFS API v2</B></EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../org/openafs/jafs/Token.html"><B>PREV CLASS</B></A>
+ <A HREF="../../../org/openafs/jafs/VersionInfo.html"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
+ <A HREF="User.html" TARGET="_top"><B>NO FRAMES</B></A>
+
+<SCRIPT>
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
+</NOSCRIPT>
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+
+<HR>
+<!-- ======== START OF CLASS DATA ======== -->
+<H2>
+<FONT SIZE="-1">
+org.openafs.jafs</FONT>
+<BR>
+Class User</H2>
+<PRE>
+<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">java.lang.Object</A>
+ |
+ +--<B>org.openafs.jafs.User</B>
+</PRE>
+<DL>
+<DT><B>All Implemented Interfaces:</B> <DD><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Comparable.html">Comparable</A>, <A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/Serializable.html">Serializable</A></DD>
+</DL>
+<HR>
+<DL>
+<DT>public class <B>User</B><DT>extends <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A><DT>implements <A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/io/Serializable.html">Serializable</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Comparable.html">Comparable</A></DL>
+
+<P>
+An abstract representation of an AFS user. It holds information about
+ the user, such as what groups it belongs to.
+ <BR><BR>
+
+ Constructing an instance of a <code>User</code> does not mean an actual
+ AFS user is created in a cell -- usually a <code>User</code>
+ object is a representation of an already existing AFS user. If,
+ however, the <code>User</code> is constructed with the name of a
+ user that does not exist in the cell represented by the provided
+ <code>Cell</code>, a new user with that name can be
+ created in that server by calling the <A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String, int)"><CODE>create(String, int)</CODE></A> or
+ <A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String)"><CODE>create(String)</CODE></A> method. If such a user does already exist when
+ one of these methods is called, an exception will be thrown.<BR><BR>
+
+ Each <code>User</code> object has its own individual set of
+ <code>Group</code>s that it owns and <code>Group</code>s for which
+ it is a member. These represents the properties and attributes
+ of an actual AFS user.
+ <BR><BR>
+
+ Since this <code>User</code> object is a union of both the PTS and KAS
+ properties of AFS users, some methods meant for users with a PTS entry
+ will throw exceptions if used on a user with only a KAS entry, and vice
+ versa.<BR><BR>
+
+ <!--Information on how member values are set-->
+
+ Associated with an AFS user are many attributes, such as whether or not
+ it can change its own password, or who is allowed to find out the groups
+ to which this user belongs. The <code>User</code> class has many
+ "set" methods to indicate values for these attributes (i.e.
+ <A HREF="../../../org/openafs/jafs/User.html#setChangePassword(boolean)"><CODE>setChangePassword(boolean)</CODE></A> and <A HREF="../../../org/openafs/jafs/User.html#setListMembership(int)"><CODE>setListMembership(int)</CODE></A>).
+ However, in order for these values to be written to the actual AFS user,
+ the <A HREF="../../../org/openafs/jafs/User.html#flushInfo()"><CODE>flushInfo()</CODE></A> method needs to be called. This writes all user
+ attributes set through this API to AFS. This is done to minimize calls
+ through JNI.<BR><BR>
+
+ <!--Example of how to use class-->
+ The following is a simple example of how to construct and use a
+ <code>User</code> object. It iterates through the list of users
+ (a union of pts and kas users) for a cell, and prints out the name and
+ id of each.
+
+ <PRE>
+ import org.openafs.jafs.Cell;
+ import org.openafs.jafs.AFSException;
+ import org.openafs.jafs.User;
+ ...
+ public class ...
+ {
+ ...
+ private Cell cell;
+ ...
+ public static void main(String[] args) throws Exception
+ {
+ String username = arg[0];
+ String password = arg[1];
+ String cellName = arg[2];
+
+ token = new Token(username, password, cellName);
+ cell = new Cell(token);
+ server = cell.getServer(serverName);
+
+ System.out.println("Users in Cell " + cell.getName() + ":");
+ User[] users = cell.getUsers();
+ for (int i = 0; i < users.length; i++) {
+ System.out.println(" -> " + users[i] + ": " users[i].getID());
+ }
+ }
+ ...
+ }
+ </PRE>
+<P>
+
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../serialized-form.html" TARGET="org.openafs.jafs.User">Serialized Form</A></DL>
+<HR>
+
+<P>
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+
+<A NAME="field_summary"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Field Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#ADMIN">ADMIN</A></B></CODE>
+
+<BR>
+ User has administrative kas privileges</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#adminSetting">adminSetting</A></B></CODE>
+
+<BR>
+ whether or not this user has kas administrative privileges.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cachedInfo">cachedInfo</A></B></CODE>
+
+<BR>
+ Whether or not the information fields of this user have been filled.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cell">cell</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cellHandle">cellHandle</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#CHANGE_PASSWORD">CHANGE_PASSWORD</A></B></CODE>
+
+<BR>
+ User can change their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cpwSetting">cpwSetting</A></B></CODE>
+
+<BR>
+ whether this user is allowed to change its password. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#creator">creator</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#creatorUID">creatorUID</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#daysToPasswordExpire">daysToPasswordExpire</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#ENCRYPT">ENCRYPT</A></B></CODE>
+
+<BR>
+ TGS can use user's key for an encryption key</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#encryptionKey">encryptionKey</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#encSetting">encSetting</A></B></CODE>
+
+<BR>
+ whether the TGS can use this user's key as an encryption key. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#failLoginCount">failLoginCount</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#GRANT_TICKETS">GRANT_TICKETS</A></B></CODE>
+
+<BR>
+ TGS will grant tickets for user</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupCreationQuota">groupCreationQuota</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupMembershipCount">groupMembershipCount</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupNames">groupNames</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groups">groups</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupsOwned">groupsOwned</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupsOwnedNames">groupsOwnedNames</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#kas">kas</A></B></CODE>
+
+<BR>
+ Does this user have a kas entry?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#keyCheckSum">keyCheckSum</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#keyVersion">keyVersion</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastChangePasswordTime">lastChangePasswordTime</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastChangePasswordTimeDate">lastChangePasswordTimeDate</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastModName">lastModName</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastModTime">lastModTime</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastModTimeDate">lastModTimeDate</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#listGroupsOwned">listGroupsOwned</A></B></CODE>
+
+<BR>
+ who is allowed to execute pts listowned for this user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#listMembership">listMembership</A></B></CODE>
+
+<BR>
+ who is allowed to execute pts membership for this user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#listStatus">listStatus</A></B></CODE>
+
+<BR>
+ who is allowed to execute pts examine for this user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lockedUntil">lockedUntil</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lockedUntilDate">lockedUntilDate</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lockTime">lockTime</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#maxTicketLifetime">maxTicketLifetime</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#name">name</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#nameUID">nameUID</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_ADMIN">NO_ADMIN</A></B></CODE>
+
+<BR>
+ User has no administrative kas privileges</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_CHANGE_PASSWORD">NO_CHANGE_PASSWORD</A></B></CODE>
+
+<BR>
+ User cannot change their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_ENCRYPT">NO_ENCRYPT</A></B></CODE>
+
+<BR>
+ TGS cannot use user's key for an encryption key</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_GRANT_TICKETS">NO_GRANT_TICKETS</A></B></CODE>
+
+<BR>
+ TGS will not grant tickets for user</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_REUSE_PASSWORD">NO_REUSE_PASSWORD</A></B></CODE>
+
+<BR>
+ User cannot reuse their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#owner">owner</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#ownerUID">ownerUID</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#pts">pts</A></B></CODE>
+
+<BR>
+ Does this user have a pts entry?</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#REUSE_PASSWORD">REUSE_PASSWORD</A></B></CODE>
+
+<BR>
+ User can reuse their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#rpwSetting">rpwSetting</A></B></CODE>
+
+<BR>
+ whether this user is allowed to reuse its password. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#tgsSetting">tgsSetting</A></B></CODE>
+
+<BR>
+ whether the TGS will grant tickets for this user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS">USER_ANYUSER_ACCESS</A></B></CODE>
+
+<BR>
+ Any user has access</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS">USER_OWNER_ACCESS</A></B></CODE>
+
+<BR>
+ Only the owner of the user has access</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#userExpiration">userExpiration</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#userExpirationDate">userExpirationDate</A></B></CODE>
+
+<BR>
+ </TD>
+</TR>
+</TABLE>
+ <A NAME="fields_inherited_from_class_org.openafs.jafs.PTSEntry"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Fields inherited from interface org.openafs.jafs.<A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#PTS_GROUP">PTS_GROUP</A>, <A HREF="../../../org/openafs/jafs/PTSEntry.html#PTS_USER">PTS_USER</A></CODE></TD>
+</TR>
+</TABLE>
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+
+<A NAME="constructor_summary"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Constructor Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>(package private)</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#User(org.openafs.jafs.Cell)">User</A></B>(<A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> cell)</CODE>
+
+<BR>
+ Constructs a blank <code>User</code> object given the cell to which
+ the user belongs. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#User(java.lang.String, org.openafs.jafs.Cell)">User</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> cell)</CODE>
+
+<BR>
+ Constructs a new <code>User</code> object instance given the name
+ of the AFS user and the AFS cell, represented by
+ <CODE>cell</CODE>, to which it belongs. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> </CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#User(java.lang.String, org.openafs.jafs.Cell, boolean)">User</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> cell,
+ boolean preloadAllMembers)</CODE>
+
+<BR>
+ Constructs a new <code>User</code> object instance given the name
+ of the AFS user and the AFS cell, represented by
+ <CODE>cell</CODE>, to which it belongs. </TD>
+</TR>
+</TABLE>
+
+<!-- ========== METHOD SUMMARY =========== -->
+
+<A NAME="method_summary"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=2><FONT SIZE="+2">
+<B>Method Summary</B></FONT></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#canChangePassword()">canChangePassword</A></B>()</CODE>
+
+<BR>
+ KAS: Returns whether or not the user can change their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#canEncrypt()">canEncrypt</A></B>()</CODE>
+
+<BR>
+ KAS: Returns whether or not TGS can use this users ticket for an encryption key</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#canReusePassword()">canReusePassword</A></B>()</CODE>
+
+<BR>
+ KAS: Returns whether or not the user can reuse their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#compareTo(java.lang.Object)">compareTo</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A> obj)</CODE>
+
+<BR>
+ Comparable interface method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#compareTo(org.openafs.jafs.User)">compareTo</A></B>(<A HREF="../../../org/openafs/jafs/User.html">User</A> user)</CODE>
+
+<BR>
+ Compares two User objects respective to their names and does not
+ factor any other attribute. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#create(int, java.lang.String, java.lang.String, int)">create</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> password,
+ int uid)</CODE>
+
+<BR>
+ Creates the kas and pts entries for a new user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String)">create</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> password)</CODE>
+
+<BR>
+ Creates the kas and pts entries for a new user in this cell.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String, int)">create</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> password,
+ int uid)</CODE>
+
+<BR>
+ Creates the kas and pts entries for a new user in this cell.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#delete()">delete</A></B>()</CODE>
+
+<BR>
+ Deletes the pts and kas entries for a user in this cell. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#delete(int, java.lang.String)">delete</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName)</CODE>
+
+<BR>
+ Deletes the pts and kas entry for a user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#equals(org.openafs.jafs.User)">equals</A></B>(<A HREF="../../../org/openafs/jafs/User.html">User</A> otherUser)</CODE>
+
+<BR>
+ Tests whether two <code>User</code> objects are equal, based on their
+ names.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#flushInfo()">flushInfo</A></B>()</CODE>
+
+<BR>
+ Flushes the current information of this <code>User</code> object to disk.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getCell()">getCell</A></B>()</CODE>
+
+<BR>
+ Returns the Cell this user belongs to.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getCreator()">getCreator</A></B>()</CODE>
+
+<BR>
+ PTS: Returns the creator of this user in the form of a <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>.
+
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getDaysToPasswordExpire()">getDaysToPasswordExpire</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the number of days a password is valid before it expires.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getEncryptionKey()">getEncryptionKey</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the encryption key, in octal form, of this user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getFailLoginCount()">getFailLoginCount</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the number of failed login attempts this user is allowed
+ before being locked out. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupCreationQuota()">getGroupCreationQuota</A></B>()</CODE>
+
+<BR>
+ PTS: Returns how many more groups this user is allowed to create</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupMembershipCount()">getGroupMembershipCount</A></B>()</CODE>
+
+<BR>
+ PTS: Returns the number of groups to which this user belongs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupNames()">getGroupNames</A></B>()</CODE>
+
+<BR>
+ PTS: Returns a <code>String</code> array of the group names
+ to which this user belongs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../org/openafs/jafs/Group.html">Group</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroups()">getGroups</A></B>()</CODE>
+
+<BR>
+ PTS: Returns an array of the <code>Group</code> objects
+ to which this user belongs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../org/openafs/jafs/Group.html">Group</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwned()">getGroupsOwned</A></B>()</CODE>
+
+<BR>
+ PTS: Returns an array of the <code>Group</code> objects
+ this user owns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedBegin(int, java.lang.String)">getGroupsOwnedBegin</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name)</CODE>
+
+<BR>
+ Begin the process of getting the groups that a user or group owns.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedCount()">getGroupsOwnedCount</A></B>()</CODE>
+
+<BR>
+ PTS: Returns the total count of groups this user owns.
+
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedCount(int, java.lang.String)">getGroupsOwnedCount</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name)</CODE>
+
+<BR>
+ Returns the total number of groups owned by the user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedDone(int)">getGroupsOwnedDone</A></B>(int iterationId)</CODE>
+
+<BR>
+ Signals that the iteration is complete and will not be accessed anymore.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>[]</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedNames()">getGroupsOwnedNames</A></B>()</CODE>
+
+<BR>
+ PTS: Returns a <code>String</code> array of the group names
+ this user owns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedNext(int, int, org.openafs.jafs.Group)">getGroupsOwnedNext</A></B>(int cellHandle,
+ int iterationId,
+ <A HREF="../../../org/openafs/jafs/Group.html">Group</A> theGroup)</CODE>
+
+<BR>
+ Fills the next group object that the user or group owns. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedNextString(int)">getGroupsOwnedNextString</A></B>(int iterationId)</CODE>
+
+<BR>
+ Returns the next group the user or group owns. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getInfo()">getInfo</A></B>()</CODE>
+
+<BR>
+ Returns a <code>String</code> representation of this <code>User</code>.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getInfoGroups()">getInfoGroups</A></B>()</CODE>
+
+<BR>
+ Returns a <code>String</code> containing the <code>String</code>
+ representations of all the groups to which this user belongs.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getInfoGroupsOwned()">getInfoGroupsOwned</A></B>()</CODE>
+
+<BR>
+ Returns a <code>String</code> containing the <code>String</code>
+ representations of all the groups that this user owns.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getKeyCheckSum()">getKeyCheckSum</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the check sum of this user's key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getKeyVersion()">getKeyVersion</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the version number of the user's key.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastChangePasswordTime()">getLastChangePasswordTime</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the last date and time (in UTC) the user changed
+ its password.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastChangePasswordTimeDate()">getLastChangePasswordTimeDate</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the last date and time the user changed its password.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastModName()">getLastModName</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the name of the user that last modified this user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastModTime()">getLastModTime</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the date and time (in UTC) the user's KAS entry was
+ last modified.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastModTimeDate()">getLastModTimeDate</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the date and time the user was last modified.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getListGroupsOwned()">getListGroupsOwned</A></B>()</CODE>
+
+<BR>
+ PTS: Returns who can list the groups owned (pts listowned) by this user.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getListMembership()">getListMembership</A></B>()</CODE>
+
+<BR>
+ PTS: Returns who can list the groups (pts membership) to which this
+ user belongs.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getListStatus()">getListStatus</A></B>()</CODE>
+
+<BR>
+ PTS: Returns who can list the status (pts examine) of this user.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLockedUntil()">getLockedUntil</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the date and time (in UTC) at which the user stops
+ being locked out. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLockedUntilDate()">getLockedUntilDate</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the date and time at which the user stops being locked out.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLockTime()">getLockTime</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the amount of time (in seconds) a user is locked out when
+ it exceeds the maximum number of allowable failed login attempts.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getMaxTicketLifetime()">getMaxTicketLifetime</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the maximum lifetime of a ticket issued to this user
+ (in seconds).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getName()">getName</A></B>()</CODE>
+
+<BR>
+ Returns the name of this user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getOwner()">getOwner</A></B>()</CODE>
+
+<BR>
+ PTS: Returns the owner of this user in the form of a <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>.
+
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> short</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+ Returns the type of <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A> this object represents.
+
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUID()">getUID</A></B>()</CODE>
+
+<BR>
+ PTS: Returns the numeric AFS id of this user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserExpiration()">getUserExpiration</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the date and time the user expires.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserExpirationDate()">getUserExpirationDate</A></B>()</CODE>
+
+<BR>
+ KAS: Returns the date and time the user expires.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsBegin(int, java.lang.String)">getUserGroupsBegin</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name)</CODE>
+
+<BR>
+ Begin the process of getting the groups to which the user belongs.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsDone(int)">getUserGroupsDone</A></B>(int iterationId)</CODE>
+
+<BR>
+ Signals that the iteration is complete and will not be accessed anymore.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsNext(int, int, org.openafs.jafs.Group)">getUserGroupsNext</A></B>(int cellHandle,
+ int iterationId,
+ <A HREF="../../../org/openafs/jafs/Group.html">Group</A> theGroup)</CODE>
+
+<BR>
+ Fills the next group object of which the user belongs. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsNextString(int)">getUserGroupsNextString</A></B>(int iterationId)</CODE>
+
+<BR>
+ Returns the next group to which the user belongs. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserInfo(int, java.lang.String, org.openafs.jafs.User)">getUserInfo</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/User.html">User</A> user)</CODE>
+
+<BR>
+ Fills in the information fields of the provided <code>User</code>.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#isAdmin()">isAdmin</A></B>()</CODE>
+
+<BR>
+ KAS: Returns whether or not this user has kas administrative privileges</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#isKAS()">isKAS</A></B>()</CODE>
+
+<BR>
+ Returns whether or not this user has a kas entry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#isPTS()">isPTS</A></B>()</CODE>
+
+<BR>
+ Returns whether or not this user has a pts entry.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#reclaimUserMemory()">reclaimUserMemory</A></B>()</CODE>
+
+<BR>
+ Reclaims all memory being saved by the user portion of the native library.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refresh()">refresh</A></B>()</CODE>
+
+<BR>
+ Refreshes the properties of this User object instance with values from
+ the AFS user it represents. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refresh(boolean)">refresh</A></B>(boolean all)</CODE>
+
+<BR>
+ Refreshes the properties of this User object instance with values from
+ the AFS user it represents. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroupNames()">refreshGroupNames</A></B>()</CODE>
+
+<BR>
+ Refreshes the current information about the group names to which the
+ user belongs. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroups()">refreshGroups</A></B>()</CODE>
+
+<BR>
+ Refreshes the current information about the group objects to which the
+ user belongs. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroupsOwned()">refreshGroupsOwned</A></B>()</CODE>
+
+<BR>
+ Refreshes the current information about the group objects that the user \
+ owns. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroupsOwnedNames()">refreshGroupsOwnedNames</A></B>()</CODE>
+
+<BR>
+ Refreshes the current information about the group names that the user
+ owns. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshInfo()">refreshInfo</A></B>()</CODE>
+
+<BR>
+ Refreshes the information fields of this <code>User</code> to reflect
+ the current state of the AFS user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#rename(int, java.lang.String, java.lang.String)">rename</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> oldName,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newName)</CODE>
+
+<BR>
+ Renames the given user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#rename(java.lang.String)">rename</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newName)</CODE>
+
+<BR>
+ Change the name of this user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setAdmin(boolean)">setAdmin</A></B>(boolean setting)</CODE>
+
+<BR>
+ KAS: Sets whether or not this user has kas administrative privileges</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setChangePassword(boolean)">setChangePassword</A></B>(boolean setting)</CODE>
+
+<BR>
+ KAS: Sets whether or not the user can change their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setDaysToPasswordExpire(int)">setDaysToPasswordExpire</A></B>(int days)</CODE>
+
+<BR>
+ KAS: Sets the number of days a password is valid before it expires.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setEncrypt(boolean)">setEncrypt</A></B>(boolean setting)</CODE>
+
+<BR>
+ KAS: Sets whether or not TGS can use this users ticket for an
+ encryption key</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setFailLoginCount(int)">setFailLoginCount</A></B>(int logins)</CODE>
+
+<BR>
+ KAS: Sets the number of failed login attempts this user is allowed before
+ being locked out. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setGrantTickets(boolean)">setGrantTickets</A></B>(boolean setting)</CODE>
+
+<BR>
+ KAS: Sets whether or not TGS will issue tickets for this user</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setGroupCreationQuota(int)">setGroupCreationQuota</A></B>(int quota)</CODE>
+
+<BR>
+ PTS: Sets how many more groups this user is allowed to create</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setListGroupsOwned(int)">setListGroupsOwned</A></B>(int value)</CODE>
+
+<BR>
+ PTS: Sets who can list the groups owned (pts listowned) by this user.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setListMembership(int)">setListMembership</A></B>(int value)</CODE>
+
+<BR>
+ PTS: Sets who can list the groups (pts membership) to which this
+ user belongs.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setListStatus(int)">setListStatus</A></B>(int value)</CODE>
+
+<BR>
+ PTS: Sets who can list the status (pts examine) of this user.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setLockTime(int)">setLockTime</A></B>(int seconds)</CODE>
+
+<BR>
+ KAS: Sets the amount of time (in seconds) a user is locked out when it
+ exceeds the maximum number of allowable failed login attempts.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setMaxTicketLifetime(int)">setMaxTicketLifetime</A></B>(int seconds)</CODE>
+
+<BR>
+ KAS: Sets the maximum lifetime of a ticket issued to this user
+ (in seconds).</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setPassword(int, java.lang.String, java.lang.String)">setPassword</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newPassword)</CODE>
+
+<BR>
+ Sets the password of the given user. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setPassword(java.lang.String)">setPassword</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newPassword)</CODE>
+
+<BR>
+ Sets the password of this user to something new. </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setReusePassword(boolean)">setReusePassword</A></B>(boolean setting)</CODE>
+
+<BR>
+ KAS: Sets whether or not the user can reuse their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setUserExpiration(java.util.GregorianCalendar)">setUserExpiration</A></B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> expirationDate)</CODE>
+
+<BR>
+ KAS: Sets the date and time the user expires.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setUserInfo(int, java.lang.String, org.openafs.jafs.User)">setUserInfo</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/User.html">User</A> theUser)</CODE>
+
+<BR>
+ Sets the information values of this AFS user to be the parameter values.
+ </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A></CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#toString()">toString</A></B>()</CODE>
+
+<BR>
+ Returns the name of this <CODE>User</CODE></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#unlock()">unlock</A></B>()</CODE>
+
+<BR>
+ Unlocks the given user if they were locked out of the cell.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected static void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#unlock(int, java.lang.String)">unlock</A></B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName)</CODE>
+
+<BR>
+ Unlocks a user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE> boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#willGrantTickets()">willGrantTickets</A></B>()</CODE>
+
+<BR>
+ KAS: Returns whether or not TGS will issue tickets for this user</TD>
+</TR>
+</TABLE>
+ <A NAME="methods_inherited_from_class_java.lang.Object"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor">
+<TD><B>Methods inherited from class java.lang.<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A></B></TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#clone()">clone</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#equals(java.lang.Object)">equals</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#finalize()">finalize</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#getClass()">getClass</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#hashCode()">hashCode</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#notify()">notify</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#notifyAll()">notifyAll</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait()">wait</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait(long)">wait</A>, <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#wait(long, int)">wait</A></CODE></TD>
+</TR>
+</TABLE>
+
+<P>
+
+<!-- ============ FIELD DETAIL =========== -->
+
+<A NAME="field_detail"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Field Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="USER_OWNER_ACCESS"><!-- --></A><H3>
+USER_OWNER_ACCESS</H3>
+<PRE>
+public static final int <B>USER_OWNER_ACCESS</B></PRE>
+<DL>
+<DD>Only the owner of the user has access
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.USER_OWNER_ACCESS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="USER_ANYUSER_ACCESS"><!-- --></A><H3>
+USER_ANYUSER_ACCESS</H3>
+<PRE>
+public static final int <B>USER_ANYUSER_ACCESS</B></PRE>
+<DL>
+<DD>Any user has access
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.USER_ANYUSER_ACCESS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ADMIN"><!-- --></A><H3>
+ADMIN</H3>
+<PRE>
+public static final int <B>ADMIN</B></PRE>
+<DL>
+<DD>User has administrative kas privileges
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.ADMIN">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_ADMIN"><!-- --></A><H3>
+NO_ADMIN</H3>
+<PRE>
+public static final int <B>NO_ADMIN</B></PRE>
+<DL>
+<DD>User has no administrative kas privileges
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.NO_ADMIN">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="GRANT_TICKETS"><!-- --></A><H3>
+GRANT_TICKETS</H3>
+<PRE>
+public static final int <B>GRANT_TICKETS</B></PRE>
+<DL>
+<DD>TGS will grant tickets for user
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.GRANT_TICKETS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_GRANT_TICKETS"><!-- --></A><H3>
+NO_GRANT_TICKETS</H3>
+<PRE>
+public static final int <B>NO_GRANT_TICKETS</B></PRE>
+<DL>
+<DD>TGS will not grant tickets for user
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.NO_GRANT_TICKETS">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="ENCRYPT"><!-- --></A><H3>
+ENCRYPT</H3>
+<PRE>
+public static final int <B>ENCRYPT</B></PRE>
+<DL>
+<DD>TGS can use user's key for an encryption key
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.ENCRYPT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_ENCRYPT"><!-- --></A><H3>
+NO_ENCRYPT</H3>
+<PRE>
+public static final int <B>NO_ENCRYPT</B></PRE>
+<DL>
+<DD>TGS cannot use user's key for an encryption key
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.NO_ENCRYPT">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="CHANGE_PASSWORD"><!-- --></A><H3>
+CHANGE_PASSWORD</H3>
+<PRE>
+public static final int <B>CHANGE_PASSWORD</B></PRE>
+<DL>
+<DD>User can change their password
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.CHANGE_PASSWORD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_CHANGE_PASSWORD"><!-- --></A><H3>
+NO_CHANGE_PASSWORD</H3>
+<PRE>
+public static final int <B>NO_CHANGE_PASSWORD</B></PRE>
+<DL>
+<DD>User cannot change their password
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.NO_CHANGE_PASSWORD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="REUSE_PASSWORD"><!-- --></A><H3>
+REUSE_PASSWORD</H3>
+<PRE>
+public static final int <B>REUSE_PASSWORD</B></PRE>
+<DL>
+<DD>User can reuse their password
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.REUSE_PASSWORD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="NO_REUSE_PASSWORD"><!-- --></A><H3>
+NO_REUSE_PASSWORD</H3>
+<PRE>
+public static final int <B>NO_REUSE_PASSWORD</B></PRE>
+<DL>
+<DD>User cannot reuse their password
+<P>
+<DL>
+<DT><B>See Also:</B><DD><A HREF="../../../constant-values.html#org.openafs.jafs.User.NO_REUSE_PASSWORD">Constant Field Values</A></DL>
+</DL>
+<HR>
+
+<A NAME="cell"><!-- --></A><H3>
+cell</H3>
+<PRE>
+protected <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> <B>cell</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="cellHandle"><!-- --></A><H3>
+cellHandle</H3>
+<PRE>
+protected int <B>cellHandle</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="name"><!-- --></A><H3>
+name</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>name</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="kas"><!-- --></A><H3>
+kas</H3>
+<PRE>
+protected boolean <B>kas</B></PRE>
+<DL>
+<DD>Does this user have a kas entry?
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="pts"><!-- --></A><H3>
+pts</H3>
+<PRE>
+protected boolean <B>pts</B></PRE>
+<DL>
+<DD>Does this user have a pts entry?
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="groupCreationQuota"><!-- --></A><H3>
+groupCreationQuota</H3>
+<PRE>
+protected int <B>groupCreationQuota</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="groupMembershipCount"><!-- --></A><H3>
+groupMembershipCount</H3>
+<PRE>
+protected int <B>groupMembershipCount</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="nameUID"><!-- --></A><H3>
+nameUID</H3>
+<PRE>
+protected int <B>nameUID</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="ownerUID"><!-- --></A><H3>
+ownerUID</H3>
+<PRE>
+protected int <B>ownerUID</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="creatorUID"><!-- --></A><H3>
+creatorUID</H3>
+<PRE>
+protected int <B>creatorUID</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="listStatus"><!-- --></A><H3>
+listStatus</H3>
+<PRE>
+protected int <B>listStatus</B></PRE>
+<DL>
+<DD>who is allowed to execute pts examine for this user. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A>
+ -- only the owner has permission</li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A>
+ -- any user has permission</li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="listGroupsOwned"><!-- --></A><H3>
+listGroupsOwned</H3>
+<PRE>
+protected int <B>listGroupsOwned</B></PRE>
+<DL>
+<DD>who is allowed to execute pts listowned for this user. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A>
+ -- only the owner has permission</li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A>
+ -- any user has permission</li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="listMembership"><!-- --></A><H3>
+listMembership</H3>
+<PRE>
+protected int <B>listMembership</B></PRE>
+<DL>
+<DD>who is allowed to execute pts membership for this user. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A>
+ -- only the owner has permission</li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A>
+ -- any user has permission</li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="owner"><!-- --></A><H3>
+owner</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>owner</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="creator"><!-- --></A><H3>
+creator</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>creator</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="groups"><!-- --></A><H3>
+groups</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A> <B>groups</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="groupNames"><!-- --></A><H3>
+groupNames</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A> <B>groupNames</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="groupsOwned"><!-- --></A><H3>
+groupsOwned</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A> <B>groupsOwned</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="groupsOwnedNames"><!-- --></A><H3>
+groupsOwnedNames</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/ArrayList.html">ArrayList</A> <B>groupsOwnedNames</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="adminSetting"><!-- --></A><H3>
+adminSetting</H3>
+<PRE>
+protected int <B>adminSetting</B></PRE>
+<DL>
+<DD>whether or not this user has kas administrative privileges.
+ Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#ADMIN"><CODE>ADMIN</CODE></A></li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#NO_ADMIN"><CODE>NO_ADMIN</CODE></A></li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="tgsSetting"><!-- --></A><H3>
+tgsSetting</H3>
+<PRE>
+protected int <B>tgsSetting</B></PRE>
+<DL>
+<DD>whether the TGS will grant tickets for this user. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#GRANT_TICKETS"><CODE>GRANT_TICKETS</CODE></A></li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#NO_GRANT_TICKETS"><CODE>NO_GRANT_TICKETS</CODE></A></li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="encSetting"><!-- --></A><H3>
+encSetting</H3>
+<PRE>
+protected int <B>encSetting</B></PRE>
+<DL>
+<DD>whether the TGS can use this user's key as an encryption key. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#ENCRYPT"><CODE>ENCRYPT</CODE></A></li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#NO_ENCRYPT"><CODE>NO_ENCRYPT</CODE></A></li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="cpwSetting"><!-- --></A><H3>
+cpwSetting</H3>
+<PRE>
+protected int <B>cpwSetting</B></PRE>
+<DL>
+<DD>whether this user is allowed to change its password. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#CHANGE_PASSWORD"><CODE>CHANGE_PASSWORD</CODE></A></li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#NO_CHANGE_PASSWORD"><CODE>NO_CHANGE_PASSWORD</CODE></A></li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="rpwSetting"><!-- --></A><H3>
+rpwSetting</H3>
+<PRE>
+protected int <B>rpwSetting</B></PRE>
+<DL>
+<DD>whether this user is allowed to reuse its password. Valid values are:
+ <ul>
+ <li><A HREF="../../../org/openafs/jafs/User.html#REUSE_PASSWORD"><CODE>REUSE_PASSWORD</CODE></A></li>
+ <li><A HREF="../../../org/openafs/jafs/User.html#NO_REUSE_PASSWORD"><CODE>NO_REUSE_PASSWORD</CODE></A></li></ul>
+<P>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="userExpiration"><!-- --></A><H3>
+userExpiration</H3>
+<PRE>
+protected int <B>userExpiration</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastModTime"><!-- --></A><H3>
+lastModTime</H3>
+<PRE>
+protected int <B>lastModTime</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastModName"><!-- --></A><H3>
+lastModName</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>lastModName</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastChangePasswordTime"><!-- --></A><H3>
+lastChangePasswordTime</H3>
+<PRE>
+protected int <B>lastChangePasswordTime</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="maxTicketLifetime"><!-- --></A><H3>
+maxTicketLifetime</H3>
+<PRE>
+protected int <B>maxTicketLifetime</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="keyVersion"><!-- --></A><H3>
+keyVersion</H3>
+<PRE>
+protected int <B>keyVersion</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="encryptionKey"><!-- --></A><H3>
+encryptionKey</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>encryptionKey</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="keyCheckSum"><!-- --></A><H3>
+keyCheckSum</H3>
+<PRE>
+protected long <B>keyCheckSum</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="daysToPasswordExpire"><!-- --></A><H3>
+daysToPasswordExpire</H3>
+<PRE>
+protected int <B>daysToPasswordExpire</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="failLoginCount"><!-- --></A><H3>
+failLoginCount</H3>
+<PRE>
+protected int <B>failLoginCount</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lockTime"><!-- --></A><H3>
+lockTime</H3>
+<PRE>
+protected int <B>lockTime</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lockedUntil"><!-- --></A><H3>
+lockedUntil</H3>
+<PRE>
+protected int <B>lockedUntil</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lockedUntilDate"><!-- --></A><H3>
+lockedUntilDate</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>lockedUntilDate</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="userExpirationDate"><!-- --></A><H3>
+userExpirationDate</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>userExpirationDate</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastModTimeDate"><!-- --></A><H3>
+lastModTimeDate</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>lastModTimeDate</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="lastChangePasswordTimeDate"><!-- --></A><H3>
+lastChangePasswordTimeDate</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>lastChangePasswordTimeDate</B></PRE>
+<DL>
+<DL>
+</DL>
+</DL>
+<HR>
+
+<A NAME="cachedInfo"><!-- --></A><H3>
+cachedInfo</H3>
+<PRE>
+protected boolean <B>cachedInfo</B></PRE>
+<DL>
+<DD>Whether or not the information fields of this user have been filled.
+<P>
+<DL>
+</DL>
+</DL>
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+
+<A NAME="constructor_detail"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Constructor Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="User(java.lang.String, org.openafs.jafs.Cell)"><!-- --></A><H3>
+User</H3>
+<PRE>
+public <B>User</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> cell)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Constructs a new <code>User</code> object instance given the name
+ of the AFS user and the AFS cell, represented by
+ <CODE>cell</CODE>, to which it belongs. This does not actually
+ create a new AFS user, it just represents one.
+ If <code>name</code> is not an actual AFS user, exceptions
+ will be thrown during subsequent method invocations on this
+ object, unless the <A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String, int)"><CODE>create(String, int)</CODE></A> or <A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String)"><CODE>create(String)</CODE></A>
+ method is explicitly called to create it.
+<P>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the user to represent<DD><CODE>cell</CODE> - the cell to which the user belongs.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+<HR>
+
+<A NAME="User(java.lang.String, org.openafs.jafs.Cell, boolean)"><!-- --></A><H3>
+User</H3>
+<PRE>
+public <B>User</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> cell,
+ boolean preloadAllMembers)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Constructs a new <code>User</code> object instance given the name
+ of the AFS user and the AFS cell, represented by
+ <CODE>cell</CODE>, to which it belongs. This does not actually
+ create a new AFS user, it just represents one.
+ If <code>name</code> is not an actual AFS user, exceptions
+ will be thrown during subsequent method invocations on this
+ object, unless the <A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String, int)"><CODE>create(String, int)</CODE></A> or <A HREF="../../../org/openafs/jafs/User.html#create(java.lang.String)"><CODE>create(String)</CODE></A>
+ method is explicitly called to create it. Note that if the process
+ doesn't exist and <code>preloadAllMembers</code> is true, an exception
+ will be thrown.
+
+ <P> This constructor is ideal for point-in-time representation and
+ transient applications. It ensures all data member values are set and
+ available without calling back to the filesystem at the first request
+ for them. Use the <A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A> method to address any coherency
+ concerns.
+<P>
+<DT><B>Parameters:</B><DD><CODE>name</CODE> - the name of the user to represent<DD><CODE>cell</CODE> - the cell to which the user belongs.<DD><CODE>preloadAllMembers</CODE> - true will ensure all object members are
+ set upon construction;
+ otherwise members will be set upon access,
+ which is the default behavior.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+<HR>
+
+<A NAME="User(org.openafs.jafs.Cell)"><!-- --></A><H3>
+User</H3>
+<PRE>
+<B>User</B>(<A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> cell)
+throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Constructs a blank <code>User</code> object given the cell to which
+ the user belongs. This blank object can then be passed into other
+ methods to fill out its properties.
+<P>
+<DT><B>Parameters:</B><DD><CODE>cell</CODE> - the cell to which the user belongs.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+
+<!-- ============ METHOD DETAIL ========== -->
+
+<A NAME="method_detail"><!-- --></A>
+<TABLE BORDER="1" CELLPADDING="3" CELLSPACING="0" WIDTH="100%">
+<TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor">
+<TD COLSPAN=1><FONT SIZE="+2">
+<B>Method Detail</B></FONT></TD>
+</TR>
+</TABLE>
+
+<A NAME="create(java.lang.String)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public void <B>create</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> password)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Creates the kas and pts entries for a new user in this cell.
+ Automatically assigns a user id.
+ *
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>password</CODE> - the password for the new user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(java.lang.String, int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+public void <B>create</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> password,
+ int uid)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Creates the kas and pts entries for a new user in this cell.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>password</CODE> - the password for the new user<DD><CODE>uid</CODE> - the user id to assign to the new user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="delete()"><!-- --></A><H3>
+delete</H3>
+<PRE>
+public void <B>delete</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Deletes the pts and kas entries for a user in this cell. Deletes this user
+ from the membership list of the groups to which it belonged, but does not
+ delete the groups owned by this user. Also nullifies this corresponding
+ Java object.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unlock()"><!-- --></A><H3>
+unlock</H3>
+<PRE>
+public void <B>unlock</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Unlocks the given user if they were locked out of the cell.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="flushInfo()"><!-- --></A><H3>
+flushInfo</H3>
+<PRE>
+public void <B>flushInfo</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Flushes the current information of this <code>User</code> object to disk.
+ This will update the information of the actual AFS user to match the
+ settings that have been modified within this <code>User</code> object.
+ This function must be called before any changes made to the information
+ fields of this user will be seen by AFS.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rename(java.lang.String)"><!-- --></A><H3>
+rename</H3>
+<PRE>
+public void <B>rename</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newName)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Change the name of this user. Automatically flushes the info of this
+ user in order to update kas entry of the new name. NOTE: renaming a
+ locked user will unlock that user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newName</CODE> - the new name for this user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refresh()"><!-- --></A><H3>
+refresh</H3>
+<PRE>
+public void <B>refresh</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the properties of this User object instance with values from
+ the AFS user it represents. All properties that have been initialized
+ and/or accessed will be renewed according to the values of the AFS user
+ this User object instance represents.
+
+ <P>Since in most environments administrative changes can be administered
+ from an AFS command-line program or an alternate GUI application, this
+ method provides a means to refresh the Java object representation and
+ thereby ascertain any possible modifications that may have been made
+ from such alternate administrative programs. Using this method before
+ an associated instance accessor will ensure the highest level of
+ representative accuracy, accommodating changes made external to the
+ Java application space. If administrative changes to the underlying AFS
+ system are only allowed via this API, then the use of this method is
+ unnecessary.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refresh(boolean)"><!-- --></A><H3>
+refresh</H3>
+<PRE>
+protected void <B>refresh</B>(boolean all)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the properties of this User object instance with values from
+ the AFS user it represents. If <CODE>all</CODE> is <CODE>true</CODE>
+ then <U>all</U> of the properties of this User object instance will be
+ set, or renewed, according to the values of the AFS user it represents,
+ disregarding any previously set properties.
+
+ <P> Thus, if <CODE>all</CODE> is <CODE>false</CODE> then properties that
+ are currently set will be refreshed and properties that are not set will
+ remain uninitialized. See <A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A> for more information.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>all</CODE> - if true set or renew all object properties; otherwise renew
+ all set properties
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refreshInfo()"><!-- --></A><H3>
+refreshInfo</H3>
+<PRE>
+protected void <B>refreshInfo</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the information fields of this <code>User</code> to reflect
+ the current state of the AFS user. Does not refresh the groups to which
+ the user belongs or groups owned by the user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refreshGroupNames()"><!-- --></A><H3>
+refreshGroupNames</H3>
+<PRE>
+protected void <B>refreshGroupNames</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the current information about the group names to which the
+ user belongs. Does not refresh the information fields of the user or
+ the groups owned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refreshGroups()"><!-- --></A><H3>
+refreshGroups</H3>
+<PRE>
+protected void <B>refreshGroups</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the current information about the group objects to which the
+ user belongs. Does not refresh the information fields of the user or
+ the groups owned.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refreshGroupsOwnedNames()"><!-- --></A><H3>
+refreshGroupsOwnedNames</H3>
+<PRE>
+protected void <B>refreshGroupsOwnedNames</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the current information about the group names that the user
+ owns. Does not refresh the information fields of the user or the groups
+ belonged to.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="refreshGroupsOwned()"><!-- --></A><H3>
+refreshGroupsOwned</H3>
+<PRE>
+protected void <B>refreshGroupsOwned</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Refreshes the current information about the group objects that the user \
+ owns. Does not refresh the information fields of the user or the groups
+ belonged to.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getName()"><!-- --></A><H3>
+getName</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getName</B>()</PRE>
+<DL>
+<DD>Returns the name of this user.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#getName()">getName</A></CODE> in interface <CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this user</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCell()"><!-- --></A><H3>
+getCell</H3>
+<PRE>
+public <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A> <B>getCell</B>()</PRE>
+<DL>
+<DD>Returns the Cell this user belongs to.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#getCell()">getCell</A></CODE> in interface <CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the Cell this user belongs to</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isKAS()"><!-- --></A><H3>
+isKAS</H3>
+<PRE>
+public boolean <B>isKAS</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns whether or not this user has a kas entry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not this user has a kas entry
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isPTS()"><!-- --></A><H3>
+isPTS</H3>
+<PRE>
+public boolean <B>isPTS</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns whether or not this user has a pts entry.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not this user has a pts entry
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroups()"><!-- --></A><H3>
+getGroups</H3>
+<PRE>
+public <A HREF="../../../org/openafs/jafs/Group.html">Group</A>[] <B>getGroups</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns an array of the <code>Group</code> objects
+ to which this user belongs.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array of the groups to which this user belongs
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedCount()"><!-- --></A><H3>
+getGroupsOwnedCount</H3>
+<PRE>
+public int <B>getGroupsOwnedCount</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns the total count of groups this user owns.
+
+ <P>If the total list of groups or group names have already been
+ collected (see <A HREF="../../../org/openafs/jafs/User.html#getGroupsOwned()"><CODE>getGroupsOwned()</CODE></A>), then the returning value
+ will be calculated based upon the current list. Otherwise, PTS will
+ be explicitly queried for the information.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>total count of groups this user owns
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwned()"><CODE>getGroupsOwned()</CODE></A>,
+<A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedNames()"><CODE>getGroupsOwnedNames()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwned()"><!-- --></A><H3>
+getGroupsOwned</H3>
+<PRE>
+public <A HREF="../../../org/openafs/jafs/Group.html">Group</A>[] <B>getGroupsOwned</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns an array of the <code>Group</code> objects
+ this user owns.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>an array of the <code>Groups</code> this user owns
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupNames()"><!-- --></A><H3>
+getGroupNames</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>[] <B>getGroupNames</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns a <code>String</code> array of the group names
+ to which this user belongs.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> array of the groups to which this
+ user belongs
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedNames()"><!-- --></A><H3>
+getGroupsOwnedNames</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>[] <B>getGroupsOwnedNames</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns a <code>String</code> array of the group names
+ this user owns.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> array of the groups this user owns
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUID()"><!-- --></A><H3>
+getUID</H3>
+<PRE>
+public int <B>getUID</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns the numeric AFS id of this user.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#getUID()">getUID</A></CODE> in interface <CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the AFS id of this user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupCreationQuota()"><!-- --></A><H3>
+getGroupCreationQuota</H3>
+<PRE>
+public int <B>getGroupCreationQuota</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns how many more groups this user is allowed to create.
+ -1 indicates unlimited.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the group creation quota
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupMembershipCount()"><!-- --></A><H3>
+getGroupMembershipCount</H3>
+<PRE>
+public int <B>getGroupMembershipCount</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns the number of groups to which this user belongs.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the group membership count
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getOwner()"><!-- --></A><H3>
+getOwner</H3>
+<PRE>
+public <A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A> <B>getOwner</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns the owner of this user in the form of a <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>.
+
+ <P>The returning object could be either a <A HREF="../../../org/openafs/jafs/User.html"><CODE>User</CODE></A> or <A HREF="../../../org/openafs/jafs/Group.html"><CODE>Group</CODE></A>;
+ to determine what type of object the <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A> represents,
+ call the <A HREF="../../../org/openafs/jafs/PTSEntry.html#getType()"><CODE>PTSEntry.getType()</CODE></A> method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#getOwner()">getOwner</A></CODE> in interface <CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the owner of this user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>,
+<A HREF="../../../org/openafs/jafs/PTSEntry.html#getType()"><CODE>PTSEntry.getType()</CODE></A>,
+<A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getCreator()"><!-- --></A><H3>
+getCreator</H3>
+<PRE>
+public <A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A> <B>getCreator</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns the creator of this user in the form of a <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>.
+
+ <P>The returning object could be either a <A HREF="../../../org/openafs/jafs/User.html"><CODE>User</CODE></A> or <A HREF="../../../org/openafs/jafs/Group.html"><CODE>Group</CODE></A>;
+ to determine what type of object the <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A> represents,
+ call the <A HREF="../../../org/openafs/jafs/PTSEntry.html#getType()"><CODE>PTSEntry.getType()</CODE></A> method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#getCreator()">getCreator</A></CODE> in interface <CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the creator of this user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>,
+<A HREF="../../../org/openafs/jafs/PTSEntry.html#getType()"><CODE>PTSEntry.getType()</CODE></A>,
+<A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getType()"><!-- --></A><H3>
+getType</H3>
+<PRE>
+public short <B>getType</B>()</PRE>
+<DL>
+<DD>Returns the type of <A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A> this object represents.
+
+ <P>This method will always return <A HREF="../../../org/openafs/jafs/PTSEntry.html#PTS_USER"><CODE>PTSEntry.PTS_USER</CODE></A>.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html#getType()">getType</A></CODE> in interface <CODE><A HREF="../../../org/openafs/jafs/PTSEntry.html">PTSEntry</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the type of PTSEntry this object represents
+ (will always return <A HREF="../../../org/openafs/jafs/PTSEntry.html#PTS_USER"><CODE>PTSEntry.PTS_USER</CODE></A>)<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/PTSEntry.html"><CODE>PTSEntry</CODE></A>,
+<A HREF="../../../org/openafs/jafs/PTSEntry.html#getType()"><CODE>PTSEntry.getType()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListStatus()"><!-- --></A><H3>
+getListStatus</H3>
+<PRE>
+public int <B>getListStatus</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns who can list the status (pts examine) of this user.
+ Valid values are:
+ <ul>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A></code>
+ -- only the owner has permission</li>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A></code>
+ -- any user has permission</li>
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the status listing permission
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListGroupsOwned()"><!-- --></A><H3>
+getListGroupsOwned</H3>
+<PRE>
+public int <B>getListGroupsOwned</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns who can list the groups owned (pts listowned) by this user.
+ Valid values are:
+ <ul>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A></code>
+ -- only the owner has permission</li>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A></code>
+ -- any user has permission</li>
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the groups owned listing permission
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getListMembership()"><!-- --></A><H3>
+getListMembership</H3>
+<PRE>
+public int <B>getListMembership</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Returns who can list the groups (pts membership) to which this
+ user belongs.
+ Valid values are:
+ <ul>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A></code>
+ -- only the owner has permission</li>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A></code>
+ -- any user has permission</li>
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the membership listing permission
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="isAdmin()"><!-- --></A><H3>
+isAdmin</H3>
+<PRE>
+public boolean <B>isAdmin</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns whether or not this user has kas administrative privileges
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not this user has kas administrative priveleges
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="willGrantTickets()"><!-- --></A><H3>
+willGrantTickets</H3>
+<PRE>
+public boolean <B>willGrantTickets</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns whether or not TGS will issue tickets for this user
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not TGS will issue tickets for this user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="canEncrypt()"><!-- --></A><H3>
+canEncrypt</H3>
+<PRE>
+public boolean <B>canEncrypt</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns whether or not TGS can use this users ticket for an encryption key
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not TGS can use this users ticket for an encryption key
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="canChangePassword()"><!-- --></A><H3>
+canChangePassword</H3>
+<PRE>
+public boolean <B>canChangePassword</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns whether or not the user can change their password
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not the user can change their password
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="canReusePassword()"><!-- --></A><H3>
+canReusePassword</H3>
+<PRE>
+public boolean <B>canReusePassword</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns whether or not the user can reuse their password
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>whether or not the user can reuse their password
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserExpiration()"><!-- --></A><H3>
+getUserExpiration</H3>
+<PRE>
+public int <B>getUserExpiration</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the date and time the user expires.
+ A <code>null</code> value indicates the user never exipres (or that
+ there is no kas entry for this user).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the date and time the user expires
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserExpirationDate()"><!-- --></A><H3>
+getUserExpirationDate</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>getUserExpirationDate</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the date and time the user expires.
+ A <code>null</code> value indicates the user never expires (or that
+ there is no kas entry for this user).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the date and time the user expires
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastModTime()"><!-- --></A><H3>
+getLastModTime</H3>
+<PRE>
+public int <B>getLastModTime</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the date and time (in UTC) the user's KAS entry was
+ last modified.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the date and time (in UTC) the user was last modified
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastModTimeDate()"><!-- --></A><H3>
+getLastModTimeDate</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>getLastModTimeDate</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the date and time the user was last modified.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the date and time the user was last modified
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastModName()"><!-- --></A><H3>
+getLastModName</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getLastModName</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the name of the user that last modified this user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this user that last modified this user.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastChangePasswordTimeDate()"><!-- --></A><H3>
+getLastChangePasswordTimeDate</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>getLastChangePasswordTimeDate</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the last date and time the user changed its password.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the last date and time the user changed its password.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLastChangePasswordTime()"><!-- --></A><H3>
+getLastChangePasswordTime</H3>
+<PRE>
+public int <B>getLastChangePasswordTime</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the last date and time (in UTC) the user changed
+ its password.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the last date and time (in UTC) the user changed its password.
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getMaxTicketLifetime()"><!-- --></A><H3>
+getMaxTicketLifetime</H3>
+<PRE>
+public int <B>getMaxTicketLifetime</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the maximum lifetime of a ticket issued to this user
+ (in seconds).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the maximum lifetime of a ticket issued to this user (in seconds).
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getDaysToPasswordExpire()"><!-- --></A><H3>
+getDaysToPasswordExpire</H3>
+<PRE>
+public int <B>getDaysToPasswordExpire</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the number of days a password is valid before it expires.
+ A value of 0 indicates passwords never expire.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of days for which a password is valid
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getFailLoginCount()"><!-- --></A><H3>
+getFailLoginCount</H3>
+<PRE>
+public int <B>getFailLoginCount</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the number of failed login attempts this user is allowed
+ before being locked out. A value of 0 indicates there is no limit.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of failed login attempts a user is allowed
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLockTime()"><!-- --></A><H3>
+getLockTime</H3>
+<PRE>
+public int <B>getLockTime</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the amount of time (in seconds) a user is locked out when
+ it exceeds the maximum number of allowable failed login attempts.
+ A value of 0 indicates an infinite lockout time.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the number of failed login attempts a user is allowed
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getEncryptionKey()"><!-- --></A><H3>
+getEncryptionKey</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getEncryptionKey</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the encryption key, in octal form, of this user. An
+ example of a key in octal form is:
+ '\040\205\211\241\345\002\023\211'.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the encryption key
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getKeyCheckSum()"><!-- --></A><H3>
+getKeyCheckSum</H3>
+<PRE>
+public long <B>getKeyCheckSum</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the check sum of this user's key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the check sum
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getKeyVersion()"><!-- --></A><H3>
+getKeyVersion</H3>
+<PRE>
+public int <B>getKeyVersion</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the version number of the user's key.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the key version
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLockedUntil()"><!-- --></A><H3>
+getLockedUntil</H3>
+<PRE>
+public int <B>getLockedUntil</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the date and time (in UTC) at which the user stops
+ being locked out. A value of 0 indicates the user is not currently
+ locked out. If the user is locked out forever, the value
+ will be equal to -1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the date and time (in UTC) at which the user stops being
+ locked out
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getLockedUntilDate()"><!-- --></A><H3>
+getLockedUntilDate</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> <B>getLockedUntilDate</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>KAS: Returns the date and time at which the user stops being locked out.
+ A value of <code>null</code> indicates the user is not currently locked
+ out. If the user is locked out forever, the value
+ <code>getLockedUntil().getTime().getTime()</code> will be equal to -1.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the date and time at which the user stops being locked out
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#refresh()"><CODE>refresh()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setGroupCreationQuota(int)"><!-- --></A><H3>
+setGroupCreationQuota</H3>
+<PRE>
+public void <B>setGroupCreationQuota</B>(int quota)</PRE>
+<DL>
+<DD>PTS: Sets how many more groups this user is allowed to create.
+ -1 indicates unlimited.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>quota</CODE> - the new group creation quota</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setListStatus(int)"><!-- --></A><H3>
+setListStatus</H3>
+<PRE>
+public void <B>setListStatus</B>(int value)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Sets who can list the status (pts examine) of this user.
+ Valid values are:
+ <ul>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A></code>
+ -- only the owner has permission</li>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A></code>
+ -- any user has permission</li>
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>value</CODE> - the value of the new list status permission
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - if an error occurs in the native code
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - if an invalud argument is provided</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setListGroupsOwned(int)"><!-- --></A><H3>
+setListGroupsOwned</H3>
+<PRE>
+public void <B>setListGroupsOwned</B>(int value)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Sets who can list the groups owned (pts listowned) by this user.
+ Valid values are:
+ <ul>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A></code>
+ -- only the owner has permission</li>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A></code>
+ -- any user has permission</li>
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>value</CODE> - the value of the new list groups owned permission
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - if an error occurs in the native code
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - if an invalud argument is provided</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setListMembership(int)"><!-- --></A><H3>
+setListMembership</H3>
+<PRE>
+public void <B>setListMembership</B>(int value)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>PTS: Sets who can list the groups (pts membership) to which this
+ user belongs.
+ Valid values are:
+ <ul>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS"><CODE>USER_OWNER_ACCESS</CODE></A></code>
+ -- only the owner has permission</li>
+ <li><code><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS"><CODE>USER_ANYUSER_ACCESS</CODE></A></code>
+ -- any user has permission</li>
+ </ul>
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>value</CODE> - the value of the new list membership permission
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - if an error occurs in the native code
+<DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/IllegalArgumentException.html">IllegalArgumentException</A></CODE> - if an invalud argument is provided</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setAdmin(boolean)"><!-- --></A><H3>
+setAdmin</H3>
+<PRE>
+public void <B>setAdmin</B>(boolean setting)</PRE>
+<DL>
+<DD>KAS: Sets whether or not this user has kas administrative privileges
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>setting</CODE> - whether or not this user has kas
+ administrative privileges</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setGrantTickets(boolean)"><!-- --></A><H3>
+setGrantTickets</H3>
+<PRE>
+public void <B>setGrantTickets</B>(boolean setting)</PRE>
+<DL>
+<DD>KAS: Sets whether or not TGS will issue tickets for this user
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>setting</CODE> - whether or not TGS will issue tickets for this user</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setEncrypt(boolean)"><!-- --></A><H3>
+setEncrypt</H3>
+<PRE>
+public void <B>setEncrypt</B>(boolean setting)</PRE>
+<DL>
+<DD>KAS: Sets whether or not TGS can use this users ticket for an
+ encryption key
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>setting</CODE> - whether or not TGS can use this users ticket for an
+ encryption key</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setChangePassword(boolean)"><!-- --></A><H3>
+setChangePassword</H3>
+<PRE>
+public void <B>setChangePassword</B>(boolean setting)</PRE>
+<DL>
+<DD>KAS: Sets whether or not the user can change their password
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>setting</CODE> - whether or not the user can change their password</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setReusePassword(boolean)"><!-- --></A><H3>
+setReusePassword</H3>
+<PRE>
+public void <B>setReusePassword</B>(boolean setting)</PRE>
+<DL>
+<DD>KAS: Sets whether or not the user can reuse their password
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>setting</CODE> - whether or not the user can reuse their password</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setUserExpiration(java.util.GregorianCalendar)"><!-- --></A><H3>
+setUserExpiration</H3>
+<PRE>
+public void <B>setUserExpiration</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/util/GregorianCalendar.html">GregorianCalendar</A> expirationDate)</PRE>
+<DL>
+<DD>KAS: Sets the date and time the user expires.
+ A <code>null</code> value indicates the user never exipres.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>expirationDate</CODE> - the date and time the user expires</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setMaxTicketLifetime(int)"><!-- --></A><H3>
+setMaxTicketLifetime</H3>
+<PRE>
+public void <B>setMaxTicketLifetime</B>(int seconds)</PRE>
+<DL>
+<DD>KAS: Sets the maximum lifetime of a ticket issued to this user
+ (in seconds).
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seconds</CODE> - the maximum lifetime of a ticket issued to this user (in seconds).</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setDaysToPasswordExpire(int)"><!-- --></A><H3>
+setDaysToPasswordExpire</H3>
+<PRE>
+public void <B>setDaysToPasswordExpire</B>(int days)</PRE>
+<DL>
+<DD>KAS: Sets the number of days a password is valid before it expires.
+ A value of 0 indicates passwords never expire.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>days</CODE> - the number of days for which a password is valid</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setFailLoginCount(int)"><!-- --></A><H3>
+setFailLoginCount</H3>
+<PRE>
+public void <B>setFailLoginCount</B>(int logins)</PRE>
+<DL>
+<DD>KAS: Sets the number of failed login attempts this user is allowed before
+ being locked out. A value of 0 indicates there is no limit.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>logins</CODE> - the number of failed login attempts a user is allowed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setLockTime(int)"><!-- --></A><H3>
+setLockTime</H3>
+<PRE>
+public void <B>setLockTime</B>(int seconds)</PRE>
+<DL>
+<DD>KAS: Sets the amount of time (in seconds) a user is locked out when it
+ exceeds the maximum number of allowable failed login attempts.
+ A value of 0 indicates an infinite lockout time. Any nonzero value gets
+ rounded up to the next highest multiple of 8.5 minutes, and any value over
+ 36 hours gets rounded down to 36 hours.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>seconds</CODE> - the number of failed login attempts a user is allowed</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPassword(java.lang.String)"><!-- --></A><H3>
+setPassword</H3>
+<PRE>
+public void <B>setPassword</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newPassword)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Sets the password of this user to something new. Sets the key version
+ to 0 automatically.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>newPassword</CODE> - the new password for this user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInfo()"><!-- --></A><H3>
+getInfo</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getInfo</B>()</PRE>
+<DL>
+<DD>Returns a <code>String</code> representation of this <code>User</code>.
+ Contains the information fields and groups.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> representation of the <code>User</code></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInfoGroups()"><!-- --></A><H3>
+getInfoGroups</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getInfoGroups</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns a <code>String</code> containing the <code>String</code>
+ representations of all the groups to which this user belongs.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> representation of the groups belonged to
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE><DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Group.html#toString()"><CODE>Group.toString()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getInfoGroupsOwned()"><!-- --></A><H3>
+getInfoGroupsOwned</H3>
+<PRE>
+protected <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getInfoGroupsOwned</B>()
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns a <code>String</code> containing the <code>String</code>
+ representations of all the groups that this user owns.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>a <code>String</code> representation of the groups owned
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE><DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Group.html#toString()"><CODE>Group.toString()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(org.openafs.jafs.User)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(<A HREF="../../../org/openafs/jafs/User.html">User</A> user)</PRE>
+<DL>
+<DD>Compares two User objects respective to their names and does not
+ factor any other attribute. Alphabetic case is significant in
+ comparing names.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>user</CODE> - The User object to be compared to this User instance
+<DT><B>Returns:</B><DD>Zero if the argument is equal to this User's name, a
+ value less than zero if this User's name is
+ lexicographically less than the argument, or a value greater
+ than zero if this User's name is lexicographically
+ greater than the argument</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="compareTo(java.lang.Object)"><!-- --></A><H3>
+compareTo</H3>
+<PRE>
+public int <B>compareTo</B>(<A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A> obj)</PRE>
+<DL>
+<DD>Comparable interface method.
+<P>
+<DD><DL>
+<DT><B>Specified by:</B><DD><CODE>compareTo</CODE> in interface <CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Comparable.html">Comparable</A></CODE></DL>
+</DD>
+<DD><DL>
+<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#compareTo(org.openafs.jafs.User)"><CODE>compareTo(User)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="equals(org.openafs.jafs.User)"><!-- --></A><H3>
+equals</H3>
+<PRE>
+public boolean <B>equals</B>(<A HREF="../../../org/openafs/jafs/User.html">User</A> otherUser)</PRE>
+<DL>
+<DD>Tests whether two <code>User</code> objects are equal, based on their
+ names.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>otherUser</CODE> - the user to test
+<DT><B>Returns:</B><DD>whether the specifed user is the same as this user</DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="toString()"><!-- --></A><H3>
+toString</H3>
+<PRE>
+public <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>toString</B>()</PRE>
+<DL>
+<DD>Returns the name of this <CODE>User</CODE>
+<P>
+<DD><DL>
+<DT><B>Overrides:</B><DD><CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html#toString()">toString</A></CODE> in class <CODE><A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/Object.html">Object</A></CODE></DL>
+</DD>
+<DD><DL>
+
+<DT><B>Returns:</B><DD>the name of this <CODE>User</CODE></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="create(int, java.lang.String, java.lang.String, int)"><!-- --></A><H3>
+create</H3>
+<PRE>
+protected static void <B>create</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> password,
+ int uid)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Creates the kas and pts entries for a new user. Pass in 0 for the uid
+ if pts is to automatically assign the user id.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>userName</CODE> - the name of the user to create<DD><CODE>password</CODE> - the password for the new user<DD><CODE>uid</CODE> - the user id to assign to the user (0 to have one
+ automatically assigned)
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="delete(int, java.lang.String)"><!-- --></A><H3>
+delete</H3>
+<PRE>
+protected static void <B>delete</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Deletes the pts and kas entry for a user. Deletes this user from the
+ membership list of the groups to which it belonged, but does not delete
+ the groups owned by this user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="unlock(int, java.lang.String)"><!-- --></A><H3>
+unlock</H3>
+<PRE>
+protected static void <B>unlock</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Unlocks a user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserInfo(int, java.lang.String, org.openafs.jafs.User)"><!-- --></A><H3>
+getUserInfo</H3>
+<PRE>
+protected static void <B>getUserInfo</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/User.html">User</A> user)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Fills in the information fields of the provided <code>User</code>.
+ Fills in values based on the current pts and kas information of the user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>name</CODE> - the name of the user for which to get the information<DD><CODE>user</CODE> - the <code>User</code> object in which to fill in the
+ information
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A>,
+<A HREF="../../../org/openafs/jafs/User.html"><CODE>User</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setUserInfo(int, java.lang.String, org.openafs.jafs.User)"><!-- --></A><H3>
+setUserInfo</H3>
+<PRE>
+protected static void <B>setUserInfo</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name,
+ <A HREF="../../../org/openafs/jafs/User.html">User</A> theUser)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Sets the information values of this AFS user to be the parameter values.
+ Sets both kas and pts fields.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>name</CODE> - the name of the user for which to set the information<DD><CODE>theUser</CODE> - the <code>User</code> object containing the desired
+ information
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="rename(int, java.lang.String, java.lang.String)"><!-- --></A><H3>
+rename</H3>
+<PRE>
+protected static void <B>rename</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> oldName,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newName)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Renames the given user. Does not update the info fields of the kas entry
+ -- the calling code is responsible for that.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>oldName</CODE> - the name of the user to rename<DD><CODE>newName</CODE> - the new name for the user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="setPassword(int, java.lang.String, java.lang.String)"><!-- --></A><H3>
+setPassword</H3>
+<PRE>
+protected static void <B>setPassword</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> userName,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> newPassword)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Sets the password of the given user. Sets the key version to 0.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>userName</CODE> - the name of the user for which to set the password<DD><CODE>newPassword</CODE> - the new password for the user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserGroupsBegin(int, java.lang.String)"><!-- --></A><H3>
+getUserGroupsBegin</H3>
+<PRE>
+protected static int <B>getUserGroupsBegin</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Begin the process of getting the groups to which the user belongs.
+ Returns an iteration ID to be used by subsequent calls to
+ <code>getUserGroupsNext</code> and <code>getUserGroupsDone</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>name</CODE> - the name of the user for which to get the groups
+<DT><B>Returns:</B><DD>an iteration ID
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserGroupsNextString(int)"><!-- --></A><H3>
+getUserGroupsNextString</H3>
+<PRE>
+protected static <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getUserGroupsNextString</B>(int iterationId)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns the next group to which the user belongs. Returns
+ <code>null</code> if there are no more groups.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>iterationId</CODE> - the iteration ID of this iteration
+<DT><B>Returns:</B><DD>the name of the next group
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsBegin(int, java.lang.String)"><CODE>getUserGroupsBegin(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserGroupsNext(int, int, org.openafs.jafs.Group)"><!-- --></A><H3>
+getUserGroupsNext</H3>
+<PRE>
+protected static int <B>getUserGroupsNext</B>(int cellHandle,
+ int iterationId,
+ <A HREF="../../../org/openafs/jafs/Group.html">Group</A> theGroup)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Fills the next group object of which the user belongs. Returns 0 if there
+ are no more groups, != 0 otherwise.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the users belong<DD><CODE>iterationId</CODE> - the iteration ID of this iteration<DD><CODE>theGroup</CODE> - a Group object to be populated with the values of the
+ next group
+<DT><B>Returns:</B><DD>0 if there are no more users, != 0 otherwise
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A>,
+<A HREF="../../../org/openafs/jafs/User.html#getUserGroupsBegin(int, java.lang.String)"><CODE>getUserGroupsBegin(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getUserGroupsDone(int)"><!-- --></A><H3>
+getUserGroupsDone</H3>
+<PRE>
+protected static void <B>getUserGroupsDone</B>(int iterationId)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Signals that the iteration is complete and will not be accessed anymore.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>iterationId</CODE> - the iteration ID of this iteration
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsBegin(int, java.lang.String)"><CODE>getUserGroupsBegin(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedCount(int, java.lang.String)"><!-- --></A><H3>
+getGroupsOwnedCount</H3>
+<PRE>
+protected static int <B>getGroupsOwnedCount</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns the total number of groups owned by the user.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>name</CODE> - the name of the user for which to get the groups
+<DT><B>Returns:</B><DD>total number of groups owned by the user
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedBegin(int, java.lang.String)"><!-- --></A><H3>
+getGroupsOwnedBegin</H3>
+<PRE>
+protected static int <B>getGroupsOwnedBegin</B>(int cellHandle,
+ <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> name)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Begin the process of getting the groups that a user or group owns.
+ Returns an iteration ID to be used by subsequent calls to
+ <code>getGroupsOwnedNext</code> and <code>getGroupsOwnedDone</code>.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the user belongs<DD><CODE>name</CODE> - the name of the user or group for which to get the groups
+<DT><B>Returns:</B><DD>an iteration ID
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedNextString(int)"><!-- --></A><H3>
+getGroupsOwnedNextString</H3>
+<PRE>
+protected static <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A> <B>getGroupsOwnedNextString</B>(int iterationId)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Returns the next group the user or group owns. Returns <code>null</code>
+ if there are no more groups.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>iterationId</CODE> - the iteration ID of this iteration
+<DT><B>Returns:</B><DD>the name of the next group
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedBegin(int, java.lang.String)"><CODE>getGroupsOwnedBegin(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedNext(int, int, org.openafs.jafs.Group)"><!-- --></A><H3>
+getGroupsOwnedNext</H3>
+<PRE>
+protected static int <B>getGroupsOwnedNext</B>(int cellHandle,
+ int iterationId,
+ <A HREF="../../../org/openafs/jafs/Group.html">Group</A> theGroup)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Fills the next group object that the user or group owns. Returns 0 if
+ there are no more groups, != 0 otherwise.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>cellHandle</CODE> - the handle of the cell to which the users belong<DD><CODE>iterationId</CODE> - the iteration ID of this iteration<DD><CODE>theGroup</CODE> - a Group object to be populated with the values of the
+ next group
+<DT><B>Returns:</B><DD>0 if there are no more users, != 0 otherwise
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/Cell.html#getCellHandle()"><CODE>Cell.getCellHandle()</CODE></A>,
+<A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedBegin(int, java.lang.String)"><CODE>getGroupsOwnedBegin(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="getGroupsOwnedDone(int)"><!-- --></A><H3>
+getGroupsOwnedDone</H3>
+<PRE>
+protected static void <B>getGroupsOwnedDone</B>(int iterationId)
+ throws <A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></PRE>
+<DL>
+<DD>Signals that the iteration is complete and will not be accessed anymore.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+<DT><B>Parameters:</B><DD><CODE>iterationId</CODE> - the iteration ID of this iteration
+<DT><B>Throws:</B>
+<DD><CODE><A HREF="../../../org/openafs/jafs/AFSException.html">AFSException</A></CODE> - If an error occurs in the native code<DT><B>See Also:</B><DD><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedBegin(int, java.lang.String)"><CODE>getGroupsOwnedBegin(int, java.lang.String)</CODE></A></DL>
+</DD>
+</DL>
+<HR>
+
+<A NAME="reclaimUserMemory()"><!-- --></A><H3>
+reclaimUserMemory</H3>
+<PRE>
+protected static void <B>reclaimUserMemory</B>()</PRE>
+<DL>
+<DD>Reclaims all memory being saved by the user portion of the native library.
+ This method should be called when no more <code>Users</code> are expected
+ to be used.
+<P>
+<DD><DL>
+</DL>
+</DD>
+<DD><DL>
+</DL>
+</DD>
+</DL>
+<!-- ========= END OF CLASS DATA ========= -->
+<HR>
+
+<!-- ========== START OF NAVBAR ========== -->
+<A NAME="navbar_bottom"><!-- --></A>
+<TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0">
+<TR>
+<TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1">
+<A NAME="navbar_bottom_firstrow"><!-- --></A>
+<TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3">
+ <TR ALIGN="center" VALIGN="top">
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD>
+ <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/User.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD>
+ <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD>
+ </TR>
+</TABLE>
+</TD>
+<TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM>
+<B>JAFS API v2</B></EM>
+</TD>
+</TR>
+
+<TR>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../org/openafs/jafs/Token.html"><B>PREV CLASS</B></A>
+ <A HREF="../../../org/openafs/jafs/VersionInfo.html"><B>NEXT CLASS</B></A></FONT></TD>
+<TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2">
+ <A HREF="../../../index.html" TARGET="_top"><B>FRAMES</B></A>
+ <A HREF="User.html" TARGET="_top"><B>NO FRAMES</B></A>
+
+<SCRIPT>
+ <!--
+ if(window==top) {
+ document.writeln('<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>');
+ }
+ //-->
+</SCRIPT>
+<NOSCRIPT>
+<A HREF="../../../allclasses-noframe.html" TARGET=""><B>All Classes</B></A>
+</NOSCRIPT>
+</FONT></TD>
+</TR>
+<TR>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+ SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+
+<HR>
+
+</BODY>
+</HTML>