package module.projects.domain; import pt.ist.bennu.core.applicationTier.Authenticate.UserView; import pt.ist.bennu.core.domain.RoleType; import pt.ist.bennu.core.domain.User; import pt.ist.expenditureTrackingSystem.domain.ExpenditureTrackingSystem; import pt.ist.expenditureTrackingSystem.domain.organization.Person; import pt.ist.expenditureTrackingSystem.domain.organization.Unit; public class AccessControl { public static boolean isUserAllowedToViewDetailedProjectInfo(final Unit unit, final User user) { final Person person = user.getExpenditurePerson(); return unit.isResponsible(person) || unit.getObserversSet().contains(person) || UserView.getCurrentUser().hasRoleType(RoleType.MANAGER) || unit.isAccountingEmployee(person) || unit.isProjectAccountingEmployee(person) || unit.isAccountManager(person) || unit.isAccountingResponsible(person) || ExpenditureTrackingSystem.isAccountingManagerGroupMember(user) || ExpenditureTrackingSystem.isProjectAccountingManagerGroupMember(user) || ExpenditureTrackingSystem.isFundCommitmentManagerGroupMember(user) || ExpenditureTrackingSystem.isTreasuryMemberGroupMember(user) || ExpenditureTrackingSystem.isAcquisitionsProcessAuditorGroupMember(user); } }