dev add tarifinfo by permission for user info
Test Workflow / test (push) Successful in 4s

This commit is contained in:
vladp
2026-02-03 15:05:03 +07:00
parent c38b86e1b9
commit 13324d4628
4 changed files with 27 additions and 10 deletions
@@ -11,6 +11,7 @@ import ru.soune.nocopy.dto.register.RegAnswer;
import ru.soune.nocopy.dto.register.RegRequest;
import ru.soune.nocopy.dto.user.UserDTO;
import ru.soune.nocopy.dto.user.UserRequest;
import ru.soune.nocopy.entity.tarif.TariffInfo;
import ru.soune.nocopy.entity.user.AuthToken;
import ru.soune.nocopy.entity.user.User;
import ru.soune.nocopy.exception.InvalidUserEmail;
@@ -20,6 +21,8 @@ import ru.soune.nocopy.mapper.UserMapper;
import ru.soune.nocopy.repository.AuthTokenRepository;
import ru.soune.nocopy.repository.UserRepository;
import ru.soune.nocopy.service.register.AuthService;
import ru.soune.nocopy.service.tariff.TariffInfoService;
import ru.soune.nocopy.service.tariff.TariffService;
import ru.soune.nocopy.service.user.UserService;
import java.util.Arrays;
@@ -44,12 +47,14 @@ public class UserController {
private final AuthService authService;
private final TariffService tariffService;
@GetMapping("/all")
public ResponseEntity<List<UserDTO>> getAllUsers() {
List<UserDTO> allUsers = userRepository.findAll().stream()
.map(u -> new UserDTO(u.getFullName(), u.getCompanyName(), u.getEmail(), u.isActive(),
u.getPhone(), u.getGenderType(),
u.getBirthday(), u.getCreatedAt(), u.getSubscriptionType()))
u.getBirthday(), u.getCreatedAt(), u.getSubscriptionType(), tariffService.getAllTariffs(), u.getPersonalTariffInfo()))
.toList();
return ResponseEntity.ok(allUsers);
@@ -62,11 +67,9 @@ public class UserController {
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
if (authToken != null) {
if (tokenOptional.isPresent()) {
User user = userRepository.findByEmail(email);
//TODO add mapper
if (user != null) {
UserDTO userDTO = userMapper.toDTO(user);
userDTO.setEmail(email);
@@ -76,6 +79,14 @@ public class UserController {
userDTO.setCompany(user.getCompany().getCompanyName());
}
if (user.canManageCompanySettings() || user.canLogin() && user.getCompany() == null) {
userDTO.setTariffs(tariffService.getAllTariffs());
TariffInfo personalTariffInfo = user.getPersonalTariffInfo();
userDTO.setTariffInfo(personalTariffInfo);
}
userDTO.setPhone(user.getPhone());
userDTO.setGenderType(user.getGenderType());
userDTO.setBirthday(user.getBirthday());
@@ -85,7 +96,8 @@ public class UserController {
return ResponseEntity.ok(userDTO);
}
} else {
return ResponseEntity.notFound().build();
}
return ResponseEntity.notFound().build();
@@ -4,11 +4,14 @@ import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import ru.soune.nocopy.dto.tarriff.TariffDTO;
import ru.soune.nocopy.entity.tarif.TariffInfo;
import ru.soune.nocopy.entity.user.GenderType;
import ru.soune.nocopy.entity.user.SubscriptionType;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
@Data
@AllArgsConstructor
@@ -24,4 +27,6 @@ public class UserDTO {
private LocalDate birthday;
private LocalDateTime createdAt;
private SubscriptionType subscriptionType;
private List<TariffDTO> tariffs;
private TariffInfo tariffInfo;
}
@@ -1,7 +1,7 @@
package ru.soune.nocopy.entity.user;
public class Permission {
public static final long LOGIN_BIT = 1L << 0;
public static final long LOGIN_BIT = 1L;
public static final long COMPANY_SETTINGS_BIT = 1L << 1;
public static final long DEFAULT_USER_PERMISSIONS = LOGIN_BIT;
public static final long COMPANY_ADMIN_PERMISSIONS =
@@ -70,8 +70,6 @@ public class AuthService {
user.setPhone(registerRequest.getPhone());
}
user.grantPermission(Permission.LOGIN_BIT);
User savedUser = userRepository.save(user);
AuthToken authToken = genereateAuthToken(savedUser);
@@ -160,7 +158,8 @@ public class AuthService {
tariffInfoService.addTariffInfo(companyTariff);
user.setCompany(company);
user.grantPermission(Permission.COMPANY_SETTINGS_BIT);
user.setPersonalTariffInfo(companyTariff);
user.grantPermission(Permission.COMPANY_ADMIN_PERMISSIONS);
}
private void createIndividualAccount(User user) {
@@ -169,5 +168,6 @@ public class AuthService {
tariffInfoService.addTariffInfo(personalTariff);
user.setPersonalTariffInfo(personalTariff);
user.grantPermission(Permission.DEFAULT_USER_PERMISSIONS);
}
}