Salome HOME
d11620ebe5422757e38a2bede4308331b8359ccb
[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.hibernate.Session;
9 import org.hibernate.Transaction;
10 import org.splat.kernel.User;
11 import org.splat.kernel.UserDirectory;
12 import org.splat.simer.UploadBaseNextAction;
13 import org.splat.som.Database;
14
15
16 public class ImportUserAction extends UploadBaseNextAction {
17
18     private List<User> users;
19     private Set<User>  newsers;
20
21     private static final long serialVersionUID = 1516715800624817965L;
22
23 //  ==============================================================================================================================
24 //  Action methods
25 //  ==============================================================================================================================
26
27     public String doImport () {
28 //  -------------------------
29       Session      connex  = Database.getSession();
30       Transaction  transax = connex.beginTransaction();
31       try {
32         User       user    = getConnectedUser();     // The database administrator
33         File       updir   = Database.getDownloadDirectory(user);
34         File       upfile  = new File(updir.getPath() + "/" + filename);
35
36         newsers = UserDirectory.importUsers(upfile);
37         users   = UserDirectory.selectAllUsers();
38         for (Iterator<User> i=users.iterator(); i.hasNext(); ) {
39           User next = i.next();
40           if (!next.equals(user)) continue;
41           i.remove();                                // Just for not showing the corresponding reserved username
42           break;
43         }
44         transax.commit();
45         return SUCCESS;
46       }
47       catch (Exception error) {
48         return ERROR;           
49       }
50     }
51
52 //  ==============================================================================================================================
53 //  Getters
54 //  ==============================================================================================================================
55
56     public List<User> getUsers () {
57 //  -----------------------------
58       return  users;
59     }
60
61     public boolean isNew (User user) {
62 //  --------------------------------
63       return newsers.contains(user);
64     }
65 }