📄 usermanagerportlet.java
字号:
/* * @author <a href="mailto:novotny@gridsphere.org">Jason Novotny</a> * @version $Id: UserManagerPortlet.java 5088 2006-08-18 22:53:27Z novotny $ */package org.gridsphere.portlets.core.admin.users;import org.gridsphere.portlet.service.PortletServiceException;import org.gridsphere.provider.event.jsr.ActionFormEvent;import org.gridsphere.provider.event.jsr.RenderFormEvent;import org.gridsphere.provider.portlet.jsr.ActionPortlet;import org.gridsphere.provider.portletui.beans.*;import org.gridsphere.provider.portletui.model.DefaultTableModel;import org.gridsphere.services.core.mail.MailMessage;import org.gridsphere.services.core.mail.MailService;import org.gridsphere.services.core.persistence.QueryFilter;import org.gridsphere.services.core.portal.PortalConfigService;import org.gridsphere.services.core.security.password.PasswordEditor;import org.gridsphere.services.core.security.password.PasswordManagerService;import org.gridsphere.services.core.security.role.PortletRole;import org.gridsphere.services.core.security.role.RoleManagerService;import org.gridsphere.services.core.user.User;import org.gridsphere.services.core.user.UserManagerService;import javax.portlet.*;import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Calendar;import java.util.Iterator;import java.util.List;public class UserManagerPortlet extends ActionPortlet { // JSP pages used by this portlet public static final String DO_VIEW_USER_LIST = "admin/users/doViewUserList.jsp"; public static final String DO_VIEW_USER_VIEW = "admin/users/doViewUserView.jsp"; public static final String DO_VIEW_USER_EDIT = "admin/users/doViewUserEdit.jsp"; public static final String DO_SEND_EMAIL = "admin/users/doSendEmail.jsp"; // Portlet services private UserManagerService userManagerService = null; private PasswordManagerService passwordManagerService = null; private RoleManagerService roleManagerService = null; private PortalConfigService portalConfigService = null; private MailService mailService = null; private String NUM_PAGES = getClass() + ".NUM_PAGES"; private String EMAIL_QUERY = getClass() + ".EMAIL_QUERY"; private String ORG_QUERY = getClass() + ".ORG_QUERY"; public void init(PortletConfig config) throws PortletException { super.init(config); this.userManagerService = (UserManagerService) createPortletService(UserManagerService.class); this.roleManagerService = (RoleManagerService) createPortletService(RoleManagerService.class); this.passwordManagerService = (PasswordManagerService) createPortletService(PasswordManagerService.class); this.mailService = (MailService) createPortletService(MailService.class); this.portalConfigService = (PortalConfigService) createPortletService(PortalConfigService.class); DEFAULT_HELP_PAGE = "admin/users/help.jsp"; DEFAULT_VIEW_PAGE = "doListUsers"; } public void doListUsers(ActionFormEvent evt) throws PortletException { setNextState(evt.getActionRequest(), DEFAULT_VIEW_PAGE); } public void doListUsers(RenderFormEvent evt) throws PortletException { PortletRequest req = evt.getRenderRequest(); String numPages = (String) req.getPortletSession().getAttribute(NUM_PAGES); numPages = (numPages != null) ? numPages : "10"; String[] itemList = {"10", "20", "50", "100", "200", "500"}; ListBoxBean usersPageLB = evt.getListBoxBean("usersPageLB"); usersPageLB.clear(); for (int i = 0; i < itemList.length; i++) { ListBoxItemBean item = new ListBoxItemBean(); item.setName(itemList[i]); item.setValue(itemList[i]); if (numPages.equals(itemList[i])) item.setSelected(true); usersPageLB.addBean(item); } String likeEmail = (String) req.getPortletSession().getAttribute(EMAIL_QUERY); likeEmail = (likeEmail != null) ? likeEmail : ""; String likeOrganization = (String) req.getPortletSession().getAttribute(ORG_QUERY); likeOrganization = (likeOrganization != null) ? likeOrganization : ""; Integer maxRows = Integer.parseInt(numPages); int numUsers = userManagerService.getNumUsers(); QueryFilter filter = evt.getQueryFilter(maxRows, numUsers); List userList = userManagerService.getUsersByFullName(likeEmail, likeOrganization, filter); req.setAttribute("userList", userList); int dispPages = (numUsers / Integer.valueOf(numPages).intValue()); //System.err.println("numUsers= " + numUsers + " numPages= " + numPages + " dispPages= " + dispPages); req.setAttribute("dispPages", Integer.valueOf(dispPages)); //System.err.println("sizeof users=" + userList.size()); //req.setAttribute("numUsers", Integer.valueOf(numUsers)); //req.setAttribute("maxRows", Integer.valueOf(maxRows)); TableBean userTable = evt.getTableBean("userTable"); userTable.setQueryFilter(filter); //userTable.setMaxRows(maxRows); //userTable.setNumEntries(numUsers); setNextState(req, DO_VIEW_USER_LIST); } public void doReturn(ActionFormEvent event) { setNextState(event.getActionRequest(), "doListUsers"); } public void doViewUser(ActionFormEvent evt) throws PortletException { PortletRequest req = evt.getActionRequest(); String userID = evt.getAction().getParameter("userID"); User user = userManagerService.getUser(userID); if (user != null) { // should check for non-null user ! req.setAttribute("user", user); HiddenFieldBean hf = evt.getHiddenFieldBean("userID"); hf.setValue(user.getID()); List userRoles = roleManagerService.getRolesForUser(user); Iterator it = userRoles.iterator(); String userRole = ""; while (it.hasNext()) { userRole += ((PortletRole) it.next()).getName() + ", "; } if (userRole.length() > 2) { req.setAttribute("role", userRole.substring(0, userRole.length() - 2)); } else { req.setAttribute("role", this.getLocalizedText(req, "ROLES_HASNOROLES")); } SimpleDateFormat dateFormat = new SimpleDateFormat("MMM d yyyy hh:mm a"); String createtime = (String) user.getAttribute(User.CREATEDATE); String createdate; if (createtime == null) { createdate = "Unknown"; } else { createdate = dateFormat.format(Long.valueOf(createtime)); } req.setAttribute("createdate", createdate); CheckBoxBean accountCB = evt.getCheckBoxBean("accountCB"); String disabled = (String) user.getAttribute(User.DISABLED); if ((disabled != null) && ("TRUE".equalsIgnoreCase(disabled))) { accountCB.setSelected(true); } accountCB.setDisabled(true); setNextState(req, DO_VIEW_USER_VIEW); } else { setNextState(req, DEFAULT_VIEW_PAGE); } } public void doNewUser(ActionFormEvent evt) throws PortletException { PortletRequest req = evt.getActionRequest(); req.setAttribute("newuser", "true"); // indicate to edit JSP this is a new user HiddenFieldBean hf = evt.getHiddenFieldBean("newuser"); hf.setValue("true"); String savePasswd = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswd.equals(Boolean.TRUE.toString())) { req.setAttribute("savePass", "true"); } makeRoleFrame(evt, null); setNextState(req, DO_VIEW_USER_EDIT); log.debug("in doNewUser"); } /** * Creates the role table * * @param evt the action form event * @param user the user if this is editing an existing user, null if a new user */ private void makeRoleFrame(ActionFormEvent evt, User user) { FrameBean roleFrame = evt.getFrameBean("roleFrame"); DefaultTableModel model = new DefaultTableModel(); TableRowBean tr = new TableRowBean(); tr.setHeader(true); TableCellBean tc = new TableCellBean(); TextBean text = new TextBean(); text.setKey("USER_SELECT_ROLES"); tc.addBean(text); tc.setWidth("100"); tr.addBean(tc); tc = new TableCellBean(); text = new TextBean(); text.setKey("USER_ROLE_NAME"); tc.setWidth("200"); tc.addBean(text); tr.addBean(tc); model.addTableRowBean(tr); List<PortletRole> roles = roleManagerService.getRoles(); List myroles = new ArrayList<PortletRole>(); List defaultRoles = roleManagerService.getDefaultRoles(); if (user != null) myroles = roleManagerService.getRolesForUser(user); for (PortletRole role : roles) { tr = new TableRowBean(); tc = new TableCellBean(); CheckBoxBean cb = new CheckBoxBean(); if (myroles.contains(role)) { cb.setSelected(true); } if ((user == null) && (defaultRoles.contains(role))) cb.setSelected(true); cb.setBeanId(role.getName() + "CB"); tc.addBean(cb); tr.addBean(tc); tc = new TableCellBean(); text = new TextBean(); text.setValue(role.getName()); tc.addBean(text); tr.addBean(tc); model.addTableRowBean(tr); } roleFrame.setTableModel(model); } public void doEditUser(ActionFormEvent evt) throws PortletException { PortletRequest req = evt.getActionRequest(); // indicate to edit JSP this is an existing user HiddenFieldBean newuserHF = evt.getHiddenFieldBean("newuser"); newuserHF.setValue("false"); String userID = evt.getAction().getParameter("userID"); HiddenFieldBean userHF = evt.getHiddenFieldBean("userID"); userHF.setValue(userID); // get user User user = this.userManagerService.getUser(userID); if (user == null) { doReturn(evt); return; } makeRoleFrame(evt, user); setUserValues(evt, user); String savePasswds = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswds.equals(Boolean.TRUE.toString())) { req.setAttribute("savePass", "true"); } String supportX509 = portalConfigService.getProperty(PortalConfigService.SUPPORT_X509_AUTH); if (supportX509.equals(Boolean.TRUE.toString())) { req.setAttribute("certSupport", "true"); } CheckBoxBean accountCB = evt.getCheckBoxBean("accountCB"); String disabled = (String) user.getAttribute(User.DISABLED); if ((disabled != null) && ("TRUE".equalsIgnoreCase(disabled))) { accountCB.setSelected(true); } setNextState(req, DO_VIEW_USER_EDIT); } public void doConfirmEditUser(ActionFormEvent evt) throws PortletException { PortletRequest req = evt.getActionRequest(); HiddenFieldBean hf = evt.getHiddenFieldBean("newuser"); String newuser = hf.getValue(); try { User user; log.debug("in doConfirmEditUser: " + newuser); if (newuser.equals("true")) { validateUser(evt, true); user = saveUser(evt, null); HiddenFieldBean userHF = evt.getHiddenFieldBean("userID"); userHF.setValue(user.getID()); CheckBoxBean cb = evt.getCheckBoxBean("emailUserCB"); if (cb.isSelected()) mailUserConfirmation(evt, user); createSuccessMessage(evt, this.getLocalizedText(req, "USER_NEW_SUCCESS")); } else { validateUser(evt, false); // load in User values HiddenFieldBean userHF = evt.getHiddenFieldBean("userID"); String userID = userHF.getValue(); User thisuser = this.userManagerService.getUser(userID); user = saveUser(evt, thisuser); createSuccessMessage(evt, this.getLocalizedText(req, "USER_EDIT_SUCCESS")); } req.setAttribute("user", user); setNextState(req, "doListUsers"); } catch (PortletException e) { createErrorMessage(evt, e.getMessage()); String savePasswds = portalConfigService.getProperty(PortalConfigService.SAVE_PASSWORDS); if (savePasswds.equals(Boolean.TRUE.toString())) { req.setAttribute("savePass", "true"); } if (newuser.equals("true")) { // setNextState(req, "doNewUser"); } else { } setNextState(req, DO_VIEW_USER_EDIT); } } public void doDeleteUser(ActionFormEvent event) throws PortletException { ActionRequest req = event.getActionRequest(); String[] users = req.getParameterValues("usersCB");
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -