This commit is contained in:
@@ -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);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user