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.for4_5;
35
36 import info.magnolia.cms.core.MgnlNodeType;
37 import info.magnolia.jcr.util.NodeUtil;
38 import info.magnolia.module.InstallContext;
39 import info.magnolia.module.delta.AbstractRepositoryTask;
40 import info.magnolia.module.delta.NewPropertyTask;
41 import info.magnolia.module.delta.PropertyExistsDelegateTask;
42 import info.magnolia.module.delta.TaskExecutionException;
43 import info.magnolia.repository.RepositoryConstants;
44
45 import javax.jcr.Node;
46 import javax.jcr.RepositoryException;
47 import javax.jcr.Session;
48
49 import org.apache.commons.lang.StringUtils;
50
51
52
53
54
55
56
57 public class UpdateUserManagers extends AbstractRepositoryTask{
58
59 public UpdateUserManagers() {
60 super("User managers setup update", "Checks for conditions to create maxFailedLoginAttempts and lockTimePeriod properties. If passes maxFailedLoginAttempts property is set to default value 5 and lockTimePeriod to 0.");
61 }
62
63 @Override
64 protected void doExecute(InstallContext ctx) throws RepositoryException, TaskExecutionException {
65
66 Session session = ctx.getJCRSession(RepositoryConstants.CONFIG);
67
68 for (Node node : NodeUtil.getNodes(session.getRootNode().getNode("server").getNode("security").getNode("userManagers"), MgnlNodeType.NT_CONTENTNODE)) {
69 if(node.hasProperty("class")){
70 String className = node.getProperty("class").getString();
71 if (className.equals("info.magnolia.cms.security.MgnlUserManager") || className.equals("info.magnolia.cms.security.SystemUserManager")){
72 PropertyExistsDelegateTask updateTask = new PropertyExistsDelegateTask("", "", RepositoryConstants.CONFIG, "/server" + StringUtils.substringAfter(node.getPath(), "/server"), "maxFailedLoginAttempts", null, new NewPropertyTask("", "", RepositoryConstants.CONFIG, "/server" + StringUtils.substringAfter(node.getPath(), "/server"), "maxFailedLoginAttempts", "5"));
73 PropertyExistsDelegateTask updateTask2 = new PropertyExistsDelegateTask("", "", RepositoryConstants.CONFIG, "/server" + StringUtils.substringAfter(node.getPath(), "/server"), "lockTimePeriod", null, new NewPropertyTask("", "", RepositoryConstants.CONFIG, "/server" + StringUtils.substringAfter(node.getPath(), "/server"), "lockTimePeriod", "0"));
74 updateTask.execute(ctx);
75 updateTask2.execute(ctx);
76 }
77 }
78 }
79 }
80 }