1 package org
.argeo
.security
.ui
.admin
.commands
;
3 import org
.argeo
.ArgeoException
;
4 import org
.argeo
.security
.UserAdminService
;
5 import org
.argeo
.security
.ui
.admin
.views
.RolesView
;
6 import org
.eclipse
.core
.commands
.AbstractHandler
;
7 import org
.eclipse
.core
.commands
.ExecutionEvent
;
8 import org
.eclipse
.core
.commands
.ExecutionException
;
9 import org
.eclipse
.ui
.handlers
.HandlerUtil
;
11 /** Add a new role. */
12 public class AddRole
extends AbstractHandler
{
13 public final static String COMMAND_ID
= "org.argeo.security.ui.admin.addRole";
14 private UserAdminService userAdminService
;
15 private String rolePrefix
= "ROLE_";
17 public Object
execute(ExecutionEvent event
) throws ExecutionException
{
18 RolesView rolesView
= (RolesView
) HandlerUtil
19 .getActiveWorkbenchWindow(event
).getActivePage()
20 .findView(RolesView
.ID
);
21 String role
= rolesView
.getNewRole();
22 if (role
.trim().equals(""))
24 if (role
.equals(rolesView
.getAddNewRoleText()))
26 role
= role
.trim().toUpperCase();
27 if (!role
.startsWith(rolePrefix
))
28 role
= rolePrefix
+ role
;
29 if (userAdminService
.listEditableRoles().contains(role
))
30 throw new ArgeoException("Role " + role
+ " already exists");
31 userAdminService
.newRole(role
);
36 public void setUserAdminService(UserAdminService userAdminService
) {
37 this.userAdminService
= userAdminService
;