Empty archive directory into keep or delete
[openafs-wiki.git] / delete / JavaAdminAPI / User.html
diff --git a/delete/JavaAdminAPI/User.html b/delete/JavaAdminAPI/User.html
new file mode 100644 (file)
index 0000000..cb2ad25
--- /dev/null
@@ -0,0 +1,4174 @@
+<!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>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/User.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</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">
+&nbsp;<A HREF="../../../org/openafs/jafs/Token.html"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<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>  &nbsp;
+&nbsp;<A HREF="User.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;
+<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:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#ADMIN">ADMIN</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User has administrative kas privileges</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#adminSetting">adminSetting</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cachedInfo">cachedInfo</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cellHandle">cellHandle</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#CHANGE_PASSWORD">CHANGE_PASSWORD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User can change their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#cpwSetting">cpwSetting</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#creatorUID">creatorUID</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#daysToPasswordExpire">daysToPasswordExpire</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#ENCRYPT">ENCRYPT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#encSetting">encSetting</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#failLoginCount">failLoginCount</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#GRANT_TICKETS">GRANT_TICKETS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupCreationQuota">groupCreationQuota</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#groupMembershipCount">groupMembershipCount</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#kas">kas</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#keyCheckSum">keyCheckSum</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#keyVersion">keyVersion</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastChangePasswordTime">lastChangePasswordTime</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lastModTime">lastModTime</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#listGroupsOwned">listGroupsOwned</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#listMembership">listMembership</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#listStatus">listStatus</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lockedUntil">lockedUntil</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#lockTime">lockTime</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#maxTicketLifetime">maxTicketLifetime</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#nameUID">nameUID</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_ADMIN">NO_ADMIN</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_CHANGE_PASSWORD">NO_CHANGE_PASSWORD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User cannot change their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_ENCRYPT">NO_ENCRYPT</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_GRANT_TICKETS">NO_GRANT_TICKETS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#NO_REUSE_PASSWORD">NO_REUSE_PASSWORD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User cannot reuse their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#ownerUID">ownerUID</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#pts">pts</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#REUSE_PASSWORD">REUSE_PASSWORD</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;User can reuse their password</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#rpwSetting">rpwSetting</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#tgsSetting">tgsSetting</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#USER_ANYUSER_ACCESS">USER_ANYUSER_ACCESS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Any user has access</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>static&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#USER_OWNER_ACCESS">USER_OWNER_ACCESS</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#userExpiration">userExpiration</A></B></CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>protected &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</TD>
+</TR>
+</TABLE>
+&nbsp;<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>
+&nbsp;
+<!-- ======== 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>&nbsp;cell)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;</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>&nbsp;name,
+     <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A>&nbsp;cell)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;</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>&nbsp;name,
+     <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A>&nbsp;cell,
+     boolean&nbsp;preloadAllMembers)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>
+&nbsp;
+<!-- ========== 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>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#canChangePassword()">canChangePassword</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#canEncrypt()">canEncrypt</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#canReusePassword()">canReusePassword</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;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>&nbsp;obj)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Comparable interface method.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;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>&nbsp;user)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;userName,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;password,
+       int&nbsp;uid)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;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>&nbsp;password)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;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>&nbsp;password,
+       int&nbsp;uid)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#delete()">delete</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#delete(int, java.lang.String)">delete</A></B>(int&nbsp;cellHandle,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;userName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;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>&nbsp;otherUser)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#flushInfo()">flushInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getDaysToPasswordExpire()">getDaysToPasswordExpire</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getFailLoginCount()">getFailLoginCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupCreationQuota()">getGroupCreationQuota</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupMembershipCount()">getGroupMembershipCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedBegin(int, java.lang.String)">getGroupsOwnedBegin</A></B>(int&nbsp;cellHandle,
+                    <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedCount()">getGroupsOwnedCount</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedCount(int, java.lang.String)">getGroupsOwnedCount</A></B>(int&nbsp;cellHandle,
+                    <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getGroupsOwnedDone(int)">getGroupsOwnedDone</A></B>(int&nbsp;iterationId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+                   int&nbsp;iterationId,
+                   <A HREF="../../../org/openafs/jafs/Group.html">Group</A>&nbsp;theGroup)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;<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&nbsp;iterationId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;long</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getKeyCheckSum()">getKeyCheckSum</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getKeyVersion()">getKeyVersion</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastChangePasswordTime()">getLastChangePasswordTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLastModTime()">getLastModTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getListGroupsOwned()">getListGroupsOwned</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getListMembership()">getListMembership</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getListStatus()">getListStatus</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLockedUntil()">getLockedUntil</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getLockTime()">getLockTime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getMaxTicketLifetime()">getMaxTicketLifetime</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Returns the name of this user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;short</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getType()">getType</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUID()">getUID</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserExpiration()">getUserExpiration</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;int</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsBegin(int, java.lang.String)">getUserGroupsBegin</A></B>(int&nbsp;cellHandle,
+                   <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#getUserGroupsDone(int)">getUserGroupsDone</A></B>(int&nbsp;iterationId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+                  int&nbsp;iterationId,
+                  <A HREF="../../../org/openafs/jafs/Group.html">Group</A>&nbsp;theGroup)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;<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&nbsp;iterationId)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+            <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name,
+            <A HREF="../../../org/openafs/jafs/User.html">User</A>&nbsp;user)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#isAdmin()">isAdmin</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#isKAS()">isKAS</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#isPTS()">isPTS</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#reclaimUserMemory()">reclaimUserMemory</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refresh()">refresh</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refresh(boolean)">refresh</A></B>(boolean&nbsp;all)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroupNames()">refreshGroupNames</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroups()">refreshGroups</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroupsOwned()">refreshGroupsOwned</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshGroupsOwnedNames()">refreshGroupsOwnedNames</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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 &nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#refreshInfo()">refreshInfo</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;oldName,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;newName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Renames the given user.  </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;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>&nbsp;newName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Change the name of this user.  </TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setAdmin(boolean)">setAdmin</A></B>(boolean&nbsp;setting)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setChangePassword(boolean)">setChangePassword</A></B>(boolean&nbsp;setting)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setDaysToPasswordExpire(int)">setDaysToPasswordExpire</A></B>(int&nbsp;days)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setEncrypt(boolean)">setEncrypt</A></B>(boolean&nbsp;setting)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setFailLoginCount(int)">setFailLoginCount</A></B>(int&nbsp;logins)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setGrantTickets(boolean)">setGrantTickets</A></B>(boolean&nbsp;setting)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setGroupCreationQuota(int)">setGroupCreationQuota</A></B>(int&nbsp;quota)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setListGroupsOwned(int)">setListGroupsOwned</A></B>(int&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setListMembership(int)">setListMembership</A></B>(int&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setListStatus(int)">setListStatus</A></B>(int&nbsp;value)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setLockTime(int)">setLockTime</A></B>(int&nbsp;seconds)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setMaxTicketLifetime(int)">setMaxTicketLifetime</A></B>(int&nbsp;seconds)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+            <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;userName,
+            <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;newPassword)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;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>&nbsp;newPassword)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#setReusePassword(boolean)">setReusePassword</A></B>(boolean&nbsp;setting)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;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>&nbsp;expirationDate)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;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&nbsp;cellHandle,
+            <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name,
+            <A HREF="../../../org/openafs/jafs/User.html">User</A>&nbsp;theUser)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;<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>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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>&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#unlock()">unlock</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;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&nbsp;void</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#unlock(int, java.lang.String)">unlock</A></B>(int&nbsp;cellHandle,
+       <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;userName)</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;Unlocks a user.</TD>
+</TR>
+<TR BGCOLOR="white" CLASS="TableRowColor">
+<TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1">
+<CODE>&nbsp;boolean</CODE></FONT></TD>
+<TD><CODE><B><A HREF="../../../org/openafs/jafs/User.html#willGrantTickets()">willGrantTickets</A></B>()</CODE>
+
+<BR>
+&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;KAS: Returns whether or not TGS will issue tickets for this user</TD>
+</TR>
+</TABLE>
+&nbsp;<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>
+&nbsp;
+<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>&nbsp;name,
+            <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A>&nbsp;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>&nbsp;name,
+            <A HREF="../../../org/openafs/jafs/Cell.html">Cell</A>&nbsp;cell,
+            boolean&nbsp;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>&nbsp;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>&nbsp;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>&nbsp;password,
+                   int&nbsp;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>&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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>&nbsp;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&nbsp;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&nbsp;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&nbsp;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&nbsp;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>&nbsp;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>&nbsp;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>&nbsp;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>&nbsp;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&nbsp;cellHandle,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;userName,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;password,
+                             int&nbsp;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&nbsp;cellHandle,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;cellHandle,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;cellHandle,
+                                  <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name,
+                                  <A HREF="../../../org/openafs/jafs/User.html">User</A>&nbsp;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&nbsp;cellHandle,
+                                  <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;name,
+                                  <A HREF="../../../org/openafs/jafs/User.html">User</A>&nbsp;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&nbsp;cellHandle,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;oldName,
+                             <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;cellHandle,
+                                  <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;userName,
+                                  <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;cellHandle,
+                                        <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;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&nbsp;cellHandle,
+                                       int&nbsp;iterationId,
+                                       <A HREF="../../../org/openafs/jafs/Group.html">Group</A>&nbsp;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&nbsp;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&nbsp;cellHandle,
+                                         <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;cellHandle,
+                                         <A HREF="http://java.sun.com/j2se/1.4/docs/api/java/lang/String.html">String</A>&nbsp;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&nbsp;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&nbsp;cellHandle,
+                                        int&nbsp;iterationId,
+                                        <A HREF="../../../org/openafs/jafs/Group.html">Group</A>&nbsp;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&nbsp;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>&nbsp;</TD>
+  <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> &nbsp;<FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="class-use/User.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A>&nbsp;</TD>
+  <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1">    <A HREF="../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A>&nbsp;</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">
+&nbsp;<A HREF="../../../org/openafs/jafs/Token.html"><B>PREV CLASS</B></A>&nbsp;
+&nbsp;<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>  &nbsp;
+&nbsp;<A HREF="User.html" TARGET="_top"><B>NO FRAMES</B></A>  &nbsp;
+&nbsp;
+<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:&nbsp;NESTED&nbsp;|&nbsp;<A HREF="#field_summary">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_summary">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_summary">METHOD</A></FONT></TD>
+<TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">
+DETAIL:&nbsp;<A HREF="#field_detail">FIELD</A>&nbsp;|&nbsp;<A HREF="#constructor_detail">CONSTR</A>&nbsp;|&nbsp;<A HREF="#method_detail">METHOD</A></FONT></TD>
+</TR>
+</TABLE>
+<!-- =========== END OF NAVBAR =========== -->
+
+<HR>
+
+</BODY>
+</HTML>