Subversion Repositories SmartDukaan

Rev

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