From 758903125a41d47489283e0dda9bd75e9093d294 Mon Sep 17 00:00:00 2001 From: vansia Date: Fri, 18 Mar 2022 16:43:33 -0300 Subject: [PATCH 1/4] refactoring: extract method: MessageService/reply --- .../projectyweb/message/MessageService.java | 26 ++++++++++++------- .../application-development.properties | 2 +- src/main/resources/application.properties | 2 +- 3 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/main/java/com/projecty/projectyweb/message/MessageService.java b/src/main/java/com/projecty/projectyweb/message/MessageService.java index 732fac2..b4e4c8f 100644 --- a/src/main/java/com/projecty/projectyweb/message/MessageService.java +++ b/src/main/java/com/projecty/projectyweb/message/MessageService.java @@ -77,7 +77,7 @@ public Message sendMessage( ) throws BindException { BindException bindException = new BindException(message, "message"); messageValidator.validate(message, bindException); -// + if (bindException.hasErrors()) { throw bindException; } @@ -103,20 +103,26 @@ public Message reply(Long replyToMessageId, User user = userService.getCurrentUser(); Optional optionalReplyToMessage = messageRepository.findById(replyToMessageId); if (optionalReplyToMessage.isPresent()) { - Message replyToMessage = optionalReplyToMessage.get(); - if (replyToMessage.getSender().equals(user)) { - throw new ResponseStatusException(HttpStatus.BAD_REQUEST); - } - message.setRecipientUsername(replyToMessage.getSender().getUsername()); - message.setReplyTo(replyToMessage); - replyToMessage.setHasReply(true); - messageRepository.save(replyToMessage); - return sendMessage(message, multipartFiles); + return saveReply(user, message, optionalReplyToMessage.get(), multipartFiles); } else { throw new ResponseStatusException(HttpStatus.NOT_FOUND); } } + public Message saveReply(User user, + Message message, + Message replyToMessage, + List multipartFiles) throws BindException { + if (replyToMessage.getSender().equals(user)) { + throw new ResponseStatusException(HttpStatus.BAD_REQUEST); + } + message.setRecipientUsername(replyToMessage.getSender().getUsername()); + message.setReplyTo(replyToMessage); + replyToMessage.setHasReply(true); + messageRepository.save(replyToMessage); + return sendMessage(message, multipartFiles); + } + public void deleteMessage(Message message) { User currentUser = userService.getCurrentUser(); associationService.deleteMessageForUser(message, currentUser); diff --git a/src/main/resources/application-development.properties b/src/main/resources/application-development.properties index d16f659..92984db 100644 --- a/src/main/resources/application-development.properties +++ b/src/main/resources/application-development.properties @@ -1,6 +1,6 @@ spring.datasource.url=jdbc:mysql://localhost:3306/projecty?createDatabaseIfNotExist=true spring.datasource.username=root -spring.datasource.password=password +spring.datasource.password=root123 spring.jpa.hibernate.ddl-auto=update spring.jpa.properties.hibernate.dialect = org.hibernate.dialect.MySQL8Dialect spring.servlet.multipart.enabled=true diff --git a/src/main/resources/application.properties b/src/main/resources/application.properties index 3179cea..b0debe5 100644 --- a/src/main/resources/application.properties +++ b/src/main/resources/application.properties @@ -2,7 +2,7 @@ spring.application.name=Projecty Web #This is a default profile to override this pass the active profile as parameter while running -spring.profiles.active=docker +spring.profiles.active=development #supported languages il8n.supported-languages=fr,en From 8069c3f0caecf52c081b221d82520793f38f5aec Mon Sep 17 00:00:00 2001 From: vansia Date: Fri, 18 Mar 2022 21:00:27 -0300 Subject: [PATCH 2/4] refactoring: extract class --- .../projectyweb/email/EmailService.java | 16 ++-------- .../projectyweb/email/SendEmailService.java | 30 +++++++++++++++++++ 2 files changed, 33 insertions(+), 13 deletions(-) create mode 100644 src/main/java/com/projecty/projectyweb/email/SendEmailService.java diff --git a/src/main/java/com/projecty/projectyweb/email/EmailService.java b/src/main/java/com/projecty/projectyweb/email/EmailService.java index 07e8788..d23c997 100644 --- a/src/main/java/com/projecty/projectyweb/email/EmailService.java +++ b/src/main/java/com/projecty/projectyweb/email/EmailService.java @@ -2,13 +2,11 @@ import org.springframework.beans.factory.annotation.Value; import org.springframework.mail.javamail.JavaMailSender; -import org.springframework.mail.javamail.MimeMessageHelper; import org.springframework.stereotype.Service; import org.thymeleaf.context.Context; import org.thymeleaf.spring5.SpringTemplateEngine; import javax.mail.MessagingException; -import javax.mail.internet.MimeMessage; import java.util.Map; @Service @@ -18,26 +16,18 @@ public class EmailService { @Value("${spring.mail.username}") private String from; + SendEmailService sendEmailService; + public EmailService(JavaMailSender javaMailSender, SpringTemplateEngine springTemplateEngine) { this.javaMailSender = javaMailSender; this.springTemplateEngine = springTemplateEngine; } - public void sendEmail(String to, String subject, String text) throws MessagingException { - MimeMessage message = javaMailSender.createMimeMessage(); - MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); - helper.setFrom(from); - helper.setTo(to); - helper.setSubject(subject); - helper.setText(text, true); - javaMailSender.send(message); - } - public void sendMessageThymeleafTemplate(String to, String subject, Map templateModel) throws MessagingException { Context context = new Context(); context.setVariables(templateModel); String htmlBody = springTemplateEngine.process("email-template.html", context); - sendEmail(to, subject, htmlBody); + sendEmailService.sendEmail(to, from, subject, htmlBody); } } diff --git a/src/main/java/com/projecty/projectyweb/email/SendEmailService.java b/src/main/java/com/projecty/projectyweb/email/SendEmailService.java new file mode 100644 index 0000000..b0fe72a --- /dev/null +++ b/src/main/java/com/projecty/projectyweb/email/SendEmailService.java @@ -0,0 +1,30 @@ +package com.projecty.projectyweb.email; + +import org.springframework.mail.javamail.JavaMailSender; +import org.springframework.mail.javamail.MimeMessageHelper; + +import javax.mail.MessagingException; +import javax.mail.internet.MimeMessage; + +public class SendEmailService { + + private final JavaMailSender javaMailSender; + + public SendEmailService(JavaMailSender javaMailSender) { + this.javaMailSender = javaMailSender; + } + + + public void sendEmail(String from, + String to, + String subject, + String text) throws MessagingException { + MimeMessage message = javaMailSender.createMimeMessage(); + MimeMessageHelper helper = new MimeMessageHelper(message, true, "UTF-8"); + helper.setFrom(from); + helper.setTo(to); + helper.setSubject(subject); + helper.setText(text, true); + javaMailSender.send(message); + } +} From 6fa577303358562ad97ba53c9f9bccbbcf67106f Mon Sep 17 00:00:00 2001 From: vansia Date: Mon, 21 Mar 2022 20:23:36 -0300 Subject: [PATCH 3/4] refactoring: move method --- .../project/ProjectController.java | 14 +++++-- .../project/ProjectPermissionAspect.java | 40 +++++++++++++++++-- .../projectyweb/project/ProjectService.java | 22 ---------- .../projecty/projectyweb/task/TaskAspect.java | 9 +++-- .../projectyweb/task/TaskController.java | 9 +++-- .../projectyweb/task/TaskService.java | 9 +++-- 6 files changed, 66 insertions(+), 37 deletions(-) diff --git a/src/main/java/com/projecty/projectyweb/project/ProjectController.java b/src/main/java/com/projecty/projectyweb/project/ProjectController.java index 446fd54..91ced51 100644 --- a/src/main/java/com/projecty/projectyweb/project/ProjectController.java +++ b/src/main/java/com/projecty/projectyweb/project/ProjectController.java @@ -33,12 +33,20 @@ public class ProjectController { private final ProjectRoleService projectRoleService; - public ProjectController(ProjectService projectService, ProjectRepository projectRepository, UserService userService, ProjectValidator projectValidator, ProjectRoleService projectRoleService) { + private final ProjectPermissionAspect projectPermissionAspect; + + public ProjectController(ProjectService projectService, + ProjectRepository projectRepository, + UserService userService, + ProjectValidator projectValidator, + ProjectRoleService projectRoleService, + ProjectPermissionAspect projectPermissionAspect) { this.projectService = projectService; this.projectRepository = projectRepository; this.userService = userService; this.projectValidator = projectValidator; this.projectRoleService = projectRoleService; + this.projectPermissionAspect = projectPermissionAspect; } @GetMapping("") @@ -96,7 +104,7 @@ public Project patchProject( @RequestBody Project patchedProject ) { Optional optionalProject = projectRepository.findById(projectId); - if (optionalProject.isPresent() && projectService.hasCurrentUserPermissionToEdit(optionalProject.get())) { + if (optionalProject.isPresent() && projectPermissionAspect.hasCurrentUserPermissionToEdit(optionalProject.get())) { return projectService.patchProject(optionalProject.get(), patchedProject); } else { throw new ResponseStatusException(HttpStatus.NOT_FOUND); @@ -108,7 +116,7 @@ public Project getProjectData( @PathVariable Long projectId ) { Optional optionalProject = projectRepository.findById(projectId); - if (optionalProject.isPresent() && projectService.hasCurrentUserPermissionToEdit(optionalProject.get())) { + if (optionalProject.isPresent() && projectPermissionAspect.hasCurrentUserPermissionToEdit(optionalProject.get())) { return optionalProject.get(); } else { throw new ResponseStatusException(HttpStatus.NOT_FOUND); diff --git a/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java b/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java index 669de01..50bb549 100644 --- a/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java +++ b/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java @@ -1,5 +1,11 @@ package com.projecty.projectyweb.project; +import com.projecty.projectyweb.project.role.ProjectRole; +import com.projecty.projectyweb.project.role.ProjectRoleRepository; +import com.projecty.projectyweb.project.role.ProjectRoles; +import com.projecty.projectyweb.team.role.TeamRole; +import com.projecty.projectyweb.team.role.TeamRoleRepository; +import com.projecty.projectyweb.team.role.TeamRoles; import com.projecty.projectyweb.user.User; import com.projecty.projectyweb.user.UserService; import org.aspectj.lang.JoinPoint; @@ -19,12 +25,16 @@ public class ProjectPermissionAspect { private final UserService userService; private final ProjectRepository projectRepository; private final ProjectService projectService; + private final ProjectRoleRepository projectRoleRepository; + private final TeamRoleRepository teamRoleRepository; private final Logger logger = Logger.getLogger(getClass().getName()); - public ProjectPermissionAspect(UserService userService, ProjectRepository projectRepository, ProjectService projectService) { + public ProjectPermissionAspect(UserService userService, ProjectRepository projectRepository, ProjectService projectService,TeamRoleRepository teamRoleRepository, ProjectRoleRepository projectRoleRepository) { this.userService = userService; this.projectRepository = projectRepository; this.projectService = projectService; + this.teamRoleRepository = teamRoleRepository; + this.projectRoleRepository = projectRoleRepository; } @Pointcut("execution (* com.projecty.projectyweb.project.ProjectController.*(Long,..))" + @@ -37,12 +47,34 @@ private void inProjectControllerAndWithEditPermission() { private void inProjectControllerAndWithAnyPermission() { } + public boolean hasCurrentUserPermissionToEdit(Project project) { + User current = userService.getCurrentUser(); + if (project.getTeam() != null) { + Optional optionalTeamRole = teamRoleRepository.findByTeamAndAndUser(project.getTeam(), current); + return optionalTeamRole.isPresent() && optionalTeamRole.get().getName().equals(TeamRoles.MANAGER); + } + Optional optionalRole = projectRoleRepository.findRoleByUserAndProject(current, project); + return optionalRole.isPresent() && optionalRole.get().getName().equals(ProjectRoles.ADMIN); + } + + public boolean hasCurrentUserPermissionToView(Project project) { + User current = userService.getCurrentUser(); + if (project.getTeam() != null) { + return teamRoleRepository.findByTeamAndAndUser(project.getTeam(), current).isPresent(); + } + return hasUserRoleInProject(current, project); + } + + public boolean hasUserRoleInProject(User user, Project project) { + return projectRoleRepository.findRoleByUserAndProject(user, project).isPresent(); + } + @Before("inProjectControllerAndWithEditPermission()") public void checkEditPermission(JoinPoint joinPoint) { Long projectId = (Long) joinPoint.getArgs()[0]; User current = userService.getCurrentUser(); Optional optionalProject = projectRepository.findById(projectId); - if (!(optionalProject.isPresent() && projectService.hasCurrentUserPermissionToEdit(optionalProject.get()))) { + if (!(optionalProject.isPresent() && hasCurrentUserPermissionToEdit(optionalProject.get()))) { logger.warning("User: " + current.getUsername() + " tried to execute " @@ -57,7 +89,7 @@ public void checkAnyPermission(JoinPoint joinPoint) { Long projectId = (Long) joinPoint.getArgs()[0]; User current = userService.getCurrentUser(); Optional optionalProject = projectRepository.findById(projectId); - if (!(optionalProject.isPresent() && projectService.hasCurrentUserPermissionToView(optionalProject.get()))) { + if (!(optionalProject.isPresent() && hasCurrentUserPermissionToView(optionalProject.get()))) { logger.warning("User: " + current.getUsername() + " tried to execute " + joinPoint.getSignature().toString() @@ -65,4 +97,6 @@ public void checkAnyPermission(JoinPoint joinPoint) { throw new ResponseStatusException(HttpStatus.NOT_FOUND); } } + + } diff --git a/src/main/java/com/projecty/projectyweb/project/ProjectService.java b/src/main/java/com/projecty/projectyweb/project/ProjectService.java index 742653f..22f86c3 100644 --- a/src/main/java/com/projecty/projectyweb/project/ProjectService.java +++ b/src/main/java/com/projecty/projectyweb/project/ProjectService.java @@ -41,28 +41,6 @@ public void save(Project project) { projectRepository.save(project); } - public boolean hasCurrentUserPermissionToEdit(Project project) { - User current = userService.getCurrentUser(); - if (project.getTeam() != null) { - Optional optionalTeamRole = teamRoleRepository.findByTeamAndAndUser(project.getTeam(), current); - return optionalTeamRole.isPresent() && optionalTeamRole.get().getName().equals(TeamRoles.MANAGER); - } - Optional optionalRole = projectRoleRepository.findRoleByUserAndProject(current, project); - return optionalRole.isPresent() && optionalRole.get().getName().equals(ProjectRoles.ADMIN); - } - - public boolean hasCurrentUserPermissionToView(Project project) { - User current = userService.getCurrentUser(); - if (project.getTeam() != null) { - return teamRoleRepository.findByTeamAndAndUser(project.getTeam(), current).isPresent(); - } - return hasUserRoleInProject(current, project); - } - - public boolean hasUserRoleInProject(User user, Project project) { - return projectRoleRepository.findRoleByUserAndProject(user, project).isPresent(); - } - Project createNewProjectAndSave(Project project, List usernames) { projectRoleService.addCurrentUserToProjectAsAdmin(project); projectRoleService.addRolesToProjectByUsernames(project, usernames); diff --git a/src/main/java/com/projecty/projectyweb/task/TaskAspect.java b/src/main/java/com/projecty/projectyweb/task/TaskAspect.java index fc7fcc9..32f0993 100644 --- a/src/main/java/com/projecty/projectyweb/task/TaskAspect.java +++ b/src/main/java/com/projecty/projectyweb/task/TaskAspect.java @@ -1,5 +1,6 @@ package com.projecty.projectyweb.task; +import com.projecty.projectyweb.project.ProjectPermissionAspect; import com.projecty.projectyweb.project.ProjectService; import com.projecty.projectyweb.user.User; import com.projecty.projectyweb.user.UserService; @@ -20,12 +21,14 @@ public class TaskAspect { private final UserService userService; private final TaskRepository taskRepository; private final ProjectService projectService; + private final ProjectPermissionAspect projectPermissionAspect; private Logger logger = Logger.getLogger(getClass().getName()); - public TaskAspect(UserService userService, TaskRepository taskRepository, ProjectService projectService) { + public TaskAspect(UserService userService, TaskRepository taskRepository, ProjectService projectService, ProjectPermissionAspect projectPermissionAspect ) { this.userService = userService; this.taskRepository = taskRepository; this.projectService = projectService; + this.projectPermissionAspect = projectPermissionAspect; } @Pointcut("execution (* com.projecty.projectyweb.task.TaskController.*(Long,..))" + @@ -43,7 +46,7 @@ public void checkEditPermission(JoinPoint joinPoint) { Long taskId = (Long) joinPoint.getArgs()[0]; User current = userService.getCurrentUser(); Optional optionalTask = taskRepository.findById(taskId); - if (!(optionalTask.isPresent() && projectService.hasCurrentUserPermissionToEdit(optionalTask.get().getProject()))) { + if (!(optionalTask.isPresent() && projectPermissionAspect.hasCurrentUserPermissionToEdit(optionalTask.get().getProject()))) { logger.warning("User: " + current.getUsername() + " tried to execute " @@ -58,7 +61,7 @@ public void checkAnyPermission(JoinPoint joinPoint) { Long taskId = (Long) joinPoint.getArgs()[0]; User current = userService.getCurrentUser(); Optional optionalTask = taskRepository.findById(taskId); - if (!(optionalTask.isPresent() && projectService.hasCurrentUserPermissionToView(optionalTask.get().getProject()))) { + if (!(optionalTask.isPresent() && projectPermissionAspect.hasCurrentUserPermissionToView(optionalTask.get().getProject()))) { logger.warning("User: " + current.getUsername() + " tried to execute " + joinPoint.getSignature().toString() diff --git a/src/main/java/com/projecty/projectyweb/task/TaskController.java b/src/main/java/com/projecty/projectyweb/task/TaskController.java index 9757418..f7a752a 100644 --- a/src/main/java/com/projecty/projectyweb/task/TaskController.java +++ b/src/main/java/com/projecty/projectyweb/task/TaskController.java @@ -2,6 +2,7 @@ import com.projecty.projectyweb.configurations.EditPermission; import com.projecty.projectyweb.project.Project; +import com.projecty.projectyweb.project.ProjectPermissionAspect; import com.projecty.projectyweb.project.ProjectRepository; import com.projecty.projectyweb.project.ProjectService; import com.projecty.projectyweb.task.dto.ProjectTasksData; @@ -27,13 +28,15 @@ public class TaskController { private final TaskValidator taskValidator; private final TaskRepository taskRepository; private final TaskService taskService; + private final ProjectPermissionAspect projectPermissionAspect; - public TaskController(ProjectRepository projectRepository, ProjectService projectService, TaskValidator taskValidator, TaskRepository taskRepository, TaskService taskService) { + public TaskController(ProjectRepository projectRepository, ProjectService projectService, TaskValidator taskValidator, TaskRepository taskRepository, TaskService taskService, ProjectPermissionAspect projectPermissionAspect) { this.projectRepository = projectRepository; this.projectService = projectService; this.taskValidator = taskValidator; this.taskRepository = taskRepository; this.taskService = taskService; + this.projectPermissionAspect = projectPermissionAspect; } @PostMapping("/project/{projectId}") @@ -47,7 +50,7 @@ public Task addTaskPost( Optional optionalProject = projectRepository.findById(projectId); if (bindingResult.hasErrors()) { throw new ResponseStatusException(HttpStatus.BAD_REQUEST); - } else if (optionalProject.isPresent() && projectService.hasCurrentUserPermissionToEdit(optionalProject.get())) { + } else if (optionalProject.isPresent() && projectPermissionAspect.hasCurrentUserPermissionToEdit(optionalProject.get())) { return taskService.addTaskToProject(task, optionalProject.get()); } else { throw new ResponseStatusException(HttpStatus.NOT_FOUND); @@ -88,7 +91,7 @@ public Task editTaskDetailsPatch( ) throws BindException { task.setId(taskId); Task newTaskCandidate = taskService.findTaskInRepositoryAndUpdateFields(task); - if (newTaskCandidate != null && projectService.hasCurrentUserPermissionToEdit(newTaskCandidate.getProject())) { + if (newTaskCandidate != null && projectPermissionAspect.hasCurrentUserPermissionToEdit(newTaskCandidate.getProject())) { DataBinder dataBinder = new DataBinder(newTaskCandidate); dataBinder.setValidator(taskValidator); dataBinder.validate(); diff --git a/src/main/java/com/projecty/projectyweb/task/TaskService.java b/src/main/java/com/projecty/projectyweb/task/TaskService.java index b6b86ad..f2c4d8e 100644 --- a/src/main/java/com/projecty/projectyweb/task/TaskService.java +++ b/src/main/java/com/projecty/projectyweb/task/TaskService.java @@ -2,6 +2,7 @@ import com.projecty.projectyweb.project.Project; +import com.projecty.projectyweb.project.ProjectPermissionAspect; import com.projecty.projectyweb.project.ProjectService; import com.projecty.projectyweb.project.role.ProjectRoleService; import com.projecty.projectyweb.task.dto.ProjectTasksData; @@ -25,14 +26,16 @@ public class TaskService { private final TeamRoleService teamRoleService; private final UserService userService; private final ProjectService projectService; + private final ProjectPermissionAspect projectPermissionAspect; - public TaskService(TaskRepository taskRepository, UserRepository userRepository, ProjectRoleService projectRoleService, TeamRoleService teamRoleService, UserService userService, ProjectService projectService) { + public TaskService(TaskRepository taskRepository, UserRepository userRepository, ProjectRoleService projectRoleService, TeamRoleService teamRoleService, UserService userService, ProjectService projectService, ProjectPermissionAspect projectPermissionAspect) { this.taskRepository = taskRepository; this.userRepository = userRepository; this.projectRoleService = projectRoleService; this.teamRoleService = teamRoleService; this.userService = userService; this.projectService = projectService; + this.projectPermissionAspect = projectPermissionAspect; } public void changeTaskStatus(Task task, String status) { @@ -115,7 +118,7 @@ public void removeAssignmentByUsername(Task task, String username) { public boolean hasCurrentUserPermissionToEditOrIsAssignedToTask(Task task) { User user = userService.getCurrentUser(); Project project = task.getProject(); - return projectService.hasCurrentUserPermissionToEdit(project) || task.getAssignedUsers().contains(user); + return projectPermissionAspect.hasCurrentUserPermissionToEdit(project) || task.getAssignedUsers().contains(user); } public Task findTaskInRepositoryAndUpdateFields(Task newTask) { @@ -138,7 +141,7 @@ public ProjectTasksData getProjectTasksData(Project project) { List toDoTasks = taskRepository.findByProjectAndStatusOrderByStartDate(project, TaskStatus.TO_DO); List inProgressTasks = taskRepository.findByProjectAndStatusOrderByEndDate(project, TaskStatus.IN_PROGRESS); List doneTasks = taskRepository.findByProjectAndStatus(project, TaskStatus.DONE); - boolean hasPermissionToEdit = projectService.hasCurrentUserPermissionToEdit(project); + boolean hasPermissionToEdit = projectPermissionAspect.hasCurrentUserPermissionToEdit(project); return ProjectTasksData.builder() .toDoTasks(toDoTasks) .inProgressTasks(inProgressTasks) From 861a084f5a9dab456af40156d468b1e80a397987 Mon Sep 17 00:00:00 2001 From: vansia Date: Mon, 21 Mar 2022 22:04:33 -0300 Subject: [PATCH 4/4] refactoring: pull_up_variable --- .../project/ProjectNotificationAspect.java | 5 ++--- .../projectyweb/project/ProjectPermissionAspect.java | 5 ++--- .../projecty/projectyweb/project/ProjectService.java | 5 ++--- .../projectyweb/project/UserServiceField.java | 11 +++++++++++ 4 files changed, 17 insertions(+), 9 deletions(-) create mode 100644 src/main/java/com/projecty/projectyweb/project/UserServiceField.java diff --git a/src/main/java/com/projecty/projectyweb/project/ProjectNotificationAspect.java b/src/main/java/com/projecty/projectyweb/project/ProjectNotificationAspect.java index 3911113..92931f1 100644 --- a/src/main/java/com/projecty/projectyweb/project/ProjectNotificationAspect.java +++ b/src/main/java/com/projecty/projectyweb/project/ProjectNotificationAspect.java @@ -17,12 +17,11 @@ @Aspect @Component -public class ProjectNotificationAspect { - private final UserService userService; +public class ProjectNotificationAspect extends UserServiceField{ private final NotificationService notificationService; public ProjectNotificationAspect(UserService userService, UserRepository userRepository, NotificationService notificationService) { - this.userService = userService; + super(userService); this.notificationService = notificationService; } diff --git a/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java b/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java index 50bb549..a941831 100644 --- a/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java +++ b/src/main/java/com/projecty/projectyweb/project/ProjectPermissionAspect.java @@ -21,8 +21,7 @@ @Aspect @Component -public class ProjectPermissionAspect { - private final UserService userService; +public class ProjectPermissionAspect extends UserServiceField { private final ProjectRepository projectRepository; private final ProjectService projectService; private final ProjectRoleRepository projectRoleRepository; @@ -30,7 +29,7 @@ public class ProjectPermissionAspect { private final Logger logger = Logger.getLogger(getClass().getName()); public ProjectPermissionAspect(UserService userService, ProjectRepository projectRepository, ProjectService projectService,TeamRoleRepository teamRoleRepository, ProjectRoleRepository projectRoleRepository) { - this.userService = userService; + super(userService); this.projectRepository = projectRepository; this.projectService = projectService; this.teamRoleRepository = teamRoleRepository; diff --git a/src/main/java/com/projecty/projectyweb/project/ProjectService.java b/src/main/java/com/projecty/projectyweb/project/ProjectService.java index 22f86c3..77603b2 100644 --- a/src/main/java/com/projecty/projectyweb/project/ProjectService.java +++ b/src/main/java/com/projecty/projectyweb/project/ProjectService.java @@ -20,17 +20,16 @@ import java.util.*; @Service -public class ProjectService { +public class ProjectService extends UserServiceField{ private final ProjectRepository projectRepository; - private final UserService userService; private final ProjectRoleRepository projectRoleRepository; private final ProjectRoleService projectRoleService; private final TeamRoleRepository teamRoleRepository; private final TaskRepository taskRepository; public ProjectService(ProjectRepository projectRepository, UserService userService, ProjectRoleRepository projectRoleRepository, ProjectRoleService projectRoleService, TeamRoleRepository teamRoleRepository, TaskRepository taskRepository) { + super(userService); this.projectRepository = projectRepository; - this.userService = userService; this.projectRoleRepository = projectRoleRepository; this.projectRoleService = projectRoleService; this.teamRoleRepository = teamRoleRepository; diff --git a/src/main/java/com/projecty/projectyweb/project/UserServiceField.java b/src/main/java/com/projecty/projectyweb/project/UserServiceField.java new file mode 100644 index 0000000..e7884ca --- /dev/null +++ b/src/main/java/com/projecty/projectyweb/project/UserServiceField.java @@ -0,0 +1,11 @@ +package com.projecty.projectyweb.project; + +import com.projecty.projectyweb.user.UserService; + +public class UserServiceField { + protected UserService userService; + + public UserServiceField(UserService userService) { + this.userService = userService; + } +}