package org.basex.core; /** * This class contains information on a single user. * * @author BaseX Team 2005-12, BSD License * @author Christian Gruen */ public final class User { /** No permissions. */ public static final byte NONE = 0; /** Read permission (local+global). */ public static final byte READ = 1; /** Write permission (local+global). */ public static final byte WRITE = 2; /** Create permission (global). */ public static final byte CREATE = 4; /** Admin permission (global). */ public static final byte ADMIN = 8; /** User name. */ public final String name; /** Password. */ public byte[] password; /** Permission. */ public int perm; /** * Constructor. * @param n user name * @param p password * @param r rights */ User(final String n, final byte[] p, final int r) { name = n; password = p; perm = r; } /** * Tests if the specified permission is set. * @param flag flag to be checked * @return result of check */ public boolean perm(final int flag) { return perm >= flag; } /** * Returns a local copy of this user. * @return user copy */ public User copy() { return new User(name, password, Math.min(perm, WRITE)); } }