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.register.RegRequest;
|
||||||
import ru.soune.nocopy.dto.user.UserDTO;
|
import ru.soune.nocopy.dto.user.UserDTO;
|
||||||
import ru.soune.nocopy.dto.user.UserRequest;
|
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.AuthToken;
|
||||||
import ru.soune.nocopy.entity.user.User;
|
import ru.soune.nocopy.entity.user.User;
|
||||||
import ru.soune.nocopy.exception.InvalidUserEmail;
|
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.AuthTokenRepository;
|
||||||
import ru.soune.nocopy.repository.UserRepository;
|
import ru.soune.nocopy.repository.UserRepository;
|
||||||
import ru.soune.nocopy.service.register.AuthService;
|
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 ru.soune.nocopy.service.user.UserService;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
@@ -44,12 +47,14 @@ public class UserController {
|
|||||||
|
|
||||||
private final AuthService authService;
|
private final AuthService authService;
|
||||||
|
|
||||||
|
private final TariffService tariffService;
|
||||||
|
|
||||||
@GetMapping("/all")
|
@GetMapping("/all")
|
||||||
public ResponseEntity<List<UserDTO>> getAllUsers() {
|
public ResponseEntity<List<UserDTO>> getAllUsers() {
|
||||||
List<UserDTO> allUsers = userRepository.findAll().stream()
|
List<UserDTO> allUsers = userRepository.findAll().stream()
|
||||||
.map(u -> new UserDTO(u.getFullName(), u.getCompanyName(), u.getEmail(), u.isActive(),
|
.map(u -> new UserDTO(u.getFullName(), u.getCompanyName(), u.getEmail(), u.isActive(),
|
||||||
u.getPhone(), u.getGenderType(),
|
u.getPhone(), u.getGenderType(),
|
||||||
u.getBirthday(), u.getCreatedAt(), u.getSubscriptionType()))
|
u.getBirthday(), u.getCreatedAt(), u.getSubscriptionType(), tariffService.getAllTariffs(), u.getPersonalTariffInfo()))
|
||||||
.toList();
|
.toList();
|
||||||
|
|
||||||
return ResponseEntity.ok(allUsers);
|
return ResponseEntity.ok(allUsers);
|
||||||
@@ -62,11 +67,9 @@ public class UserController {
|
|||||||
|
|
||||||
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
Optional<AuthToken> tokenOptional = authTokenRepository.findByToken(token);
|
||||||
|
|
||||||
AuthToken authToken = tokenOptional.orElseThrow(() -> new NotFoundAuthToken("Token: " + token + "not found"));
|
if (tokenOptional.isPresent()) {
|
||||||
|
|
||||||
if (authToken != null) {
|
|
||||||
User user = userRepository.findByEmail(email);
|
User user = userRepository.findByEmail(email);
|
||||||
//TODO add mapper
|
|
||||||
if (user != null) {
|
if (user != null) {
|
||||||
UserDTO userDTO = userMapper.toDTO(user);
|
UserDTO userDTO = userMapper.toDTO(user);
|
||||||
userDTO.setEmail(email);
|
userDTO.setEmail(email);
|
||||||
@@ -76,6 +79,14 @@ public class UserController {
|
|||||||
userDTO.setCompany(user.getCompany().getCompanyName());
|
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.setPhone(user.getPhone());
|
||||||
userDTO.setGenderType(user.getGenderType());
|
userDTO.setGenderType(user.getGenderType());
|
||||||
userDTO.setBirthday(user.getBirthday());
|
userDTO.setBirthday(user.getBirthday());
|
||||||
@@ -85,7 +96,8 @@ public class UserController {
|
|||||||
|
|
||||||
return ResponseEntity.ok(userDTO);
|
return ResponseEntity.ok(userDTO);
|
||||||
}
|
}
|
||||||
|
} else {
|
||||||
|
return ResponseEntity.notFound().build();
|
||||||
}
|
}
|
||||||
|
|
||||||
return ResponseEntity.notFound().build();
|
return ResponseEntity.notFound().build();
|
||||||
|
|||||||
@@ -4,11 +4,14 @@ import lombok.AllArgsConstructor;
|
|||||||
import lombok.Builder;
|
import lombok.Builder;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.NoArgsConstructor;
|
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.GenderType;
|
||||||
import ru.soune.nocopy.entity.user.SubscriptionType;
|
import ru.soune.nocopy.entity.user.SubscriptionType;
|
||||||
|
|
||||||
import java.time.LocalDate;
|
import java.time.LocalDate;
|
||||||
import java.time.LocalDateTime;
|
import java.time.LocalDateTime;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
@@ -24,4 +27,6 @@ public class UserDTO {
|
|||||||
private LocalDate birthday;
|
private LocalDate birthday;
|
||||||
private LocalDateTime createdAt;
|
private LocalDateTime createdAt;
|
||||||
private SubscriptionType subscriptionType;
|
private SubscriptionType subscriptionType;
|
||||||
|
private List<TariffDTO> tariffs;
|
||||||
|
private TariffInfo tariffInfo;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package ru.soune.nocopy.entity.user;
|
package ru.soune.nocopy.entity.user;
|
||||||
|
|
||||||
public class Permission {
|
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 COMPANY_SETTINGS_BIT = 1L << 1;
|
||||||
public static final long DEFAULT_USER_PERMISSIONS = LOGIN_BIT;
|
public static final long DEFAULT_USER_PERMISSIONS = LOGIN_BIT;
|
||||||
public static final long COMPANY_ADMIN_PERMISSIONS =
|
public static final long COMPANY_ADMIN_PERMISSIONS =
|
||||||
|
|||||||
@@ -70,8 +70,6 @@ public class AuthService {
|
|||||||
user.setPhone(registerRequest.getPhone());
|
user.setPhone(registerRequest.getPhone());
|
||||||
}
|
}
|
||||||
|
|
||||||
user.grantPermission(Permission.LOGIN_BIT);
|
|
||||||
|
|
||||||
User savedUser = userRepository.save(user);
|
User savedUser = userRepository.save(user);
|
||||||
|
|
||||||
AuthToken authToken = genereateAuthToken(savedUser);
|
AuthToken authToken = genereateAuthToken(savedUser);
|
||||||
@@ -160,7 +158,8 @@ public class AuthService {
|
|||||||
tariffInfoService.addTariffInfo(companyTariff);
|
tariffInfoService.addTariffInfo(companyTariff);
|
||||||
|
|
||||||
user.setCompany(company);
|
user.setCompany(company);
|
||||||
user.grantPermission(Permission.COMPANY_SETTINGS_BIT);
|
user.setPersonalTariffInfo(companyTariff);
|
||||||
|
user.grantPermission(Permission.COMPANY_ADMIN_PERMISSIONS);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void createIndividualAccount(User user) {
|
private void createIndividualAccount(User user) {
|
||||||
@@ -169,5 +168,6 @@ public class AuthService {
|
|||||||
tariffInfoService.addTariffInfo(personalTariff);
|
tariffInfoService.addTariffInfo(personalTariff);
|
||||||
|
|
||||||
user.setPersonalTariffInfo(personalTariff);
|
user.setPersonalTariffInfo(personalTariff);
|
||||||
|
user.grantPermission(Permission.DEFAULT_USER_PERMISSIONS);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user