+
+ {
+ IModel<List<String>> users = new LoadableDetachableModel<List<String>>() {
+ @Override
+ protected List<String> load() {
+ return _userAdmin.getUsers();
+ }
+ };
+ final DropDownChoice userChoice =
+ new DropDownChoice("userChoice", new Model(""), users, new MyChoiceRenderer());
+
+ IModel<List<String>> groups = new LoadableDetachableModel<List<String>>() {
+ @Override
+ protected List<String> load() {
+ return _userAdmin.getGroups();
+ }
+ };
+ final DropDownChoice groupChoice =
+ new DropDownChoice("groupChoice", new Model(""), groups, new MyChoiceRenderer());
+
+ Form userToGroupForm = new Form("userToGroupForm") {
+ @Override
+ protected void onSubmit() {
+ String user = userChoice.getValue();
+ String group = groupChoice.getValue();
+ if (!_userAdmin.getUsers().contains(user)) {
+ return;
+ }
+ if (!_userAdmin.getGroups().contains(group)) {
+ return;
+ }
+ if (_userAdmin.isInGroup(user, group)) {
+ info("User '" + user + "' is already in group '" + group + "'");
+ return;
+ }
+
+ try {
+ _userAdmin.addUserToGroup(user, group);
+ info("Added user '" + user + "' to group '" + group + "'");
+ }
+ catch (UserMgtException e) {
+ error("Could not add user '" + user + "' to group '" + group + "': " + e.getMessage());
+ }
+ }
+
+ ;
+ };
+ userToGroupForm.add(userChoice);
+ userToGroupForm.add(groupChoice);
+ add(userToGroupForm);
+ }