Package com.codeforces.graygoose.web.page

Source Code of com.codeforces.graygoose.web.page.EnterPage

package com.codeforces.graygoose.web.page;

import com.codeforces.graygoose.dao.UserDao;
import com.codeforces.graygoose.misc.Noty;
import com.codeforces.graygoose.model.User;
import com.google.inject.Inject;
import org.nocturne.annotation.Action;
import org.nocturne.annotation.Parameter;
import org.nocturne.annotation.Validate;
import org.nocturne.link.Link;
import org.nocturne.validation.EmailValidator;
import org.nocturne.validation.RequiredValidator;
import org.nocturne.validation.ValidationException;
import org.nocturne.validation.Validator;

@Link("enter")
public class EnterPage extends WebPage {
    @Inject
    private UserDao userDao;

    @Parameter(stripMode = Parameter.StripMode.NONE)
    private String email;

    @Parameter(stripMode = Parameter.StripMode.NONE)
    private String password;

    @Override
    public void initializeAction() {
        super.initializeAction();

        if (getUser() != null) {
            abortWithRedirect(DashboardPage.class);
        }
    }

    @Validate("enter")
    public boolean validateEnter() {
        addValidator("email", new EmailValidator());

        addValidator("password", new RequiredValidator());
        addValidator("password", new Validator() {
            @Override
            public void run(String value) throws ValidationException {
                if (userDao.findByEmailAndPassword(email, password) == null) {
                    throw new ValidationException($("Invalid email or password"));
                }
            }
        });

        return runValidation();
    }

    @Action("enter")
    public void onEnter() {
        User user = userDao.findByEmailAndPassword(email, password);
        putSession("graygoose.user", user);
        addMessage("Welcome, " + user.getName() + ".", Noty.Type.SUCCESS);
        abortWithRedirect(DashboardPage.class);
    }

    @Override
    public void action() {
        // No operations.
    }

    @Override
    protected String getTitle() {
        return $("Enter");
    }

    @Override
    public boolean hasAnonymousAccess() {
        return true;
    }
}
TOP

Related Classes of com.codeforces.graygoose.web.page.EnterPage

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.