Advertisement
Guest User

Untitled

a guest
Aug 18th, 2016
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.46 KB | None | 0 0
  1. @Entity
  2. @Table
  3. public class User {
  4.  
  5. @Id
  6. @GeneratedValue
  7. private int id;
  8.  
  9. private String userName;
  10.  
  11. private String email;
  12.  
  13. private String password;
  14.  
  15. private boolean enabled;
  16.  
  17. @ManyToMany(fetch = FetchType.EAGER)
  18. @JoinTable
  19. private List<Role> roles;
  20. /**
  21. @OneToOne
  22. private Employee employee;
  23. **/
  24. public int getId() {
  25. return id;
  26. }
  27.  
  28. public void setId(int id) {
  29. this.id = id;
  30. }
  31.  
  32. public String getUserName() {
  33. return userName;
  34. }
  35.  
  36. public void setUserName(String userName) {
  37. this.userName = userName;
  38. }
  39.  
  40. public String getEmail() {
  41. return email;
  42. }
  43.  
  44. public void setEmail(String email) {
  45. this.email = email;
  46. }
  47.  
  48. public String getPassword() {
  49. return password;
  50. }
  51.  
  52. public void setPassword(String password) {
  53. this.password = password;
  54. }
  55.  
  56. public List<Role> getRoles() {
  57. return roles;
  58. }
  59.  
  60. public void setRoles(List<Role> roles) {
  61. this.roles = roles;
  62. }
  63.  
  64. /**
  65. * @return the enabled
  66. */
  67. public boolean isEnabled() {
  68. return enabled;
  69. }
  70.  
  71. /**
  72. * @param enabled the enabled to set
  73. */
  74. public void setEnabled(boolean enabled) {
  75. this.enabled = enabled;
  76. }
  77.  
  78.  
  79.  
  80.  
  81. }
  82.  
  83. @Entity
  84. @Table
  85. public class Role {
  86. @Id
  87. @GeneratedValue
  88. private int id;
  89.  
  90. private String name;
  91.  
  92. @ManyToMany(fetch = FetchType.EAGER,mappedBy="roles", cascade = CascadeType.ALL)
  93. private List<User> users;
  94.  
  95. public int getId() {
  96. return id;
  97. }
  98.  
  99. public void setId(int id) {
  100. this.id = id;
  101. }
  102.  
  103. public String getName() {
  104. return name;
  105. }
  106.  
  107. public void setName(String name) {
  108. this.name = name;
  109. }
  110.  
  111. public List<User> getUsers() {
  112. return users;
  113. }
  114.  
  115. public void setUsers(List<User> users) {
  116. this.users = users;
  117. }
  118.  
  119.  
  120. }
  121.  
  122. @Repository
  123. public class UserDaoImpl implements UserDao{
  124.  
  125. private static final Logger logger = LoggerFactory.getLogger(UserDaoImpl.class);
  126.  
  127. @Autowired
  128. private SessionFactory sessionFactory;
  129.  
  130. @Autowired
  131. private RoleDao roleDao;
  132.  
  133. public User findById(int id) {
  134.  
  135. return (User)sessionFactory.getCurrentSession().get(User.class, id);
  136. }
  137.  
  138. @SuppressWarnings("unchecked")
  139. public List<User> findAll() {
  140. Session session = this.sessionFactory.getCurrentSession();
  141. List<User> userList = session.createQuery("from User").list();
  142. return userList;
  143. }
  144.  
  145.  
  146. public void save(User user) {
  147. Session session = this.sessionFactory.getCurrentSession();
  148. BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
  149. user.setPassword(encoder.encode(user.getPassword()));
  150. List<Role> roles = new ArrayList<Role>();
  151.  
  152. //roles.add(roleDao.findById(2));
  153. roles.add(roleDao.findByName("ROLE_USER"));
  154.  
  155. user.setRoles(roles);
  156.  
  157. session.persist(user);
  158. }
  159.  
  160.  
  161. public void update(User user) {
  162. Session session = this.sessionFactory.getCurrentSession();
  163. session.update(user);
  164. logger.info("Employee Status updated successfully, departement Details="+user);
  165. }
  166.  
  167.  
  168. public void delete(int id) {
  169. sessionFactory.getCurrentSession().delete(findById(id));
  170.  
  171. }
  172.  
  173. public User findOne(int id) {
  174.  
  175. return (User)sessionFactory.getCurrentSession().get(User.class, id);
  176. }
  177.  
  178.  
  179. public User findOneWithRole(int id) {
  180. User user = findById(id);
  181. List<Role> roles = roleDao.findByUser(id);
  182. //user.setRoles(roles);
  183. return user;
  184. }
  185.  
  186. public void saveRoles(User user) {
  187. Session session = this.sessionFactory.getCurrentSession();
  188. //List<Role> roles = new ArrayList<Role>();
  189. //user.setRoles(roles);
  190.  
  191. session.persist(user);
  192. }
  193.  
  194. }
  195.  
  196. @Service
  197. public class UserServiceImpl implements UserService{
  198. @Autowired
  199. private UserDao userDao;
  200.  
  201. @Autowired
  202. private RoleDao roleDao;
  203.  
  204. @Transactional
  205. public User findById(int id) {
  206. return userDao.findById(id);
  207. }
  208.  
  209. @Transactional
  210. public List<User> findAll() {
  211. return userDao.findAll();
  212. }
  213.  
  214. @Transactional
  215. public void save(User user) {
  216. user.setEnabled(true);
  217.  
  218.  
  219. userDao.save(user);
  220.  
  221. }
  222.  
  223. @Transactional
  224. public void update(User user) {
  225. userDao.update(user);
  226.  
  227. }
  228.  
  229. @Transactional
  230. public void delete(int id) {
  231. userDao.delete(id);
  232.  
  233. }
  234.  
  235. @Transactional
  236. public User findOne(int id) {
  237.  
  238. return userDao.findOne(id);
  239. }
  240.  
  241. @Transactional
  242. public User findOneWithRole(int id) {
  243.  
  244. return userDao.findOneWithRole(id);
  245. }
  246.  
  247. @Transactional
  248. public void saveRoles(User user) {
  249.  
  250. userDao.saveRoles(user);
  251. }
  252.  
  253. }
  254.  
  255. @Controller
  256. public class UserController {
  257. @Autowired
  258. private UserService userService;
  259.  
  260. @Autowired
  261. private RoleService roleService;
  262.  
  263. @RequestMapping(value="user", method = RequestMethod.GET)
  264. public String list(Model model) {
  265. model.addAttribute("user", new User());
  266. model.addAttribute("userlist", this.userService.findAll());
  267.  
  268. return "user";
  269. }
  270.  
  271. //for add and edit
  272. @RequestMapping(value= "/addAndEditUser", method = RequestMethod.POST)
  273. public String addAndEditUser(@ModelAttribute("user") User user){
  274. if(user.getId() == 0){
  275. //new employee status, call save
  276. this.userService.save(user);
  277. }else{
  278. this.userService.update(user);
  279. }
  280.  
  281.  
  282. return "redirect:/user";
  283.  
  284. }
  285.  
  286. //For add
  287. @RequestMapping(value= "/addUser", method = RequestMethod.POST)
  288. public String addUser(@ModelAttribute("user") User user){
  289. //new employee status, call save
  290. this.userService.save(user);
  291. return "redirect:/user";
  292.  
  293. }
  294.  
  295. //for edit
  296. @RequestMapping(value= "/updateUser", method = RequestMethod.POST)
  297. public String updateUser(@ModelAttribute("user") User user){
  298.  
  299. //existing Employee status, call update function from service
  300.  
  301. userService.update(user);
  302. return "redirect:/user";
  303.  
  304. }
  305.  
  306. @RequestMapping("/removeUser/{id}")
  307. public String removeUser(@PathVariable("id") int id){
  308.  
  309. this.userService.delete(id);
  310. return "redirect:/user";
  311. }
  312.  
  313. //for call edit in list
  314. @RequestMapping("/editUser/{id}")
  315. public String editUser(@PathVariable("id") int id, Model model){
  316.  
  317. model.addAttribute("religionlist", this.userService.findAll());
  318. model.addAttribute("user", this.userService.findById(id));
  319. return "formUser";
  320. }
  321. @RequestMapping("/users/{id}")
  322. public String detail(Model model, @PathVariable int id){
  323. model.addAttribute("users", userService.findOneWithRole(id));
  324.  
  325. return "user-detail";
  326. }
  327.  
  328.  
  329. @RequestMapping(value= "/addAndEditUserRoles", method = RequestMethod.POST)
  330. public String addAndEditUserRoles(@ModelAttribute("users") User user, BindingResult result, @PathVariable int id){
  331.  
  332. List<Role> roles = new ArrayList<Role>();
  333. user.getRoles();
  334. this.userService.saveRoles(user);
  335. return "user-detail";
  336.  
  337. }
  338. }
  339.  
  340. <%@ page language="java" contentType="text/html; charset=UTF-8"
  341. pageEncoding="UTF-8"%>
  342. <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
  343. <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
  344. <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
  345. <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
  346.  
  347.  
  348. <script type="text/javascript">
  349. $(document).ready(function(){
  350. $(".triggerRemove").click(function(e){
  351. e.preventDefault();
  352. $("#modalRemove .removeBtn").attr("href", $(this).attr("href"));
  353. $("#modalRemove").modal();
  354. });
  355. });
  356. </script>
  357.  
  358. <div id="page-wrapper">
  359. <div class="container-fluid">
  360.  
  361. <!-- Page Heading -->
  362. <div class="row">
  363. <div class="col-lg-12">
  364. <h1 class="page-header">User</h1>
  365. <ol class="breadcrumb">
  366. <li><i class="fa fa-dashboard"></i> <a href="/">Dashboard</a>
  367. </li>
  368. <li class="active"><i class="fa fa-table"></i>User</li>
  369. </ol>
  370. </div>
  371. </div>
  372. <!-- /.row -->
  373. <div class="page-content">
  374. <div class="col-md-9">
  375. <div class="panel panel-green">
  376. <div class="panel-heading">User</div>
  377. <div class="panel-body">
  378. <table class="table table-hover table-bordered">
  379. <thead>
  380. <tr>
  381.  
  382. <th>ID</th>
  383. <th>User Name</th>
  384. <th>Email</th>
  385. <th>Operation</th>
  386. </tr>
  387. </thead>
  388. <tbody>
  389. <c:forEach items="${userlist}" var="userlist">
  390.  
  391. <tr>
  392.  
  393. <td><a ><c:out value="${userlist.id}" /></a></td>
  394. <td><a href='<spring:url value="/users/${userlist.id}" />'><c:out value="${userlist.userName}" /></a></td>
  395. <td><a><c:out value="${userlist.email}" /></a></td>
  396. <td align="center">
  397. <a href="<c:url value='/editUser/${userlist.id}' />">
  398. <span class="glyphicon glyphicon-edit"></span>
  399. </a> &nbsp; &nbsp;
  400. <a href="<spring:url value='/removeUser/${userlist.id}' />" class="btn btn-danger triggerRemove" >
  401. Remove
  402. </a>
  403. </td>
  404. </tr>
  405. </c:forEach>
  406. </tbody>
  407. </table>
  408.  
  409.  
  410.  
  411. <!-- Delete Modal -->
  412. <div class="modal fade" id="modalRemove" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  413. <div class="modal-dialog" role="document">
  414. <div class="modal-content">
  415. <div class="modal-header">
  416. <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">&times;</span></button>
  417. <h4 class="modal-title" id="myModalLabel">Delete User</h4>
  418. </div>
  419. <div class="modal-body">
  420. Are you sure want to delete this user?
  421. </div>
  422. <div class="modal-footer">
  423. <button type="button" class="btn btn-default" data-dismiss="modal">cancel</button>
  424. <a href="" class="btn btn-danger removeBtn">Remove</a>
  425. </div>
  426. </div>
  427. </div>
  428. </div>
  429.  
  430. <br>
  431. <!--ADD Button trigger modal -->
  432. <button type="button" class="btn btn-primary btn-lg"
  433. data-toggle="modal" data-target="#myModal">Add
  434. User</button>
  435.  
  436. <!-- ADD Modal -->
  437. <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
  438. aria-labelledby="myModalLabel">
  439. <div class="modal-dialog" role="document">
  440. <div class="modal-content">
  441. <div class="modal-header">
  442. <button type="button" class="close" data-dismiss="modal"
  443. aria-label="Close">
  444. <span aria-hidden="true">&times;</span>
  445. </button>
  446. <h4 class="modal-title" id="myModalLabel">Form
  447. User</h4>
  448. </div>
  449. <div class="modal-body">
  450. <!-- ----- -->
  451. <div class="panel-body">
  452. <c:url var="addAndEditAction" value="/addAndEditUser"></c:url>
  453.  
  454. <form:form action="${addAndEditAction}" commandName="user">
  455. <table>
  456. <tr>
  457. <td><form:label path="userName">
  458. <spring:message text="Name" />
  459. </form:label></td>
  460.  
  461. <td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<form:input path="userName" /></td>
  462. </tr>
  463. <tr>
  464. <td><form:label path="email">
  465. <spring:message text="Email" />
  466. </form:label></td>
  467.  
  468. <td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<form:input path="email" /></td>
  469. </tr>
  470. <tr>
  471. <td><form:label path="password">
  472. <spring:message text="Password" />
  473. </form:label></td>
  474.  
  475. <td>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<form:input path="password" /></td>
  476. </tr>
  477.  
  478. </table>
  479.  
  480. <br>
  481.  
  482. <button type="button" class="btn btn-default"
  483. data-dismiss="modal">Close</button>
  484.  
  485. <button type="submit" class="btn btn-primary" value="">Save
  486. </button>
  487.  
  488. </form:form>
  489. </div>
  490. <!-- -------- -->
  491. </div>
  492.  
  493. <div class="modal-footer"></div>
  494. </div>
  495. </div>
  496. </div>
  497.  
  498.  
  499.  
  500. </div>
  501.  
  502.  
  503.  
  504. </div>
  505. </div>
  506. </div>
  507.  
  508. </div>
  509.  
  510. <h1>${users.userName}</h1>
  511. <br>
  512. User Role
  513.  
  514. <form:form modelAttribute="users" method="POST" action="/addAndEditUserRoles">
  515. <c:forEach items="${users.roles}" var="role">
  516. <tr>
  517. <td><form:checkbox path="roles" value="${role}" label="${role.id}" /></td>
  518. <td><c:out value="${role.name}" /></td>
  519. </tr>
  520. <!-- <td>${role.name}</td>-->
  521. <tr>
  522. <td colspan="3"><input type="submit" /></td>
  523. </tr>
  524. </c:forEach>
  525. </form:form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement