63 lines
2.2 KiB
Java
63 lines
2.2 KiB
Java
package enseirb.myinpulse.service;
|
|
|
|
import enseirb.myinpulse.model.Administrator;
|
|
import enseirb.myinpulse.model.Entrepreneur;
|
|
import enseirb.myinpulse.model.Project;
|
|
import enseirb.myinpulse.model.User;
|
|
import enseirb.myinpulse.service.database.AdministratorService;
|
|
import enseirb.myinpulse.service.database.EntrepreneurService;
|
|
import enseirb.myinpulse.service.database.ProjectService;
|
|
import enseirb.myinpulse.service.database.UserService;
|
|
|
|
import org.apache.logging.log4j.LogManager;
|
|
import org.apache.logging.log4j.Logger;
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.server.ResponseStatusException;
|
|
|
|
@Service
|
|
public class UtilsService {
|
|
|
|
protected static final Logger logger = LogManager.getLogger();
|
|
|
|
private final UserService userService;
|
|
private final ProjectService projectService;
|
|
private final EntrepreneurService entrepreneurService;
|
|
private final AdministratorService administratorService;
|
|
|
|
@Autowired
|
|
UtilsService(
|
|
ProjectService projectService,
|
|
UserService userService,
|
|
EntrepreneurService entrepreneurService,
|
|
AdministratorService administratorService) {
|
|
this.userService = userService;
|
|
this.projectService = projectService;
|
|
this.entrepreneurService = entrepreneurService;
|
|
this.administratorService = administratorService;
|
|
}
|
|
|
|
// TODO: test?
|
|
public Boolean isAllowedToCheckProject(String mail, long projectId) {
|
|
if (isAnAdmin(mail)) {
|
|
return true;
|
|
}
|
|
User user = this.userService.getUserByEmail(mail);
|
|
Entrepreneur entrepreneur = this.entrepreneurService.getEntrepreneurById(user.getIdUser());
|
|
Project project = this.projectService.getProjectById(projectId);
|
|
return entrepreneur.getProjectParticipation() == project;
|
|
}
|
|
|
|
// TODO: test
|
|
Boolean isAnAdmin(String mail) {
|
|
try {
|
|
long userId = this.userService.getUserByEmail(mail).getIdUser();
|
|
Administrator a = this.administratorService.getAdministratorById(userId);
|
|
return true;
|
|
} catch (ResponseStatusException e) {
|
|
logger.info(e);
|
|
return false;
|
|
}
|
|
}
|
|
}
|