From: Mathieu Baudier Date: Fri, 22 Mar 2013 14:06:51 +0000 (+0000) Subject: Merge https://www.argeo.org/bugzilla/show_bug.cgi?id=141 X-Git-Tag: svn/tags/argeo-commons-1.2.1~6 X-Git-Url: http://git.argeo.org/?a=commitdiff_plain;h=745cc0eace3a2ac96593af3400f8395807bbcc06;p=lgpl%2Fargeo-commons.git Merge https://argeo.org/bugzilla/show_bug.cgi?id=141 git-svn-id: https://svn.argeo.org/commons/branches/1.x@6195 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc --- diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/SimpleRoleRegistration.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/SimpleRoleRegistration.java new file mode 100644 index 000000000..b20a84284 --- /dev/null +++ b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/core/SimpleRoleRegistration.java @@ -0,0 +1,46 @@ +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; + } + +}