package org.argeo.security.core; import java.util.List; import java.util.Map; import java.util.Set; import org.argeo.security.UserAdminService; /** * Register one or many roles via a user admin service. Does nothing if the role * is already registered. */ public class SimpleRoleRegistration implements Runnable { private String role; private List roles; private UserAdminService userAdminService; @Override public void run() { Set existingRoles = userAdminService.listEditableRoles(); if (role != null && !existingRoles.contains(role)) userAdminService.newRole(role); for (String r : roles) { if (!existingRoles.contains(r)) userAdminService.newRole(r); } } public void register(UserAdminService userAdminService, Map properties) { this.userAdminService = userAdminService; run(); } public void setRole(String role) { this.role = role; } public void setRoles(List roles) { this.roles = roles; } public void setUserAdminService(UserAdminService userAdminService) { this.userAdminService = userAdminService; } }