1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34 package info.magnolia.setup.for3_5;
35
36 import info.magnolia.cms.beans.config.ContentRepository;
37 import info.magnolia.cms.core.Content;
38 import info.magnolia.cms.core.HierarchyManager;
39 import info.magnolia.cms.core.ItemType;
40 import info.magnolia.cms.security.Realm;
41 import info.magnolia.module.InstallContext;
42 import info.magnolia.module.delta.AbstractRepositoryTask;
43 import info.magnolia.module.delta.TaskExecutionException;
44 import org.slf4j.Logger;
45 import org.slf4j.LoggerFactory;
46
47 import javax.jcr.RepositoryException;
48 import java.util.Collection;
49 import java.util.Iterator;
50
51
52
53
54
55
56
57 public class MoveMagnoliaUsersToRealmFolder extends AbstractRepositoryTask {
58 private static final Logger log = LoggerFactory.getLogger(MoveMagnoliaUsersToRealmFolder.class);
59
60 public MoveMagnoliaUsersToRealmFolder() {
61 super("Update Magnolia users repository structure", "Moves Magnolia admin users into /" + Realm.REALM_ADMIN + " folder.");
62 }
63
64 protected void doExecute(InstallContext installContext) throws RepositoryException, TaskExecutionException {
65
66 final HierarchyManager usersHm = installContext.getHierarchyManager(ContentRepository.USERS);
67
68 Collection users = usersHm.getRoot().getChildren(ItemType.USER);
69
70 Iterator iter = users.iterator();
71 while (iter.hasNext()) {
72 Content node = (Content) iter.next();
73 usersHm.getWorkspace().getSession().move(node.getHandle(), getAdminRealmFolder() + "/" + node.getName());
74 log.info("Moved user " + node.getName() + " to " + getAdminRealmFolder() + "/" + node.getName());
75 }
76 }
77
78 protected String getAdminRealmFolder() {
79 return "/" + Realm.REALM_ADMIN;
80 }
81 }