CCM NG: Form for editing roles for a user
git-svn-id: https://svn.libreccm.org/ccm/ccm_ng@3984 8810af33-2d31-482b-a856-94f89814c4dfpull/2/head
parent
50e0809c4f
commit
f4e6b1da96
|
|
@ -20,7 +20,6 @@ package com.arsdigita.ui.admin.usersgroupsroles;
|
||||||
|
|
||||||
import com.arsdigita.bebop.ActionLink;
|
import com.arsdigita.bebop.ActionLink;
|
||||||
import com.arsdigita.bebop.BoxPanel;
|
import com.arsdigita.bebop.BoxPanel;
|
||||||
import com.arsdigita.bebop.ColumnPanel;
|
|
||||||
import com.arsdigita.bebop.Component;
|
import com.arsdigita.bebop.Component;
|
||||||
import com.arsdigita.bebop.ControlLink;
|
import com.arsdigita.bebop.ControlLink;
|
||||||
import com.arsdigita.bebop.Form;
|
import com.arsdigita.bebop.Form;
|
||||||
|
|
@ -59,19 +58,20 @@ import org.libreccm.security.ChallengeManager;
|
||||||
import org.libreccm.security.Group;
|
import org.libreccm.security.Group;
|
||||||
import org.libreccm.security.GroupManager;
|
import org.libreccm.security.GroupManager;
|
||||||
import org.libreccm.security.GroupRepository;
|
import org.libreccm.security.GroupRepository;
|
||||||
|
import org.libreccm.security.Role;
|
||||||
|
import org.libreccm.security.RoleManager;
|
||||||
|
import org.libreccm.security.RoleRepository;
|
||||||
import org.libreccm.security.User;
|
import org.libreccm.security.User;
|
||||||
import org.libreccm.security.UserManager;
|
import org.libreccm.security.UserManager;
|
||||||
import org.libreccm.security.UserRepository;
|
import org.libreccm.security.UserRepository;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Set;
|
|
||||||
import java.util.SortedSet;
|
import java.util.SortedSet;
|
||||||
import java.util.TooManyListenersException;
|
import java.util.TooManyListenersException;
|
||||||
import java.util.TreeSet;
|
import java.util.TreeSet;
|
||||||
import java.util.logging.Level;
|
|
||||||
import java.util.stream.IntStream;
|
import java.util.stream.IntStream;
|
||||||
import java.util.stream.StreamSupport;
|
|
||||||
|
|
||||||
import javax.mail.MessagingException;
|
import javax.mail.MessagingException;
|
||||||
|
|
||||||
|
|
@ -101,6 +101,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
private final BoxPanel userDetails;
|
private final BoxPanel userDetails;
|
||||||
private final Form emailForm;
|
private final Form emailForm;
|
||||||
private final Form editGroupMembershipsForm;
|
private final Form editGroupMembershipsForm;
|
||||||
|
private final Form editRoleMembershipsForm;
|
||||||
private final Form newUserForm;
|
private final Form newUserForm;
|
||||||
|
|
||||||
public UserAdmin() {
|
public UserAdmin() {
|
||||||
|
|
@ -587,7 +588,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
showEditGroupMembershipsForm(state);
|
showEditGroupMembershipsForm(state);
|
||||||
break;
|
break;
|
||||||
case UserGroupsRolesTableModel.ROW_ROLES:
|
case UserGroupsRolesTableModel.ROW_ROLES:
|
||||||
//ToDo
|
showEditRoleMembershipsForm(state);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -737,6 +738,9 @@ public class UserAdmin extends BoxPanel {
|
||||||
editGroupMembershipsForm = buildEditGroupMembershipsForm();
|
editGroupMembershipsForm = buildEditGroupMembershipsForm();
|
||||||
add(editGroupMembershipsForm);
|
add(editGroupMembershipsForm);
|
||||||
|
|
||||||
|
editRoleMembershipsForm = buildEditRoleMembershipsForm();
|
||||||
|
add(editRoleMembershipsForm);
|
||||||
|
|
||||||
newUserForm = buildNewUserForm();
|
newUserForm = buildNewUserForm();
|
||||||
add(newUserForm);
|
add(newUserForm);
|
||||||
}
|
}
|
||||||
|
|
@ -948,7 +952,8 @@ public class UserAdmin extends BoxPanel {
|
||||||
final User user = userRepository.findById(Long.parseLong(userIdStr));
|
final User user = userRepository.findById(Long.parseLong(userIdStr));
|
||||||
|
|
||||||
target.setLabel(new GlobalizedMessage(
|
target.setLabel(new GlobalizedMessage(
|
||||||
"ui.admin.user.edit_group_memberships", ADMIN_BUNDLE,
|
"ui.admin.user.edit_group_memberships",
|
||||||
|
ADMIN_BUNDLE,
|
||||||
new String[]{user.getName()}));
|
new String[]{user.getName()}));
|
||||||
});
|
});
|
||||||
links.add(header);
|
links.add(header);
|
||||||
|
|
@ -967,11 +972,8 @@ public class UserAdmin extends BoxPanel {
|
||||||
final CheckboxGroup groups = new CheckboxGroup(groupsSelector);
|
final CheckboxGroup groups = new CheckboxGroup(groupsSelector);
|
||||||
try {
|
try {
|
||||||
groups.addPrintListener(e -> {
|
groups.addPrintListener(e -> {
|
||||||
// final PageState state = e.getPageState();
|
|
||||||
final CheckboxGroup target = (CheckboxGroup) e.getTarget();
|
final CheckboxGroup target = (CheckboxGroup) e.getTarget();
|
||||||
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
// final UserRepository userRepository = cdiUtil.findBean(
|
|
||||||
// UserRepository.class);
|
|
||||||
final GroupRepository groupRepository = cdiUtil.findBean(
|
final GroupRepository groupRepository = cdiUtil.findBean(
|
||||||
GroupRepository.class);
|
GroupRepository.class);
|
||||||
|
|
||||||
|
|
@ -982,23 +984,16 @@ public class UserAdmin extends BoxPanel {
|
||||||
return g1.getName().compareTo(g2.getName());
|
return g1.getName().compareTo(g2.getName());
|
||||||
});
|
});
|
||||||
allGroups.addAll(groupRepository.findAll());
|
allGroups.addAll(groupRepository.findAll());
|
||||||
// final List<Group> assignedGroups = new ArrayList<>();
|
|
||||||
// final User user = userRepository.findById(Long.parseLong(
|
|
||||||
// selectedUserId.getSelectedKey(state)));
|
|
||||||
// user.getGroupMemberships().forEach(m -> {
|
|
||||||
// assignedGroups.add(m.getGroup());
|
|
||||||
// });
|
|
||||||
|
|
||||||
allGroups.forEach(g -> {
|
allGroups.forEach(g -> {
|
||||||
final Option option = new Option(
|
final Option option = new Option(
|
||||||
Long.toString(g.getPartyId()), new Text(g.getName()));
|
Long.toString(g.getPartyId()), new Text(g.getName()));
|
||||||
target.addOption(option);
|
target.addOption(option);
|
||||||
// if (assignedGroups.contains(g)) {
|
|
||||||
// target.setOptionSelected(option);
|
|
||||||
// }
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
} catch (TooManyListenersException ex) {
|
} catch (TooManyListenersException ex) {
|
||||||
|
//This should never happen, and if its happens something is
|
||||||
|
//seriously wrong...
|
||||||
throw new UncheckedWrapperException(ex);
|
throw new UncheckedWrapperException(ex);
|
||||||
}
|
}
|
||||||
form.add(groups);
|
form.add(groups);
|
||||||
|
|
@ -1049,12 +1044,16 @@ public class UserAdmin extends BoxPanel {
|
||||||
selectedUserId.getSelectedKey(state)));
|
selectedUserId.getSelectedKey(state)));
|
||||||
final List<Group> selectedGroups = new ArrayList<>();
|
final List<Group> selectedGroups = new ArrayList<>();
|
||||||
if (selectedGroupIds != null) {
|
if (selectedGroupIds != null) {
|
||||||
for (String selectedGroupId : selectedGroupIds) {
|
Arrays.stream(selectedGroupIds).forEach(id -> {
|
||||||
final Group group = groupRepository.findById(Long
|
final Group group = groupRepository.findById(
|
||||||
.parseLong(
|
Long.parseLong(id));
|
||||||
selectedGroupId));
|
|
||||||
selectedGroups.add(group);
|
selectedGroups.add(group);
|
||||||
}
|
});
|
||||||
|
// for (String selectedGroupId : selectedGroupIds) {
|
||||||
|
// final Group group = groupRepository.findById(Long
|
||||||
|
// .parseLong(selectedGroupId));
|
||||||
|
// selectedGroups.add(group);
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
final List<Group> assignedGroups = new ArrayList<>();
|
final List<Group> assignedGroups = new ArrayList<>();
|
||||||
user.getGroupMemberships().forEach(m -> {
|
user.getGroupMemberships().forEach(m -> {
|
||||||
|
|
@ -1071,6 +1070,8 @@ public class UserAdmin extends BoxPanel {
|
||||||
//Than check for removed groups
|
//Than check for removed groups
|
||||||
assignedGroups.forEach(g -> {
|
assignedGroups.forEach(g -> {
|
||||||
if (!selectedGroups.contains(g)) {
|
if (!selectedGroups.contains(g)) {
|
||||||
|
//The group is maybe detached or not fully loaded,
|
||||||
|
//therefore we load the group from the database.
|
||||||
final Group group = groupRepository.findById(
|
final Group group = groupRepository.findById(
|
||||||
g.getPartyId());
|
g.getPartyId());
|
||||||
groupManager.removeMemberFromGroup(user, group);
|
groupManager.removeMemberFromGroup(user, group);
|
||||||
|
|
@ -1084,6 +1085,148 @@ public class UserAdmin extends BoxPanel {
|
||||||
return form;
|
return form;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Form buildEditRoleMembershipsForm() {
|
||||||
|
final Form form = new Form("edit-userrolesmemberships-form");
|
||||||
|
|
||||||
|
final BoxPanel links = new BoxPanel(BoxPanel.VERTICAL);
|
||||||
|
final Label header = new Label(e -> {
|
||||||
|
final PageState state = e.getPageState();
|
||||||
|
final Label target = (Label) e.getTarget();
|
||||||
|
|
||||||
|
final String userIdStr = selectedUserId.getSelectedKey(state);
|
||||||
|
final UserRepository userRepository = CdiUtil.createCdiUtil()
|
||||||
|
.findBean(UserRepository.class);
|
||||||
|
final User user = userRepository.findById(Long.parseLong(userIdStr));
|
||||||
|
|
||||||
|
target.setLabel(new GlobalizedMessage(
|
||||||
|
"ui.admin.user_edit_role_memberships",
|
||||||
|
ADMIN_BUNDLE,
|
||||||
|
new String[]{user.getName()}));
|
||||||
|
});
|
||||||
|
links.add(header);
|
||||||
|
|
||||||
|
final ActionLink backLink = new ActionLink(new GlobalizedMessage(
|
||||||
|
"ui.admin.user.edit_role_memberships.back_to_user_details",
|
||||||
|
ADMIN_BUNDLE));
|
||||||
|
backLink.addActionListener(e -> {
|
||||||
|
closeEditRoleMembershipsForm(e.getPageState());
|
||||||
|
});
|
||||||
|
links.add(backLink);
|
||||||
|
|
||||||
|
form.add(links);
|
||||||
|
|
||||||
|
final String rolesSelector = "rolesselector";
|
||||||
|
final CheckboxGroup roles = new CheckboxGroup(rolesSelector);
|
||||||
|
try {
|
||||||
|
roles.addPrintListener(e -> {
|
||||||
|
final CheckboxGroup target = (CheckboxGroup) e.getTarget();
|
||||||
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
|
||||||
|
final RoleRepository roleRepository = cdiUtil.findBean(
|
||||||
|
RoleRepository.class);
|
||||||
|
|
||||||
|
target.clearOptions();
|
||||||
|
|
||||||
|
final SortedSet<Role> allRoles = new TreeSet<>(
|
||||||
|
(r1, r2) -> {
|
||||||
|
return r1.getName().compareTo(r2.getName());
|
||||||
|
});
|
||||||
|
allRoles.addAll(roleRepository.findAll());
|
||||||
|
|
||||||
|
allRoles.forEach(r -> {
|
||||||
|
final Option option = new Option(Long.toString(
|
||||||
|
r.getRoleId()), new Text(r.getName()));
|
||||||
|
target.addOption(option);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
} catch (TooManyListenersException ex) {
|
||||||
|
//This should never happen, and if its happens something is
|
||||||
|
//seriously wrong...
|
||||||
|
throw new UncheckedWrapperException(ex);
|
||||||
|
}
|
||||||
|
form.add(roles);
|
||||||
|
|
||||||
|
final SaveCancelSection saveCancelSection = new SaveCancelSection();
|
||||||
|
form.add(saveCancelSection);
|
||||||
|
|
||||||
|
form.addInitListener(e -> {
|
||||||
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final UserRepository userRepository = cdiUtil.findBean(
|
||||||
|
UserRepository.class);
|
||||||
|
|
||||||
|
final PageState state = e.getPageState();
|
||||||
|
|
||||||
|
final User user = userRepository.findById(Long.parseLong(
|
||||||
|
selectedUserId.getSelectedKey(state)));
|
||||||
|
final List<Role> assignedRoles = new ArrayList<>();
|
||||||
|
user.getRoleMemberships().forEach(m -> {
|
||||||
|
assignedRoles.add(m.getRole());
|
||||||
|
});
|
||||||
|
|
||||||
|
final String[] selectedRoles = new String[assignedRoles.size()];
|
||||||
|
IntStream.range(0, assignedRoles.size()).forEach(i -> {
|
||||||
|
selectedRoles[i] = Long.toString(assignedRoles.get(i)
|
||||||
|
.getRoleId());
|
||||||
|
});
|
||||||
|
|
||||||
|
roles.setValue(state, selectedRoles);
|
||||||
|
});
|
||||||
|
|
||||||
|
form.addProcessListener(e -> {
|
||||||
|
final PageState state = e.getPageState();
|
||||||
|
if (saveCancelSection.getSaveButton().isSelected(state)) {
|
||||||
|
final FormData data = e.getFormData();
|
||||||
|
|
||||||
|
final CdiUtil cdiUtil = CdiUtil.createCdiUtil();
|
||||||
|
final UserRepository userRepository = cdiUtil.findBean(
|
||||||
|
UserRepository.class);
|
||||||
|
final RoleRepository roleRepository = cdiUtil.findBean(
|
||||||
|
RoleRepository.class);
|
||||||
|
final RoleManager roleManager = cdiUtil.findBean(
|
||||||
|
RoleManager.class);
|
||||||
|
|
||||||
|
final String[] selectedRolesIds = (String[]) data.get(
|
||||||
|
rolesSelector);
|
||||||
|
|
||||||
|
final User user = userRepository.findById(Long.parseLong(
|
||||||
|
selectedUserId.getSelectedKey(state)));
|
||||||
|
final List<Role> selectedRoles = new ArrayList<>();
|
||||||
|
if (selectedRolesIds != null) {
|
||||||
|
Arrays.stream(selectedRolesIds).forEach(id -> {
|
||||||
|
final Role role = roleRepository.findById(
|
||||||
|
Long.parseLong(id));
|
||||||
|
selectedRoles.add(role);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
final List<Role> assignedRoles = new ArrayList<>();
|
||||||
|
user.getRoleMemberships().forEach(m -> {
|
||||||
|
assignedRoles.add(m.getRole());
|
||||||
|
});
|
||||||
|
|
||||||
|
//First check for newly added roles
|
||||||
|
selectedRoles.forEach(r -> {
|
||||||
|
if (!assignedRoles.contains(r)) {
|
||||||
|
roleManager.assignRoleToParty(r, user);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
//Than check for removed roles
|
||||||
|
assignedRoles.forEach(r -> {
|
||||||
|
if (!selectedRoles.contains(r)) {
|
||||||
|
//Role is maybe detached or not fully loaded,
|
||||||
|
//therefore we load the role from the database.
|
||||||
|
final Role role = roleRepository.findById(r.getRoleId());
|
||||||
|
roleManager.removeRoleFromParty(role, user);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
closeEditRoleMembershipsForm(state);
|
||||||
|
});
|
||||||
|
|
||||||
|
return form;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void register(final Page page) {
|
public void register(final Page page) {
|
||||||
super.register(page);
|
super.register(page);
|
||||||
|
|
@ -1097,6 +1240,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
page.setVisibleDefault(passwordSetForm, false);
|
page.setVisibleDefault(passwordSetForm, false);
|
||||||
page.setVisibleDefault(emailForm, false);
|
page.setVisibleDefault(emailForm, false);
|
||||||
page.setVisibleDefault(editGroupMembershipsForm, false);
|
page.setVisibleDefault(editGroupMembershipsForm, false);
|
||||||
|
page.setVisibleDefault(editRoleMembershipsForm, false);
|
||||||
page.setVisibleDefault(newUserForm, false);
|
page.setVisibleDefault(newUserForm, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1107,6 +1251,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1118,6 +1263,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1128,6 +1274,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1138,6 +1285,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1148,6 +1296,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, true);
|
passwordSetForm.setVisible(state, true);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1158,6 +1307,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1168,6 +1318,7 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, true);
|
emailForm.setVisible(state, true);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -1189,39 +1340,62 @@ public class UserAdmin extends BoxPanel {
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, true);
|
editGroupMembershipsForm.setVisible(state, true);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void closeEditGroupMembershipsForm(final PageState state) {
|
protected void closeEditGroupMembershipsForm(final PageState state) {
|
||||||
selectedEmailAddress.clearSelection(state);
|
|
||||||
usersTablePanel.setVisible(state, false);
|
usersTablePanel.setVisible(state, false);
|
||||||
userDetails.setVisible(state, true);
|
userDetails.setVisible(state, true);
|
||||||
userEditForm.setVisible(state, false);
|
userEditForm.setVisible(state, false);
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void showNewUserForm(final PageState state) {
|
protected void showEditRoleMembershipsForm(final PageState state) {
|
||||||
selectedEmailAddress.clearSelection(state);
|
|
||||||
usersTablePanel.setVisible(state, false);
|
usersTablePanel.setVisible(state, false);
|
||||||
userDetails.setVisible(state, false);
|
userDetails.setVisible(state, false);
|
||||||
userEditForm.setVisible(state, false);
|
userEditForm.setVisible(state, false);
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, true);
|
||||||
|
newUserForm.setVisible(state, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void closeEditRoleMembershipsForm(final PageState state) {
|
||||||
|
usersTablePanel.setVisible(state, false);
|
||||||
|
userDetails.setVisible(state, true);
|
||||||
|
userEditForm.setVisible(state, false);
|
||||||
|
passwordSetForm.setVisible(state, false);
|
||||||
|
emailForm.setVisible(state, false);
|
||||||
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
|
newUserForm.setVisible(state, false);
|
||||||
|
}
|
||||||
|
|
||||||
|
protected void showNewUserForm(final PageState state) {
|
||||||
|
usersTablePanel.setVisible(state, false);
|
||||||
|
userDetails.setVisible(state, false);
|
||||||
|
userEditForm.setVisible(state, false);
|
||||||
|
passwordSetForm.setVisible(state, false);
|
||||||
|
emailForm.setVisible(state, false);
|
||||||
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, true);
|
newUserForm.setVisible(state, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void closeNewUserForm(final PageState state) {
|
protected void closeNewUserForm(final PageState state) {
|
||||||
selectedEmailAddress.clearSelection(state);
|
|
||||||
usersTablePanel.setVisible(state, true);
|
usersTablePanel.setVisible(state, true);
|
||||||
userDetails.setVisible(state, false);
|
userDetails.setVisible(state, false);
|
||||||
userEditForm.setVisible(state, false);
|
userEditForm.setVisible(state, false);
|
||||||
passwordSetForm.setVisible(state, false);
|
passwordSetForm.setVisible(state, false);
|
||||||
emailForm.setVisible(state, false);
|
emailForm.setVisible(state, false);
|
||||||
editGroupMembershipsForm.setVisible(state, false);
|
editGroupMembershipsForm.setVisible(state, false);
|
||||||
|
editRoleMembershipsForm.setVisible(state, false);
|
||||||
newUserForm.setVisible(state, false);
|
newUserForm.setVisible(state, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -63,10 +63,8 @@ import javax.xml.bind.annotation.XmlRootElement;
|
||||||
@NamedEntityGraph(
|
@NamedEntityGraph(
|
||||||
name = "Group.withMembersAndRoleMemberships",
|
name = "Group.withMembersAndRoleMemberships",
|
||||||
attributeNodes = {
|
attributeNodes = {
|
||||||
@NamedAttributeNode(
|
@NamedAttributeNode(value = "memberships"),
|
||||||
value = "memberships"),
|
@NamedAttributeNode(value = "roleMemberships",
|
||||||
@NamedAttributeNode(
|
|
||||||
value = "roleMemberships",
|
|
||||||
subgraph = "role")},
|
subgraph = "role")},
|
||||||
subgraphs = {
|
subgraphs = {
|
||||||
@NamedSubgraph(
|
@NamedSubgraph(
|
||||||
|
|
|
||||||
|
|
@ -77,7 +77,8 @@ public class OneTimeAuthTokenCleaner {
|
||||||
// final long interval = 60 * 60 * 1000;
|
// final long interval = 60 * 60 * 1000;
|
||||||
|
|
||||||
LOGGER.debug("Creating interval for {} s.", interval / 1000);
|
LOGGER.debug("Creating interval for {} s.", interval / 1000);
|
||||||
LOGGER.debug("First run cleaning process will be executed in 5 min.");
|
// LOGGER.debug("First run cleaning process will be executed in {} s.",
|
||||||
|
// interval / 1000);
|
||||||
timerService.createIntervalTimer(interval,
|
timerService.createIntervalTimer(interval,
|
||||||
interval,
|
interval,
|
||||||
new TimerConfig());
|
new TimerConfig());
|
||||||
|
|
|
||||||
|
|
@ -21,6 +21,7 @@ package org.libreccm.security;
|
||||||
import static org.libreccm.core.CoreConstants.*;
|
import static org.libreccm.core.CoreConstants.*;
|
||||||
|
|
||||||
import org.hibernate.validator.constraints.NotBlank;
|
import org.hibernate.validator.constraints.NotBlank;
|
||||||
|
import org.libreccm.core.DefaultEntityGraph;
|
||||||
import org.libreccm.workflow.TaskAssignment;
|
import org.libreccm.workflow.TaskAssignment;
|
||||||
|
|
||||||
import java.io.Serializable;
|
import java.io.Serializable;
|
||||||
|
|
@ -36,6 +37,9 @@ import javax.persistence.Entity;
|
||||||
import javax.persistence.GeneratedValue;
|
import javax.persistence.GeneratedValue;
|
||||||
import javax.persistence.GenerationType;
|
import javax.persistence.GenerationType;
|
||||||
import javax.persistence.Id;
|
import javax.persistence.Id;
|
||||||
|
import javax.persistence.NamedAttributeNode;
|
||||||
|
import javax.persistence.NamedEntityGraph;
|
||||||
|
import javax.persistence.NamedEntityGraphs;
|
||||||
import javax.persistence.NamedQueries;
|
import javax.persistence.NamedQueries;
|
||||||
import javax.persistence.NamedQuery;
|
import javax.persistence.NamedQuery;
|
||||||
import javax.persistence.OneToMany;
|
import javax.persistence.OneToMany;
|
||||||
|
|
@ -57,6 +61,14 @@ import javax.xml.bind.annotation.XmlRootElement;
|
||||||
query = "SELECT r FROM Role r "
|
query = "SELECT r FROM Role r "
|
||||||
+ "WHERE r.name = :name")
|
+ "WHERE r.name = :name")
|
||||||
})
|
})
|
||||||
|
@NamedEntityGraphs({
|
||||||
|
@NamedEntityGraph(
|
||||||
|
name = "Role.withMembers",
|
||||||
|
attributeNodes = {
|
||||||
|
@NamedAttributeNode(value = "memberships")
|
||||||
|
})
|
||||||
|
})
|
||||||
|
@DefaultEntityGraph("Role.withMembers")
|
||||||
@XmlRootElement(name = "role", namespace = CORE_XML_NS)
|
@XmlRootElement(name = "role", namespace = CORE_XML_NS)
|
||||||
@SuppressWarnings({"PMD.ShortClassName", "PMD.TooManyMethods"})
|
@SuppressWarnings({"PMD.ShortClassName", "PMD.TooManyMethods"})
|
||||||
public class Role implements Serializable {
|
public class Role implements Serializable {
|
||||||
|
|
|
||||||
|
|
@ -237,3 +237,5 @@ ui.admin.user.all_roles=All roles
|
||||||
ui.admin.user.groups=Groups
|
ui.admin.user.groups=Groups
|
||||||
ui.admin.user.edit_group_memberships=Edit group memberships for user {0}
|
ui.admin.user.edit_group_memberships=Edit group memberships for user {0}
|
||||||
ui.admin.user.edit_group_memberships.back_to_user_details=Back to user details
|
ui.admin.user.edit_group_memberships.back_to_user_details=Back to user details
|
||||||
|
ui.admin.user_edit_role_memberships=Edit role memberships for user {0}
|
||||||
|
ui.admin.user.edit_role_memberships.back_to_user_details=Back to user details
|
||||||
|
|
|
||||||
|
|
@ -237,3 +237,5 @@ ui.admin.user.all_roles=Alle Rollen
|
||||||
ui.admin.user.groups=Gruppen
|
ui.admin.user.groups=Gruppen
|
||||||
ui.admin.user.edit_group_memberships=Gruppen f\u00fcr Benutzer {0} bearbeiten
|
ui.admin.user.edit_group_memberships=Gruppen f\u00fcr Benutzer {0} bearbeiten
|
||||||
ui.admin.user.edit_group_memberships.back_to_user_details=Zur\u00fcck zu den Eigenschaften des Benutzers
|
ui.admin.user.edit_group_memberships.back_to_user_details=Zur\u00fcck zu den Eigenschaften des Benutzers
|
||||||
|
ui.admin.user_edit_role_memberships=Rollen f\u00fcr Benutzer {0} bearbeiten
|
||||||
|
ui.admin.user.edit_role_memberships.back_to_user_details=Zur\u00fcck zu den Eigenschaften des Benutzers
|
||||||
|
|
|
||||||
|
|
@ -210,3 +210,5 @@ ui.admin.user.all_roles=All roles
|
||||||
ui.admin.user.groups=Groups
|
ui.admin.user.groups=Groups
|
||||||
ui.admin.user.edit_group_memberships=Edit group memberships for user {0}
|
ui.admin.user.edit_group_memberships=Edit group memberships for user {0}
|
||||||
ui.admin.user.edit_group_memberships.back_to_user_details=Back to user details
|
ui.admin.user.edit_group_memberships.back_to_user_details=Back to user details
|
||||||
|
ui.admin.user_edit_role_memberships=Edit role memberships for user {0}
|
||||||
|
ui.admin.user.edit_role_memberships.back_to_user_details=Back to user details
|
||||||
|
|
|
||||||
|
|
@ -201,3 +201,5 @@ ui.admin.user.all_roles=All roles
|
||||||
ui.admin.user.groups=Groups
|
ui.admin.user.groups=Groups
|
||||||
ui.admin.user.edit_group_memberships=Edit group memberships for user {0}
|
ui.admin.user.edit_group_memberships=Edit group memberships for user {0}
|
||||||
ui.admin.user.edit_group_memberships.back_to_user_details=Back to user details
|
ui.admin.user.edit_group_memberships.back_to_user_details=Back to user details
|
||||||
|
ui.admin.user_edit_role_memberships=Edit role memberships for user {0}
|
||||||
|
ui.admin.user.edit_role_memberships.back_to_user_details=Back to user details
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue