e.g. Calendar Search Help
You must enter a value before pressing Search
xplanner

Class: com.technoetic.xplanner.security.install.BootstrapSystemUser   ©

 OK to copy?
01 package com.technoetic.xplanner.security.install;
02 
03 import com.technoetic.xplanner.db.hibernate.GlobalSessionFactory;
04 import com.technoetic.xplanner.db.hibernate.HibernateHelper;
05 import com.technoetic.xplanner.domain.Person;
06 import com.technoetic.xplanner.domain.Role;
07 import com.technoetic.xplanner.domain.RoleAssociation;
08 import com.technoetic.xplanner.security.auth.Permission;
09 import net.sf.hibernate.Hibernate;
10 import net.sf.hibernate.HibernateException;
11 import net.sf.hibernate.Session;
12 import org.apache.log4j.Logger;
13 
14 import java.util.Date;
15 import java.util.Iterator;
16 import java.util.List;
17 
18 public class BootstrapSystemUser {
19     private Logger log = Logger.getLogger(getClass());
20 
21     public void run(String sysadminId) {
22         try {
23             HibernateHelper.initializeHibernate();
24             Session session = GlobalSessionFactory.get().openSession();
25             try {
26                 List people = session.find("from person in class " + Person.class.getName() +
27                                            " where person.userId = ?",
28                                            sysadminId, Hibernate.STRING);
29                 Iterator personItr = people.iterator();
30                 Person sysadmin;
31                 if (personItr.hasNext()) {
32                     sysadmin = (Person) personItr.next();
33                     log.info("using " + sysadminId + " user");
34                 } else {
35                     log.info("creating " + sysadminId + " user");
36                     sysadmin = new Person();
37                     sysadmin.setUserId(sysadminId);
38                     sysadmin.setName(sysadminId);
39                     sysadmin.setInitials("SYS");
40                     sysadmin.setPassword("1tGWp1Bdm02Sw4bD7/o0N2ao405Tf8kjxGBW/A=="); // password=admin
41                     sysadmin.setLastUpdateTime(new Date());
42                     session.save(sysadmin);
43                 }
44                 Role viewerRole = initializeRole(session, "viewer", 1, 8);
45                 Role editorRole = initializeRole(session, "editor", 2, 7);
46                 Role adminRole = initializeRole(session, "admin", 3, 6);
47                 Role sysadminRole = initializeRole(session, "sysadmin", 4, 5);
48                 addRoleAssociation(session, sysadminRole.getId(), sysadmin.getId(), 0);
49                 createPermission(session, sysadminRole, "%", "%");
50                 createPermission(session, adminRole, "%", "admin%");
51                 createPermission(session, editorRole, "%", "create%");
52                 createPermission(session, editorRole, "%", "edit%");
53                 createPermission(session, editorRole, "%", "integrate%");
54                 createPermission(session, editorRole, "%", "delete%");
55                 createPermission(session, viewerRole, "%", "read%");
56                 session.flush();
Rate57                 session.connection().commit();
58             } finally {
59                 session.close();
60             }
61         } catch (Exception e) {
62             e.printStackTrace();
63         }
64     }
65 
66     private void addRoleAssociation(Session session, int roleId, int personId, int projectId) throws HibernateException {
67         session.save(new RoleAssociation(projectId, personId, roleId));
68     }
69 
70     private void createPermission(Session session, Role sysadminRole, String resourceType, String permissionName) throws HibernateException {
71         Permission permission = new Permission(resourceType, 0, sysadminRole.getId(), permissionName);
72         session.save(permission);
73     }
74 
75     private Role initializeRole(Session session, String roleName, int left, int right) throws HibernateException {
76         List roles = session.find("from role in class " + Role.class.getName() + " where role.name = ?",
77                 roleName, Hibernate.STRING);
78         Role role;
79         if (roles.size() == 0) {
80             log.info("creating role: " + roleName);
81             role = new Role(roleName);
82             role.setLeft(left);
83             role.setRight(right);
84             session.save(role);
85         } else {
86             role = (Role)roles.get(0);
87         }
88         return role;
89     }
90 
91     public static void main(String[] args) {
92         String sysadminId = "sysadmin";
93         if (args.length == 1) {
94             sysadminId = args[0];
95         }
96         BootstrapSystemUser action = new BootstrapSystemUser();
97         action.run(sysadminId);
98     }
99 }

            
All Examples in File:
Example
Line
Rating (found
useful by...)
57 0% of 0