Project

General

Profile

1
package eu.dnetlib.openaire.usermanagement;
2

    
3
import eu.dnetlib.openaire.user.utils.InputValidator;
4
import eu.dnetlib.openaire.user.utils.LDAPActions;
5
import eu.dnetlib.openaire.user.utils.VerificationActions;
6
import eu.dnetlib.openaire.usermanagement.utils.UrlConstructor;
7
import org.apache.log4j.Logger;
8
import org.springframework.beans.factory.annotation.Autowired;
9
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
10

    
11
import javax.servlet.ServletConfig;
12
import javax.servlet.ServletException;
13
import javax.servlet.http.HttpServlet;
14
import javax.servlet.http.HttpServletRequest;
15
import javax.servlet.http.HttpServletResponse;
16
import javax.servlet.http.HttpSession;
17
import java.io.IOException;
18
import java.io.PrintWriter;
19

    
20
/**
21
 * Created by sofia on 21/5/2018.
22
 */
23
public class VerifyToDeleteServlet extends HttpServlet {
24

    
25
    public void init(ServletConfig config) throws ServletException {
26
        super.init(config);
27
        SpringBeanAutowiringSupport.processInjectionBasedOnServletContext(this,
28
                config.getServletContext());
29
    }
30

    
31
    @Autowired
32
    private VerificationActions verificationActions;
33

    
34
    @Autowired
35
    private LDAPActions ldapActions;
36

    
37
    private Logger logger = Logger.getLogger(VerificationCodeServlet.class);
38

    
39
    @Override
40
    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws IOException {
41
        response.setContentType("text/html");
42
        PrintWriter printWriter = response.getWriter();
43

    
44
        String formUsername = request.getParameter("username").trim();
45
        String formVerificationCode = request.getParameter("verification_code").trim();
46

    
47
        try {
48
            if (InputValidator.isFilled(formUsername) && InputValidator.isFilled(formVerificationCode)) {
49
                if (verificationActions.verificationEntryExists(formUsername) && verificationActions.verificationCodeIsCorrect(formUsername, formVerificationCode)) {
50
                    if (!verificationActions.verificationCodeHasExpired(formUsername)) {
51

    
52
                        Boolean isRegistered = false;
53
                        Boolean isZombie = false;
54

    
55
                        if (ldapActions.usernameExists(formUsername)) {
56
                            logger.info("User " + formUsername + " is activated user!");
57
                            isRegistered = true;
58
                        } else if (ldapActions.isZombieUsersUsername(formUsername)) {
59
                            logger.info("User " + formUsername + " is zombie user!");
60
                            isZombie = true;
61
                        }
62

    
63
                        if (!isRegistered && !isZombie) {
64
                            request.getSession().setAttribute("message", "Username or verification code are not valid.");
65
                            response.sendRedirect("./verifyToDelete.jsp");
66
                        } else {
67
                            if (isRegistered) {
68
                                ldapActions.deleteUser(formUsername);
69
                            } else if (isZombie) {
70
                                ldapActions.deleteZombieUser(formUsername);
71
                            }
72
                            verificationActions.deleteVerificationEntry(formUsername);
73
                            response.sendRedirect(UrlConstructor.getRedirectUrl(request,"successDeleteAccount.jsp"));
74

    
75
                        }
76
                    } else {
77
                        logger.info("Verification code has expired!");
78
                        response.sendRedirect(UrlConstructor.getRedirectUrl(request, "expiredVerificationCode.jsp"));
79
                    }
80
                } else {
81
                    logger.info("Username or verification code are not valid!");
82
                    request.getSession().setAttribute("message", "Username or verification code are not valid.");
83
                    response.sendRedirect("./verifyToDelete.jsp");
84
                }
85
            } else {
86
                if (!InputValidator.isFilled(formUsername)) {
87
                    logger.info("No username");
88
                    request.getSession().setAttribute("msg_username_error", "Please enter your username.");
89
                }
90
                if (!InputValidator.isFilled(formVerificationCode)) {
91
                    logger.info("No verification code");
92
                    request.getSession().setAttribute("msg_verification_code_error", "Please enter your verification code.");
93
                }
94
                response.sendRedirect("./verifyToDelete.jsp");
95
            }
96
        } catch (Exception ldape) {
97
            logger.error("Could not remove user with username " + formUsername, ldape);
98
            response.sendRedirect(UrlConstructor.getRedirectUrl(request, "error.jsp"));
99
        }
100

    
101
        printWriter.close();
102
    }
103
}
(18-18/18)