Skip to content

Commit

Permalink
Done
Browse files Browse the repository at this point in the history
hotuankietgit committed Dec 26, 2023
1 parent af9cc30 commit 9195b04
Showing 8 changed files with 52 additions and 35 deletions.
Original file line number Diff line number Diff line change
@@ -3,6 +3,7 @@
import com.example.PointOfSale.model.Account;
import com.example.PointOfSale.model.Role;
import com.example.PointOfSale.service.AccountDetailsService;
import com.example.PointOfSale.service.AccountService;
import com.example.PointOfSale.service.EmailServiceImpl;
import com.example.PointOfSale.service.RoleService;
import com.example.PointOfSale.utils.FileStorageService;
@@ -19,17 +20,17 @@
import org.springframework.web.servlet.ModelAndView;

import java.security.Principal;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Set;
import java.util.*;

@Controller
@RequestMapping("/admin")
public class AdminController {
@Autowired
private AccountDetailsService accountDetailsService;

@Autowired
private AccountService accountService;

@Autowired
private EmailServiceImpl emailService;

@@ -128,7 +129,7 @@ public ModelAndView getEmployeeDetailPage(@RequestParam String username, @Reques
}

@PostMapping("/update")
public ModelAndView updateEmployee(@RequestParam MultipartFile file, Account account, ModelMap model, String[] roles){
public ModelAndView updateEmployee(@RequestParam MultipartFile file, Account account, ModelMap model,@RequestParam(value="roles[]", required = false) String[] roles){

System.out.println(account.getRoles());

@@ -139,6 +140,23 @@ public ModelAndView updateEmployee(@RequestParam MultipartFile file, Account acc
}
accountDetailsService.updateEmployee(account);

Account accountRequest = accountDetailsService.getEmployeeByUsername(account.getUsername());

if (roles == null){
accountRequest.getRoles().clear();
accountService.updateAccount(accountRequest);
} else {
accountRequest.getRoles().clear();
Set<Role> roleSet = new HashSet<>();
for (String roleName : roles){
Role role = roleService.getRoleByName(roleName);
roleSet.add(role);
}

accountRequest.setRoles(roleSet);
accountService.updateAccount(accountRequest);
}

model.addAttribute("username", account.getUsername());
return new ModelAndView("redirect:/admin/edit", model);
}
2 changes: 2 additions & 0 deletions src/main/java/com/example/PointOfSale/dao/RoleRepository.java
Original file line number Diff line number Diff line change
@@ -9,4 +9,6 @@
@Repository
public interface RoleRepository extends CrudRepository<Role, String> {
public Set<Role> findAll();

public Role getRoleByRoleName(String name);
}
16 changes: 6 additions & 10 deletions src/main/java/com/example/PointOfSale/service/AccountService.java
Original file line number Diff line number Diff line change
@@ -1,17 +1,9 @@
package com.example.PointOfSale.service;

import java.util.List;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import com.example.PointOfSale.dao.AccountRepository;
import com.example.PointOfSale.model.Account;
import com.example.PointOfSale.model.Orders;
import com.fasterxml.jackson.annotation.JsonBackReference;

import jakarta.persistence.CascadeType;
import jakarta.persistence.OneToMany;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class AccountService {
@Autowired
@@ -20,4 +12,8 @@ public class AccountService {
public Account getAccountByUsername(String username) {
return accountRepository.getAccountByUsername(username);
}

public void updateAccount(Account account){
accountRepository.save(account);
}
}
Original file line number Diff line number Diff line change
@@ -2,13 +2,10 @@

import com.example.PointOfSale.dao.RoleRepository;
import com.example.PointOfSale.model.Role;
import org.hibernate.annotations.SecondaryRow;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;

@Service
public class RoleService {
@@ -18,4 +15,8 @@ public class RoleService {
public Set<Role> getRoles(){
return roleRepository.findAll();
}

public Role getRoleByName(String name){
return roleRepository.getRoleByRoleName(name);
}
}
15 changes: 15 additions & 0 deletions src/main/resources/data.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
INSERT INTO Role VALUES
('Role_Admin', 'Admin'),
('Role_Agent', 'Agent');

INSERT INTO Account (email, username, full_name, password, locked, status) VALUES
('admin@gmail.com', 'admin', 'Ho Tuan Kiet','$2a$10$NAR4wfpHRZBZaQ5nFqKb6O3Rp9YmDSTNBqxk3HtRppvQBbSlqwpr2', false, true);

INSERT INTO account_role (username, role_id) VALUES
('admin', 'Role_Admin');

INSERT INTO Account (email, username, full_name ,password, locked, status) VALUES
('kiettyranno@gmail.com', 'kiettyranno', 'Ho Tuan Kiet','$2a$10$NAR4wfpHRZBZaQ5nFqKb6O3Rp9YmDSTNBqxk3HtRppvQBbSlqwpr2', false, true);

INSERT INTO account_role (username, role_id) VALUES
('kiettyranno', 'Role_Agent');
15 changes: 0 additions & 15 deletions src/main/resources/data.txt

This file was deleted.

Binary file added src/main/resources/static/images/4.jpg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 2 additions & 2 deletions src/main/resources/templates/admin/detail.html
Original file line number Diff line number Diff line change
@@ -98,8 +98,8 @@ <h6 class="mb-0">Full Name</h6>
<h6 class="mb-0" th:text="${role.roleName}"></h6>
</div>
<div class="col-sm-1 text-secondary">
<input class="btn btn-lg btn-toggle" type="checkbox" data-toggle="toggle" data-onstyle="success" data-offstyle="outline-danger" th:checked="${account.roles.contains(role)}" th:value="role" name="roles[]">
<input class="btn btn-lg btn-toggle" type="hidden" data-toggle="toggle" data-onstyle="success" data-offstyle="outline-danger" th:value="role" name="roles[]">
<input class="btn btn-lg btn-toggle" type="checkbox" data-toggle="toggle" data-onstyle="success" data-offstyle="outline-danger" th:checked="${account.roles.contains(role)}" th:value="${role.getRoleName()}" name="roles[]">
<!-- <input class="btn btn-lg btn-toggle" type="hidden" data-toggle="toggle" data-onstyle="success" data-offstyle="outline-danger" th:value="${role.getRoleName()}" name="roles[]">-->
</div>
</th:block>

0 comments on commit 9195b04

Please sign in to comment.