diff --git a/resources/view/login.html b/resources/view/login.html
index 8765ca8ff..d49ce5691 100644
--- a/resources/view/login.html
+++ b/resources/view/login.html
@@ -48,14 +48,6 @@
Sign in
type="button">
-
-
-
-
-
-
diff --git a/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java b/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java
index 6cffbe175..92da18ee7 100644
--- a/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java
+++ b/src/main/java/com/javarush/jira/bugtracking/attachment/FileUtil.java
@@ -7,33 +7,34 @@
import org.springframework.core.io.UrlResource;
import org.springframework.web.multipart.MultipartFile;
-import java.io.File;
-import java.io.FileOutputStream;
+
import java.io.IOException;
-import java.io.OutputStream;
import java.net.MalformedURLException;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
+
+
@UtilityClass
public class FileUtil {
private static final String ATTACHMENT_PATH = "./attachments/%s/";
public static void upload(MultipartFile multipartFile, String directoryPath, String fileName) {
+
if (multipartFile.isEmpty()) {
throw new IllegalRequestDataException("Select a file to upload.");
}
- File dir = new File(directoryPath);
- if (dir.exists() || dir.mkdirs()) {
- File file = new File(directoryPath + fileName);
- try (OutputStream outStream = new FileOutputStream(file)) {
- outStream.write(multipartFile.getBytes());
- } catch (IOException ex) {
- throw new IllegalRequestDataException("Failed to upload file" + multipartFile.getOriginalFilename());
- }
+ try {
+ Path dirPath = Paths.get(directoryPath);
+ Files.createDirectories(dirPath);
+ Path filePath = dirPath.resolve(fileName);
+ Files.write(filePath, multipartFile.getBytes());
+ } catch (IOException e) {
+ throw new IllegalRequestDataException("Failed to upload file" + multipartFile.getOriginalFilename());
}
+
}
public static Resource download(String fileLink) {
diff --git a/src/main/java/com/javarush/jira/login/User.java b/src/main/java/com/javarush/jira/login/User.java
index 812b6b7cc..29c7fbb83 100644
--- a/src/main/java/com/javarush/jira/login/User.java
+++ b/src/main/java/com/javarush/jira/login/User.java
@@ -36,17 +36,20 @@
public class User extends TimestampEntry implements HasIdAndEmail, Serializable {
@Serial
private static final long serialVersionUID = 1L;
+
@NoHtml
@Size(max = 32)
@Nullable
@Column(name = "display_name", nullable = false, unique = true)
String displayName;
+
@Column(name = "email", nullable = false, unique = true)
@Email
@NotBlank
@Size(max = 128)
@NoHtml // https://stackoverflow.com/questions/17480809
private String email;
+
@Column(name = "password")
@NotBlank(groups = {View.OnCreate.class})
@Size(min = 5, max = 128, groups = {View.OnCreate.class})
@@ -55,16 +58,19 @@ public class User extends TimestampEntry implements HasIdAndEmail, Serializable
@JsonInclude(JsonInclude.Include.NON_NULL)
@JsonView(View.OnCreate.class)
private String password;
+
@NotBlank
@Size(min = 2, max = 32)
@NoHtml
@Column(name = "first_name", nullable = false)
private String firstName;
+
@Size(max = 32)
@NoHtml
@Column(name = "last_name")
@Nullable
private String lastName;
+
@CollectionTable(name = "user_role",
joinColumns = @JoinColumn(name = "user_id"),
uniqueConstraints = @UniqueConstraint(columnNames = {"user_id", "role"}, name = "uk_user_role"))
diff --git a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java b/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java
deleted file mode 100644
index e8e05be05..000000000
--- a/src/main/java/com/javarush/jira/login/internal/sociallogin/handler/VkOAuth2UserDataHandler.java
+++ /dev/null
@@ -1,35 +0,0 @@
-package com.javarush.jira.login.internal.sociallogin.handler;
-
-import org.springframework.stereotype.Component;
-
-import java.util.List;
-import java.util.Map;
-
-@Component("vk")
-public class VkOAuth2UserDataHandler implements OAuth2UserDataHandler {
- @Override
- public String getFirstName(OAuth2UserData oAuth2UserData) {
- return getAttribute(oAuth2UserData, "first_name");
- }
-
- @Override
- public String getLastName(OAuth2UserData oAuth2UserData) {
- return getAttribute(oAuth2UserData, "last_name");
- }
-
- @Override
- public String getEmail(OAuth2UserData oAuth2UserData) {
- return oAuth2UserData.getData("email");
- }
-
- private String getAttribute(OAuth2UserData oAuth2UserData, String name) {
- List