Search in sources :

Example 1 with Input

use of com.google.gerrit.server.restapi.config.ConfirmEmail.Input in project gerrit by GerritCodeReview.

the class ConfirmEmail method apply.

@Override
public Response<?> apply(ConfigResource rsrc, Input input) throws AuthException, UnprocessableEntityException, IOException, ConfigInvalidException {
    CurrentUser user = self.get();
    if (!user.isIdentifiedUser()) {
        throw new AuthException("Authentication required");
    }
    if (input == null) {
        input = new Input();
    }
    if (input.token == null) {
        throw new UnprocessableEntityException("missing token");
    }
    try {
        EmailTokenVerifier.ParsedToken token = emailTokenVerifier.decode(input.token);
        Account.Id accId = user.getAccountId();
        if (accId.equals(token.getAccountId())) {
            accountManager.link(accId, token.toAuthRequest());
            return Response.none();
        }
        throw new UnprocessableEntityException("invalid token");
    } catch (EmailTokenVerifier.InvalidTokenException e) {
        throw new UnprocessableEntityException("invalid token", e);
    } catch (AccountException e) {
        throw new UnprocessableEntityException(e.getMessage());
    }
}
Also used : UnprocessableEntityException(com.google.gerrit.extensions.restapi.UnprocessableEntityException) Account(com.google.gerrit.entities.Account) Input(com.google.gerrit.server.restapi.config.ConfirmEmail.Input) DefaultInput(com.google.gerrit.extensions.restapi.DefaultInput) EmailTokenVerifier(com.google.gerrit.server.mail.EmailTokenVerifier) CurrentUser(com.google.gerrit.server.CurrentUser) AccountException(com.google.gerrit.server.account.AccountException) AuthException(com.google.gerrit.extensions.restapi.AuthException)

Aggregations

Account (com.google.gerrit.entities.Account)1 AuthException (com.google.gerrit.extensions.restapi.AuthException)1 DefaultInput (com.google.gerrit.extensions.restapi.DefaultInput)1 UnprocessableEntityException (com.google.gerrit.extensions.restapi.UnprocessableEntityException)1 CurrentUser (com.google.gerrit.server.CurrentUser)1 AccountException (com.google.gerrit.server.account.AccountException)1 EmailTokenVerifier (com.google.gerrit.server.mail.EmailTokenVerifier)1 Input (com.google.gerrit.server.restapi.config.ConfirmEmail.Input)1