Subversion Repositories SmartDukaan

Rev

Rev 24478 | Rev 25192 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
24383 amit.gupta 1
package com.spice.profitmandi.web.controller;
2
 
3
import java.time.LocalDateTime;
4
import java.util.List;
5
 
6
import javax.servlet.http.HttpServletRequest;
7
 
8
import org.apache.logging.log4j.LogManager;
9
import org.apache.logging.log4j.Logger;
10
import org.springframework.beans.factory.annotation.Autowired;
11
import org.springframework.beans.factory.annotation.Qualifier;
12
import org.springframework.stereotype.Controller;
13
import org.springframework.ui.Model;
14
import org.springframework.web.bind.annotation.GetMapping;
15
import org.springframework.web.bind.annotation.PostMapping;
16
import org.springframework.web.bind.annotation.RequestParam;
17
 
18
import com.spice.profitmandi.common.exception.ProfitMandiBusinessException;
19
import com.spice.profitmandi.common.model.ProfitMandiConstants;
20
import com.spice.profitmandi.dao.entity.auth.AuthUser;
21
import com.spice.profitmandi.dao.entity.dtr.Role;
22
import com.spice.profitmandi.dao.entity.dtr.User;
23
import com.spice.profitmandi.dao.entity.dtr.UserRole;
24
import com.spice.profitmandi.dao.repository.auth.AuthRepository;
25
import com.spice.profitmandi.dao.repository.dtr.RoleRepository;
26
import com.spice.profitmandi.dao.repository.dtr.UserRepository;
27
import com.spice.profitmandi.dao.repository.dtr.UserRoleRepository;
28
import com.spice.profitmandi.service.AuthService;
29
import com.spice.profitmandi.web.model.LoginDetails;
30
import com.spice.profitmandi.web.util.CookiesProcessor;
31
 
24478 amit.gupta 32
import in.shop2020.model.v1.user.UserContextService.authenticateUser_args;
33
 
24383 amit.gupta 34
@Controller
35
public class AuthUserController {
36
 
37
	private static final Logger LOGGER = LogManager.getLogger(AuthUserController.class);
38
 
39
	@Autowired
40
	private AuthService authService;
41
 
42
	@Autowired
43
	private AuthRepository authRepository;
44
 
45
	@Autowired
46
	private UserRepository userRepository;
47
 
48
	@Autowired
49
	private RoleRepository roleRepository;
50
 
51
	@Autowired
52
	private UserRoleRepository userRoleRepository;
53
 
54
	@Autowired
55
	private CookiesProcessor cookiesProcessor;
56
 
57
	@Autowired
58
	@Qualifier("userUserRepository")
59
	private com.spice.profitmandi.dao.repository.user.UserRepository userUserRepository;
60
 
61
	@GetMapping(value = "/createAuthUser")
62
	public String getcreateAuthUser(HttpServletRequest request,
63
			@RequestParam(name = "offset", defaultValue = "0") int offset,
64
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
65
			throws ProfitMandiBusinessException {
66
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
67
		long size = authRepository.selectCountAuthUser();
68
		model.addAttribute("authUsers", authUsers);
69
		model.addAttribute("start", offset + 1);
70
		model.addAttribute("size", size);
71
		if (authUsers.size() < limit) {
72
			model.addAttribute("end", offset + authUsers.size());
73
		} else {
74
			model.addAttribute("end", offset + limit);
75
		}
76
		return "create-auth-user";
77
 
78
	}
79
 
80
	@PostMapping(value = "/createAuthUser")
81
	public String createAuthUser(HttpServletRequest request,
82
			@RequestParam(name = ProfitMandiConstants.FIRST_NAME, defaultValue = "") String firstName,
83
			@RequestParam(name = ProfitMandiConstants.LAST_NAME, defaultValue = "") String lastName,
84
			@RequestParam(name = ProfitMandiConstants.EMAIL_ID, defaultValue = "") String emailId,
85
			@RequestParam(name = ProfitMandiConstants.MOBILE_NUMBER, defaultValue = "") String mobileNumber,
86
			@RequestParam(name = "offset", defaultValue = "0") int offset,
87
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model)
88
			throws ProfitMandiBusinessException {
89
		AuthUser authUser = null;
90
		User user = null;
91
		List<Role> roles = roleRepository.selectAll();
92
		try {
93
			user = userRepository.selectByEmailId(emailId);
94
			userRoleRepository.deleteByUserId(user.getId());
95
			for (Role role : roles) {
96
				UserRole userRole = new UserRole();
97
				userRole.setRoleId(role.getId());
98
				userRole.setUserId(user.getId());
99
				userRoleRepository.persist(userRole);
100
			}
101
		} catch (Exception ex) {
102
			user = new User();
103
			user.setFirstName(firstName);
104
			user.setLastName(lastName);
105
			user.setUsername(emailId);
106
			user.setEmailId(emailId);
107
			user.setPassword("");
108
			user.setMobileNumber(mobileNumber);
109
			user.setCity("Noida");
110
			user.setPinCode(201301);
111
			user.setActivated(true);
112
			user.setMobile_verified(true);
113
			user.setReferral_url("");
114
			user.setUpdateTimestamp(LocalDateTime.now());
115
			user.setStatus(0);
116
			user.setCreateTimestamp(LocalDateTime.now());
117
			userRepository.persist(user);
118
			LOGGER.info("User created successfully");
119
			for (Role role : roles) {
120
				UserRole userRole = new UserRole();
121
				userRole.setRoleId(role.getId());
122
				userRole.setUserId(user.getId());
123
				userRoleRepository.persist(userRole);
124
			}
125
		}
126
		authUser = new AuthUser();
127
		authUser.setEmailId(emailId);
128
		authUser.setFirstName(firstName);
129
		authUser.setLastName(lastName);
130
		authUser.setMobileNumber(mobileNumber);
131
		authUser.setCreatedTimestamp(LocalDateTime.now());
132
		authService.addAuthUser(authUser);
133
 
134
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
135
		long size = authRepository.selectCountAuthUser();
136
		model.addAttribute("authUsers", authUsers);
137
		model.addAttribute("start", offset + 1);
138
		model.addAttribute("size", size);
139
		if (authUsers.size() < limit) {
140
			model.addAttribute("end", offset + authUsers.size());
141
		} else {
142
			model.addAttribute("end", offset + limit);
143
		}
144
		return "create-auth-user";
145
	}
146
 
147
	@GetMapping(value = "/changePassword")
148
	public String getChangePassword(HttpServletRequest request, Model model) {
149
		return "change-auth-user-password";
150
	}
151
 
152
	@PostMapping(value = "/changePassword")
153
	public String changePassword(HttpServletRequest request,
154
			@RequestParam(name = "oldPassword", defaultValue = "") String oldPassword,
155
			@RequestParam(name = "newPassword", defaultValue = "") String newPassword, Model model)
156
			throws ProfitMandiBusinessException {
157
 
158
		LoginDetails loginDetails = cookiesProcessor.getCookiesObject(request);
159
		authService.changePassword(loginDetails.getEmailId(), oldPassword, newPassword);
160
		return "change-auth-user-password";
161
	}
162
 
163
	@GetMapping(value = "/getPaginatedAuthUser")
164
	public String getPaginatedAuthUser(HttpServletRequest request,
165
			@RequestParam(name = "offset", defaultValue = "0") int offset,
166
			@RequestParam(name = "limit", defaultValue = "10") int limit, Model model) {
167
		List<AuthUser> authUsers = authRepository.selectAll(offset, limit);
168
		model.addAttribute("authUsers", authUsers);
169
		return "auth-users-paginated";
170
	}
24478 amit.gupta 171
 
172
	@GetMapping(value="/authuser/edit")
173
	public String updateAuthUser(Model model, @RequestParam String gmailId, @RequestParam String emailId) throws Exception {
174
		AuthUser user = authRepository.selectByEmailOrMobile(emailId);
175
		user.setGmailId(gmailId);
24489 amit.gupta 176
		authRepository.persist(user);
24478 amit.gupta 177
		model.addAttribute("response", "true");
178
		return "response";
179
	}
24383 amit.gupta 180
}