1 package de.tivsource.page.admin.backup;
2
3 import java.io.BufferedWriter;
4 import java.io.File;
5 import java.io.FileWriter;
6 import java.io.IOException;
7 import java.text.SimpleDateFormat;
8 import java.util.Iterator;
9 import java.util.List;
10
11 import org.apache.logging.log4j.LogManager;
12 import org.apache.logging.log4j.Logger;
13
14 import de.tivsource.page.dao.administration.UserDaoLocal;
15 import de.tivsource.page.entity.administration.Role;
16 import de.tivsource.page.entity.administration.User;
17
18 public class BackupUser {
19
20
21
22
23 private static final Logger LOGGER = LogManager.getLogger(BackupUser.class);
24
25 private static final int MAX = 1500;
26
27 private static UserDaoLocal userDaoLocal;
28
29 public static void setUserDaoLocal(UserDaoLocal userDaoLocal) {
30 BackupUser.userDaoLocal = userDaoLocal;
31 }
32
33 public static File getBackupFile() throws IOException {
34 LOGGER.info("getBackupFile() aufgerufen.");
35
36
37 File backupFile = new File("/tmp/user.csv");
38 FileWriter backupFileWriter = new FileWriter(backupFile);
39 BufferedWriter backupFileWriterOut = new BufferedWriter(backupFileWriter);
40
41
42 backupFileWriterOut.write("[Format Definition] => uuid|username|email|firstname|lastname|password|roles|created|modified|modifiedBy|modifiedAddress|");
43
44 Iterator<User> typeIterator = userDaoLocal.findAll(0, MAX).iterator();
45 while(typeIterator.hasNext()) {
46 User next = typeIterator.next();
47 backupFileWriterOut.write("\n");
48 backupFileWriterOut.write(convertToCsvLine(next));
49 }
50 backupFileWriterOut.close();
51 backupFileWriter.close();
52
53 return backupFile;
54 }
55
56 private static String convertToCsvLine(User next) {
57
58
59
60 StringBuffer nextString = new StringBuffer();
61
62 nextString.append(next.getUuid());
63 nextString.append("|");
64
65 nextString.append(next.getUsername());
66 nextString.append("|");
67
68 nextString.append(next.getEmail());
69 nextString.append("|");
70
71 nextString.append(next.getFirstname());
72 nextString.append("|");
73
74 nextString.append(next.getLastname());
75 nextString.append("|");
76
77 nextString.append(next.getPassword());
78 nextString.append("|");
79
80 nextString.append(generateRoles(next.getRoles()));
81 nextString.append("|");
82
83 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
84 nextString.append(simpleDateFormat.format(next.getCreated()));
85 nextString.append("|");
86
87 nextString.append(simpleDateFormat.format(next.getModified()));
88 nextString.append("|");
89
90 nextString.append(next.getModifiedBy());
91 nextString.append("|");
92
93 nextString.append(next.getModifiedAddress());
94 nextString.append("|");
95
96 return nextString.toString();
97 }
98
99 private static String generateRoles(List<Role> roles) {
100 StringBuffer nextString = new StringBuffer();
101 Iterator<Role> tagIterator = roles.iterator();
102 while(tagIterator.hasNext()) {
103 Role next = tagIterator.next();
104 nextString.append(next.getUuid());
105 nextString.append(";");
106 }
107 return nextString.toString();
108 }
109
110 }