]> git.argeo.org Git - lgpl/argeo-commons.git/blob - org.argeo.security.core/src/org/argeo/security/core/SimpleRoleRegistration.java
Introduce ArgeoUser and ArgeoGroup
[lgpl/argeo-commons.git] / org.argeo.security.core / src / org / argeo / security / core / SimpleRoleRegistration.java
1 package org.argeo.security.core;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import java.util.Map;
6 import java.util.Set;
7
8 import org.apache.commons.logging.Log;
9 import org.apache.commons.logging.LogFactory;
10 import org.argeo.security.UserAdminService;
11
12 /**
13 * Register one or many roles via a user admin service. Does nothing if the role
14 * is already registered.
15 */
16 public class SimpleRoleRegistration implements Runnable {
17 private final static Log log = LogFactory
18 .getLog(SimpleRoleRegistration.class);
19
20 private String role;
21 private List<String> roles = new ArrayList<String>();
22 private UserAdminService userAdminService;
23
24 @Override
25 public void run() {
26 Set<String> existingRoles = userAdminService.listEditableRoles();
27 if (role != null && !existingRoles.contains(role))
28 newRole(role);
29 for (String r : roles) {
30 if (!existingRoles.contains(r))
31 newRole(r);
32 }
33 }
34
35 protected void newRole(String r) {
36 userAdminService.newRole(r);
37 log.info("Added role " + r + " required by application.");
38 }
39
40 public void register(UserAdminService userAdminService, Map<?, ?> properties) {
41 this.userAdminService = userAdminService;
42 run();
43 }
44
45 public void setRole(String role) {
46 this.role = role;
47 }
48
49 public void setRoles(List<String> roles) {
50 this.roles = roles;
51 }
52
53 public void setUserAdminService(UserAdminService userAdminService) {
54 this.userAdminService = userAdminService;
55 }
56
57 }