package edu.harvard.iq.dataverse.authorization.users;

import edu.harvard.iq.dataverse.authorization.RoleAssignee;
import java.io.Serializable;

/**
 * A user of the dataverse system. Intuitively a single real person in real life, but
 * some corner cases exist (e.g. {@link GuestUser}, who stands for many people).
 */
public interface User extends RoleAssignee, Serializable {

    public boolean isAuthenticated();

    // TODO remove this, should be handles in a more generic fashion,
    // e.g. getUserProvider and get the provider's URL from there. This
    // would allow Shib-based editing as well.
    public boolean isBuiltInUser();
    
    public boolean isSuperuser();

}

@@ -217,16 +217,19 @@
  in real
+%0A *
  life, b
@@ -230,19 +230,16 @@
 ife, but
-%0A *
  some co
@@ -294,16 +294,19 @@
 ands for
+%0A *
  many pe
@@ -309,16 +309,65 @@
 y people
+, or %7B@link PrivateUrlUser%7D, another virtual user
 ).%0A */%0Ap
@@ -689,20 +689,16 @@
 User();%0A
-    
 %0A    pub

add javadoc that PrivateUrlUser implements User too #1012