Package: io.vertx.groovy.ext.auth.common

## [Groovy] Class User

- io.vertx.groovy.ext.auth.common.User

- Represents an authenticate User and contains operations to authorise the user, using a role/permission based model.

  Please consult the documentation for a detailed explanation.

- - ### Properties Summary

    Properties
    Type | Name and description
    --- | ---
    `User` | `delegate`

  - ### Constructor Summary

    Constructors
    Constructor and description
    `User (User delegate)`

  - ### Methods Summary

    Methods
    Type | Name and description
    --- | ---
    `User` | `clearCache()` The User object will cache any roles or permissions that it knows it has to avoid hitting the underlying auth provider each time.
    `Object` | `getDelegate()`
    `User` | `hasPermission(String permission, Handler<AsyncResult<Boolean>> resultHandler)` Does the user have the specified permission?
    `Map<String, Object>` | `principal()` Get the underlying principal for the User.
    `void` | `setAuthProvider(AuthProvider authProvider)` Set the auth provider for the User.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `wait, wait, wait, equals, toString, hashCode, getClass, notify, notifyAll`

- - ### Property Detail

    - #### final User delegate

  - ### Constructor Detail

    - #### User(User delegate)

  - ### Method Detail

    - #### User clearCache()

      The User object will cache any roles or permissions that it knows it has to avoid hitting the underlying auth provider each time. Use this method if you want to clear this cache.

      Returns:
        the User to enable fluent use

    - #### Object getDelegate()

    - #### User hasPermission(String permission, Handler<AsyncResult<Boolean>> resultHandler)

      Does the user have the specified permission?

      Returns:
        the User to enable fluent use
      Parameters:
        `permission` - the permission
        `resultHandler` - handler that will be called with an io.vertx.core.AsyncResult containing the value `true` if the they have the permission or `false` otherwise.

    - #### Map<String, Object> principal()

      Get the underlying principal for the User. What this actually returns depends on the implementation. For a simple user/password based auth, it's likely to contain a JSON object with the following structure:

             {
               "username", "tim"
             }

      Returns:

    - #### void setAuthProvider(AuthProvider authProvider)

      Set the auth provider for the User. This is typically used to reattach a detached User with an AuthProvider, e.g. after it has been deserialized.

      Parameters:
        `authProvider` - the AuthProvider - this must be the same type of AuthProvider that originally created the User