Salome HOME
Fix for mantis #0022093: To exclude the "In-Draft" state from drop-down list during...
[tools/siman.git] / Workspace / Siman / src / org / splat / simer / admin / ImportUserAction.java
1 package org.splat.simer.admin;
2
3 import java.io.File;
4 import java.util.Iterator;
5 import java.util.List;
6 import java.util.Set;
7
8 import org.splat.dal.bo.kernel.User;
9 import org.splat.service.UserService;
10 import org.splat.simer.AbstractUploadNextAction;
11
12 /**
13  * Action for importing users from file to the database.
14  */
15 public class ImportUserAction extends AbstractUploadNextAction {
16
17         /**
18          * Serial version ID.
19          */
20         private static final long serialVersionUID = 1516715800624817965L;
21
22         /**
23          * All users in the database.
24          */
25         private transient List<User> _users;
26         /**
27          * New just imported users which were not in the database before.
28          */
29         private transient Set<User> _newsers;
30         /**
31          * Injected user service.
32          */
33         private UserService _userService;
34
35         // ==============================================================================================================================
36         // Action methods
37         // ==============================================================================================================================
38
39         /**
40          * Import users from file into the database.
41          * 
42          * @return SUCCESS if ok, otherwise - ERROR
43          */
44         public String doImport() {
45                 String res = SUCCESS;
46                 try {
47                         User user = getConnectedUser(); // The database administrator
48                         File updir = getRepositoryService().getDownloadDirectory(user);
49                         File upfile = new File(updir.getPath() + "/" + _fileName);
50
51                         _newsers = getUserService().importUsers(upfile);
52                         _users = getUserService().selectAllUsers();
53                         for (Iterator<User> i = _users.iterator(); i.hasNext();) {
54                                 User next = i.next();
55                                 if (next.equals(user)) {
56                                         i.remove(); // Just for not showing the corresponding reserved username
57                                         break;
58                                 }
59                         }
60
61                         initializationFullScreenContext("sysadmin", "none", "open");
62                 } catch (Exception error) {
63                         res = ERROR;
64                 }
65                 return res;
66         }
67
68         // ==============================================================================================================================
69         // Getters
70         // ==============================================================================================================================
71
72         /**
73          * Get all users from the database.
74          * 
75          * @return list of all users from the database
76          */
77         public List<User> getUsers() {
78                 return _users;
79         }
80
81         /**
82          * Check if the user is a new one that is it was not in the database before.
83          * 
84          * @param user
85          *            the user to check
86          * @return true if the user is new
87          */
88         public boolean isNew(final User user) {
89                 return _newsers.contains(user);
90         }
91
92         /**
93          * Get the userService.
94          * 
95          * @return the userService
96          */
97         public UserService getUserService() {
98                 return _userService;
99         }
100
101         /**
102          * Set the userService.
103          * 
104          * @param userService
105          *            the userService to set
106          */
107         public void setUserService(final UserService userService) {
108                 _userService = userService;
109         }
110 }