= Транзакции == Прифаќање на пријава и зачувување на приложениот feedback {{{ @Transactional public void accept(BBUser creator, Integer reqId) { ProjectRequests prReq = getRequestById(reqId); prReq.setStatus(Status.ACCEPTED); feedbackService.create(creator,FeedbackFor.P,prReq); projectService.addDeveloperToProject(prReq.getProject(), prReq.getCreator()); prReqRepo.save(prReq); } }}} == Одбивање на пријава и зачувување на прилоѓениот feedback {{{ @Transactional public void deny(Integer reqId, String desc, BBUser creator) { ProjectRequests prReq = getRequestById(reqId); prReq.setStatus(Status.DENIED); feedbackService.create(desc,creator,FeedbackFor.P,prReq); prReqRepo.save(prReq); } }}} == Ажурирање на постоечка улога {{{ @Transactional public void updateRole(Integer id, AddRoleDTOEntities addRoleDTO) { ProjectRole existingRole = projectRoleRepository.findById(id).orElseThrow(() -> new IllegalArgumentException("bad role id")); projectRolePermissionRepository.deleteAllByIdRole(existingRole); existingRole.setName(addRoleDTO.getName()); existingRole.setOverrideType(addRoleDTO.getProjectResourcePermissionOverrideType().toString()); projectRoleRepository.save(existingRole); List newGlobalPermissions = mapGlobalsToProjectRolePermissions(existingRole, addRoleDTO.getGlobalPermissions()); List newPerResourcePermissions = mapPerResourceToProjectRolePermissions(existingRole,addRoleDTO.getPermissionsResourceWrappers()); List resourceOverrides = mapToResourceOverrides(getResources(addRoleDTO.getPermissionsResourceWrappers()),newPerResourcePermissions); projectRolePermissionRepository.saveAll(newGlobalPermissions); projectRolePermissionRepository.saveAll(newPerResourcePermissions); projectRolePermissionResourceOverrideRepository.saveAll(resourceOverrides); } }}} === Додавање на нова улога во проект {{{ @Transactional public void addRole(AddRoleDTOEntities addRoleDTO) { ProjectRole role = projectRoleRepository.save( new ProjectRole( addRoleDTO.getProject(), addRoleDTO.getName(), addRoleDTO.getProjectResourcePermissionOverrideType().toString() ) ); List entities = mapPerResourceToProjectRolePermissions(role, addRoleDTO.getPermissionsResourceWrappers()); projectRolePermissionRepository.saveAll(mapGlobalsToProjectRolePermissions(role, addRoleDTO.getGlobalPermissions())); projectRolePermissionRepository.saveAll(entities); projectRolePermissionResourceOverrideRepository.saveAll(mapToResourceOverrides( getResources(addRoleDTO.getPermissionsResourceWrappers()), entities )); }}}