Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- @Entity
- @Table
- public class User {
- @Id
- @GeneratedValue
- private int id;
- private String userName;
- private String email;
- private String password;
- private boolean enabled;
- @ManyToMany(fetch = FetchType.EAGER)
- @JoinTable
- private List<Role> roles;
- /**
- @OneToOne
- private Employee employee;
- **/
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getEmail() {
- return email;
- }
- public void setEmail(String email) {
- this.email = email;
- }
- public String getPassword() {
- return password;
- }
- public void setPassword(String password) {
- this.password = password;
- }
- public List<Role> getRoles() {
- return roles;
- }
- public void setRoles(List<Role> roles) {
- this.roles = roles;
- }
- /**
- * @return the enabled
- */
- public boolean isEnabled() {
- return enabled;
- }
- /**
- * @param enabled the enabled to set
- */
- public void setEnabled(boolean enabled) {
- this.enabled = enabled;
- }
- }
- @Entity
- @Table
- public class Role {
- @Id
- @GeneratedValue
- private int id;
- private String name;
- @ManyToMany(fetch = FetchType.EAGER,mappedBy="roles", cascade = CascadeType.ALL)
- private List<User> users;
- public int getId() {
- return id;
- }
- public void setId(int id) {
- this.id = id;
- }
- public String getName() {
- return name;
- }
- public void setName(String name) {
- this.name = name;
- }
- public List<User> getUsers() {
- return users;
- }
- public void setUsers(List<User> users) {
- this.users = users;
- }
- }
- @Repository
- public class UserDaoImpl implements UserDao{
- private static final Logger logger = LoggerFactory.getLogger(UserDaoImpl.class);
- @Autowired
- private SessionFactory sessionFactory;
- @Autowired
- private RoleDao roleDao;
- public User findById(int id) {
- return (User)sessionFactory.getCurrentSession().get(User.class, id);
- }
- @SuppressWarnings("unchecked")
- public List<User> findAll() {
- Session session = this.sessionFactory.getCurrentSession();
- List<User> userList = session.createQuery("from User").list();
- return userList;
- }
- public void save(User user) {
- Session session = this.sessionFactory.getCurrentSession();
- BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();
- user.setPassword(encoder.encode(user.getPassword()));
- List<Role> roles = new ArrayList<Role>();
- //roles.add(roleDao.findById(2));
- roles.add(roleDao.findByName("ROLE_USER"));
- user.setRoles(roles);
- session.persist(user);
- }
- public void update(User user) {
- Session session = this.sessionFactory.getCurrentSession();
- session.update(user);
- logger.info("Employee Status updated successfully, departement Details="+user);
- }
- public void delete(int id) {
- sessionFactory.getCurrentSession().delete(findById(id));
- }
- public User findOne(int id) {
- return (User)sessionFactory.getCurrentSession().get(User.class, id);
- }
- public User findOneWithRole(int id) {
- User user = findById(id);
- List<Role> roles = roleDao.findByUser(id);
- //user.setRoles(roles);
- return user;
- }
- public void saveRoles(User user) {
- Session session = this.sessionFactory.getCurrentSession();
- //List<Role> roles = new ArrayList<Role>();
- //user.setRoles(roles);
- session.persist(user);
- }
- }
- @Service
- public class UserServiceImpl implements UserService{
- @Autowired
- private UserDao userDao;
- @Autowired
- private RoleDao roleDao;
- @Transactional
- public User findById(int id) {
- return userDao.findById(id);
- }
- @Transactional
- public List<User> findAll() {
- return userDao.findAll();
- }
- @Transactional
- public void save(User user) {
- user.setEnabled(true);
- userDao.save(user);
- }
- @Transactional
- public void update(User user) {
- userDao.update(user);
- }
- @Transactional
- public void delete(int id) {
- userDao.delete(id);
- }
- @Transactional
- public User findOne(int id) {
- return userDao.findOne(id);
- }
- @Transactional
- public User findOneWithRole(int id) {
- return userDao.findOneWithRole(id);
- }
- @Transactional
- public void saveRoles(User user) {
- userDao.saveRoles(user);
- }
- }
- @Controller
- public class UserController {
- @Autowired
- private UserService userService;
- @Autowired
- private RoleService roleService;
- @RequestMapping(value="user", method = RequestMethod.GET)
- public String list(Model model) {
- model.addAttribute("user", new User());
- model.addAttribute("userlist", this.userService.findAll());
- return "user";
- }
- //for add and edit
- @RequestMapping(value= "/addAndEditUser", method = RequestMethod.POST)
- public String addAndEditUser(@ModelAttribute("user") User user){
- if(user.getId() == 0){
- //new employee status, call save
- this.userService.save(user);
- }else{
- this.userService.update(user);
- }
- return "redirect:/user";
- }
- //For add
- @RequestMapping(value= "/addUser", method = RequestMethod.POST)
- public String addUser(@ModelAttribute("user") User user){
- //new employee status, call save
- this.userService.save(user);
- return "redirect:/user";
- }
- //for edit
- @RequestMapping(value= "/updateUser", method = RequestMethod.POST)
- public String updateUser(@ModelAttribute("user") User user){
- //existing Employee status, call update function from service
- userService.update(user);
- return "redirect:/user";
- }
- @RequestMapping("/removeUser/{id}")
- public String removeUser(@PathVariable("id") int id){
- this.userService.delete(id);
- return "redirect:/user";
- }
- //for call edit in list
- @RequestMapping("/editUser/{id}")
- public String editUser(@PathVariable("id") int id, Model model){
- model.addAttribute("religionlist", this.userService.findAll());
- model.addAttribute("user", this.userService.findById(id));
- return "formUser";
- }
- @RequestMapping("/users/{id}")
- public String detail(Model model, @PathVariable int id){
- model.addAttribute("users", userService.findOneWithRole(id));
- return "user-detail";
- }
- @RequestMapping(value= "/addAndEditUserRoles", method = RequestMethod.POST)
- public String addAndEditUserRoles(@ModelAttribute("users") User user, BindingResult result, @PathVariable int id){
- List<Role> roles = new ArrayList<Role>();
- user.getRoles();
- this.userService.saveRoles(user);
- return "user-detail";
- }
- }
- <%@ page language="java" contentType="text/html; charset=UTF-8"
- pageEncoding="UTF-8"%>
- <%@ taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles"%>
- <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
- <%@ taglib uri="http://www.springframework.org/tags" prefix="spring"%>
- <%@ taglib uri="http://www.springframework.org/tags/form" prefix="form"%>
- <script type="text/javascript">
- $(document).ready(function(){
- $(".triggerRemove").click(function(e){
- e.preventDefault();
- $("#modalRemove .removeBtn").attr("href", $(this).attr("href"));
- $("#modalRemove").modal();
- });
- });
- </script>
- <div id="page-wrapper">
- <div class="container-fluid">
- <!-- Page Heading -->
- <div class="row">
- <div class="col-lg-12">
- <h1 class="page-header">User</h1>
- <ol class="breadcrumb">
- <li><i class="fa fa-dashboard"></i> <a href="/">Dashboard</a>
- </li>
- <li class="active"><i class="fa fa-table"></i>User</li>
- </ol>
- </div>
- </div>
- <!-- /.row -->
- <div class="page-content">
- <div class="col-md-9">
- <div class="panel panel-green">
- <div class="panel-heading">User</div>
- <div class="panel-body">
- <table class="table table-hover table-bordered">
- <thead>
- <tr>
- <th>ID</th>
- <th>User Name</th>
- <th>Email</th>
- <th>Operation</th>
- </tr>
- </thead>
- <tbody>
- <c:forEach items="${userlist}" var="userlist">
- <tr>
- <td><a ><c:out value="${userlist.id}" /></a></td>
- <td><a href='<spring:url value="/users/${userlist.id}" />'><c:out value="${userlist.userName}" /></a></td>
- <td><a><c:out value="${userlist.email}" /></a></td>
- <td align="center">
- <a href="<c:url value='/editUser/${userlist.id}' />">
- <span class="glyphicon glyphicon-edit"></span>
- </a>
- <a href="<spring:url value='/removeUser/${userlist.id}' />" class="btn btn-danger triggerRemove" >
- Remove
- </a>
- </td>
- </tr>
- </c:forEach>
- </tbody>
- </table>
- <!-- Delete Modal -->
- <div class="modal fade" id="modalRemove" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
- <div class="modal-dialog" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
- <h4 class="modal-title" id="myModalLabel">Delete User</h4>
- </div>
- <div class="modal-body">
- Are you sure want to delete this user?
- </div>
- <div class="modal-footer">
- <button type="button" class="btn btn-default" data-dismiss="modal">cancel</button>
- <a href="" class="btn btn-danger removeBtn">Remove</a>
- </div>
- </div>
- </div>
- </div>
- <br>
- <!--ADD Button trigger modal -->
- <button type="button" class="btn btn-primary btn-lg"
- data-toggle="modal" data-target="#myModal">Add
- User</button>
- <!-- ADD Modal -->
- <div class="modal fade" id="myModal" tabindex="-1" role="dialog"
- aria-labelledby="myModalLabel">
- <div class="modal-dialog" role="document">
- <div class="modal-content">
- <div class="modal-header">
- <button type="button" class="close" data-dismiss="modal"
- aria-label="Close">
- <span aria-hidden="true">×</span>
- </button>
- <h4 class="modal-title" id="myModalLabel">Form
- User</h4>
- </div>
- <div class="modal-body">
- <!-- ----- -->
- <div class="panel-body">
- <c:url var="addAndEditAction" value="/addAndEditUser"></c:url>
- <form:form action="${addAndEditAction}" commandName="user">
- <table>
- <tr>
- <td><form:label path="userName">
- <spring:message text="Name" />
- </form:label></td>
- <td> <form:input path="userName" /></td>
- </tr>
- <tr>
- <td><form:label path="email">
- <spring:message text="Email" />
- </form:label></td>
- <td> <form:input path="email" /></td>
- </tr>
- <tr>
- <td><form:label path="password">
- <spring:message text="Password" />
- </form:label></td>
- <td> <form:input path="password" /></td>
- </tr>
- </table>
- <br>
- <button type="button" class="btn btn-default"
- data-dismiss="modal">Close</button>
- <button type="submit" class="btn btn-primary" value="">Save
- </button>
- </form:form>
- </div>
- <!-- -------- -->
- </div>
- <div class="modal-footer"></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <h1>${users.userName}</h1>
- <br>
- User Role
- <form:form modelAttribute="users" method="POST" action="/addAndEditUserRoles">
- <c:forEach items="${users.roles}" var="role">
- <tr>
- <td><form:checkbox path="roles" value="${role}" label="${role.id}" /></td>
- <td><c:out value="${role.name}" /></td>
- </tr>
- <!-- <td>${role.name}</td>-->
- <tr>
- <td colspan="3"><input type="submit" /></td>
- </tr>
- </c:forEach>
- </form:form>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement