svnno****@sourc*****
svnno****@sourc*****
2007年 6月 26日 (火) 13:03:56 JST
Revision: 198 http://svn.sourceforge.jp/cgi-bin/viewcvs.cgi?root=pal&view=rev&rev=198 Author: shinsuke Date: 2007-06-26 13:03:56 +0900 (Tue, 26 Jun 2007) Log Message: ----------- added user attributes management Modified Paths: -------------- pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/SecurityProviderLogic.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserManagementService.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserListPage.java pal-admin/trunk/src/main/resources/appMessages.properties pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/user/label.properties pal-admin/trunk/src/main/webapp/view/user/userEdit.html pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html Added Paths: ----------- pal-admin/trunk/src/main/java/jp/sf/pal/admin/pager/UserAttributePager.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/AbstractUserAttributePage.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeConfirmPage.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeEditPage.java pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeListPage.java pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html pal-admin/trunk/src/main/webapp/view/user/userAttributeList.html -------------- next part -------------- Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/SecurityProviderLogic.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/SecurityProviderLogic.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/logic/SecurityProviderLogic.java 2007-06-26 04:03:56 UTC (rev 198) @@ -20,9 +20,13 @@ import java.security.Principal; import java.util.ArrayList; import java.util.Calendar; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; import java.util.Set; +import java.util.prefs.BackingStoreException; +import java.util.prefs.Preferences; import javax.security.auth.Subject; @@ -34,6 +38,7 @@ import jp.sf.pal.admin.entity.User; import jp.sf.pal.admin.pager.GroupPager; import jp.sf.pal.admin.pager.RolePager; +import jp.sf.pal.admin.pager.UserAttributePager; import jp.sf.pal.admin.pager.UserPager; import jp.sf.pal.admin.util.PortalComponentUtil; import jp.sf.pal.admin.util.PALAdminUtil; @@ -64,8 +69,7 @@ /** * Logger for this class */ - private static final Logger logger = Logger - .getLogger(SecurityProviderLogic.class); + private static final Logger logger = Logger.getLogger(SecurityProviderLogic.class); private transient SecurityProvider securityProvider = null; @@ -94,8 +98,7 @@ { if (authenticationProviderProxy == null) { - authenticationProviderProxy = getSecurityProvider() - .getAuthenticationProviderProxy(); + authenticationProviderProxy = getSecurityProvider().getAuthenticationProviderProxy(); } return authenticationProviderProxy; } @@ -103,8 +106,7 @@ /** * @param authenticationProviderProxy the authenticationProviderProxy to set */ - public void setAuthenticationProviderProxy( - AuthenticationProviderProxy authenticationProviderProxy) + public void setAuthenticationProviderProxy(AuthenticationProviderProxy authenticationProviderProxy) { this.authenticationProviderProxy = authenticationProviderProxy; } @@ -116,8 +118,7 @@ { if (roleSecurityHandler == null) { - roleSecurityHandler = getSecurityProvider() - .getRoleSecurityHandler(); + roleSecurityHandler = getSecurityProvider().getRoleSecurityHandler(); } return roleSecurityHandler; } @@ -137,8 +138,7 @@ { if (groupSecurityHandler == null) { - groupSecurityHandler = getSecurityProvider() - .getGroupSecurityHandler(); + groupSecurityHandler = getSecurityProvider().getGroupSecurityHandler(); } return groupSecurityHandler; } @@ -146,8 +146,7 @@ /** * @param groupSecurityHandler the groupSecurityHandler to set */ - public void setGroupSecurityHandler( - GroupSecurityHandler groupSecurityHandler) + public void setGroupSecurityHandler(GroupSecurityHandler groupSecurityHandler) { this.groupSecurityHandler = groupSecurityHandler; } @@ -290,9 +289,7 @@ if (pager.getAuthenticationProviderName() == null) { - pager - .setAuthenticationProviderName(getAuthenticationProviderProxy() - .getDefaultAuthenticationProvider()); + pager.setAuthenticationProviderName(getAuthenticationProviderProxy().getDefaultAuthenticationProvider()); } StringBuffer fb = new StringBuffer("AdvanceFilter: "); @@ -303,25 +300,20 @@ try { // set count - pager.setCount(getAuthenticationProviderProxy().getUserCount( - fb.toString(), pager.getAuthenticationProviderName())); + pager.setCount(getAuthenticationProviderProxy().getUserCount(fb.toString(), pager.getAuthenticationProviderName())); int startAtIndex = pager.getOffset() + 1; int endAtIndex = startAtIndex + pager.getLimit(); - fb.append(", startAtIndex=").append(startAtIndex).append( - ", endAtIndex=").append(endAtIndex); + fb.append(", startAtIndex=").append(startAtIndex).append(", endAtIndex=").append(endAtIndex); - List<Principal> principals = getAuthenticationProviderProxy() - .getUserPrincipals(fb.toString(), - pager.getAuthenticationProviderName()); + List<Principal> principals = getAuthenticationProviderProxy().getUserPrincipals(fb.toString(), + pager.getAuthenticationProviderName()); int size = principals.size(); if (logger.isDebugEnabled()) { - logger.debug("getUsers(UserPager) - pager.getFilter()=" - + pager.getFilter()); - logger.debug("getUsers(UserPager) - size=" + size + ", filter=" - + fb.toString()); + logger.debug("getUsers(UserPager) - pager.getFilter()=" + pager.getFilter()); + logger.debug("getUsers(UserPager) - size=" + size + ", filter=" + fb.toString()); } for (int i = 0; i < size; i++) @@ -350,12 +342,10 @@ return; } - if (PALAdminUtil.isEmpty(user.getName()) - || PALAdminUtil.isEmpty(user.getPassword())) + if (PALAdminUtil.isEmpty(user.getName()) || PALAdminUtil.isEmpty(user.getPassword())) { - throw new PALAdminException( - "Invalid user name or password. username=" + user.getName() - + ", password=" + user.getPassword()); + throw new PALAdminException("Invalid user name or password. username=" + user.getName() + ", password=" + + user.getPassword()); } //TODO check duplicate name @@ -365,14 +355,12 @@ getUserManager().addUser(user.getName(), user.getPassword()); // Set updateRequired - PasswordCredential credential = getPasswordCredential(user - .getName()); + PasswordCredential credential = getPasswordCredential(user.getName()); if (credential != null) { if (user.isUpdateRequired() != credential.isUpdateRequired()) { - getUserManager().setPasswordUpdateRequired(user.getName(), - user.isUpdateRequired()); + getUserManager().setPasswordUpdateRequired(user.getName(), user.isUpdateRequired()); } } @@ -382,26 +370,20 @@ Role role = ite.next(); if (!PALAdminUtil.isEmpty(role.getName())) { - getRoleManager().addRoleToUser(user.getName(), - role.getName()); + getRoleManager().addRoleToUser(user.getName(), role.getName()); } } // Add principal rule Principal principal = getUserPrincipal(user.getName()); - for (Iterator<PrincipalRule> ite = user.getPrincipalRules() - .iterator(); ite.hasNext();) + for (Iterator<PrincipalRule> ite = user.getPrincipalRules().iterator(); ite.hasNext();) { PrincipalRule principalRule = ite.next(); if (!PALAdminUtil.isEmpty(principalRule.getLocatorName()) - && !PALAdminUtil.isEmpty(principalRule - .getProfilingRuleName())) + && !PALAdminUtil.isEmpty(principalRule.getProfilingRuleName())) { - getProfiler().setRuleForPrincipal( - principal, - getProfiler().getRule( - principalRule.getProfilingRuleName()), + getProfiler().setRuleForPrincipal(principal, getProfiler().getRule(principalRule.getProfilingRuleName()), principalRule.getLocatorName()); } } @@ -412,8 +394,7 @@ //TODO where is template folder String templateFolder = PALAdminConstants.DEFAULT_TEMPLATE_FOLDER; Folder source = getPageManager().getFolder(templateFolder); - getPageManager().deepCopyFolder(source, - Folder.USER_FOLDER + user.getName(), user.getName()); + getPageManager().deepCopyFolder(source, Folder.USER_FOLDER + user.getName(), user.getName()); } } catch (Exception e) @@ -425,16 +406,13 @@ private Subject getUserSubject(String username) throws SecurityException { - org.apache.jetspeed.security.User user = getUserManager().getUser( - username); + org.apache.jetspeed.security.User user = getUserManager().getUser(username); return user.getSubject(); } - private PasswordCredential getPasswordCredential(String username) - throws SecurityException + private PasswordCredential getPasswordCredential(String username) throws SecurityException { - org.apache.jetspeed.security.User user = getUserManager().getUser( - username); + org.apache.jetspeed.security.User user = getUserManager().getUser(username); PasswordCredential credential = null; @@ -465,11 +443,9 @@ getUserManager().removeUser(user.getName()); // Remove user's psml folder - if (getPageManager().folderExists( - Folder.USER_FOLDER + user.getName())) + if (getPageManager().folderExists(Folder.USER_FOLDER + user.getName())) { - Folder folder = pageManager.getFolder(Folder.USER_FOLDER - + user.getName()); + Folder folder = pageManager.getFolder(Folder.USER_FOLDER + user.getName()); pageManager.removeFolder(folder); } @@ -485,8 +461,7 @@ User user; try { - org.apache.jetspeed.security.User j2user = getUserManager() - .getUser(username); + org.apache.jetspeed.security.User j2user = getUserManager().getUser(username); if (j2user == null) { return null; @@ -530,69 +505,53 @@ { // change password boolean passwordSet = false; - if (user.getPassword() != null - && user.getPassword().trim().length() > 0) + if (user.getPassword() != null && user.getPassword().trim().length() > 0) { - getUserManager().setPassword(user.getName(), null, - user.getPassword()); + getUserManager().setPassword(user.getName(), null, user.getPassword()); passwordSet = true; } - PasswordCredential credential = getPasswordCredential(user - .getName()); + PasswordCredential credential = getPasswordCredential(user.getName()); if (credential != null) { // update update required if (user.isUpdateRequired() != credential.isUpdateRequired()) { - getUserManager().setPasswordUpdateRequired(user.getName(), - user.isUpdateRequired()); + getUserManager().setPasswordUpdateRequired(user.getName(), user.isUpdateRequired()); } // update user enabled if (user.isUserEnabled() != credential.isEnabled()) { - userManager.setPasswordEnabled(user.getName(), user - .isUserEnabled()); + userManager.setPasswordEnabled(user.getName(), user.isUserEnabled()); } // update expired - if (!passwordSet - && user.getExpires().equals( - PALAdminConstants.USER_CREDENTIAL_ACTIVE)) + if (!passwordSet && user.getExpires().equals(PALAdminConstants.USER_CREDENTIAL_ACTIVE)) { //TODO is it correct? userManager.setPasswordExpiration(user.getName(), null); } - else if (!passwordSet - && user.getExpires().equals( - PALAdminConstants.USER_CREDENTIAL_EXPIRED)) + else if (!passwordSet && user.getExpires().equals(PALAdminConstants.USER_CREDENTIAL_EXPIRED)) { - java.sql.Date today = new java.sql.Date(Calendar - .getInstance().getTimeInMillis()); + java.sql.Date today = new java.sql.Date(Calendar.getInstance().getTimeInMillis()); userManager.setPasswordExpiration(user.getName(), today); } - else if (user.getExpires().equals( - PALAdminConstants.USER_CREDENTIAL_EXTEND)) + else if (user.getExpires().equals(PALAdminConstants.USER_CREDENTIAL_EXTEND)) { userManager.setPasswordExpiration(user.getName(), null); } - else if (user.getExpires().equals( - PALAdminConstants.USER_CREDENTIAL_EXTEND_UNLIMITED)) + else if (user.getExpires().equals(PALAdminConstants.USER_CREDENTIAL_EXTEND_UNLIMITED)) { - userManager.setPasswordExpiration(user.getName(), - InternalCredential.MAX_DATE); + userManager.setPasswordExpiration(user.getName(), InternalCredential.MAX_DATE); } } } catch (SecurityException e) { - logger.error("Could not update user information correctly. user=" - + user, e); - throw new PALAdminException( - "Could not update user information correctly. user=" + user, - e); + logger.error("Could not update user information correctly. user=" + user, e); + throw new PALAdminException("Could not update user information correctly. user=" + user, e); } } @@ -602,48 +561,37 @@ { if (getGroupManager().groupExists(group.getName())) { - getGroupManager().addUserToGroup(user.getName(), - group.getName()); + getGroupManager().addUserToGroup(user.getName(), group.getName()); } else { - throw new PALAdminException("The group does not exist. group=" - + group); + throw new PALAdminException("The group does not exist. group=" + group); } } catch (SecurityException e) { - logger.error("Could not add the group to the user. user=" + user - + ", group=" + group, e); - throw new PALAdminException( - "Could not add the group to the user. user=" + user - + ", group=" + group, e); + logger.error("Could not add the group to the user. user=" + user + ", group=" + group, e); + throw new PALAdminException("Could not add the group to the user. user=" + user + ", group=" + group, e); } } - public void removeGroupFromUser(User user, Group group) - throws PALAdminException + public void removeGroupFromUser(User user, Group group) throws PALAdminException { try { if (getGroupManager().groupExists(group.getName())) { - getGroupManager().removeUserFromGroup(user.getName(), - group.getName()); + getGroupManager().removeUserFromGroup(user.getName(), group.getName()); } else { - throw new PALAdminException("The group does not exist. group=" - + group); + throw new PALAdminException("The group does not exist. group=" + group); } } catch (SecurityException e) { - logger.error("Could not remove the group from the user. user=" - + user + ", group=" + group, e); - throw new PALAdminException( - "Could not remove the group from the user. user=" + user - + ", group=" + group, e); + logger.error("Could not remove the group from the user. user=" + user + ", group=" + group, e); + throw new PALAdminException("Could not remove the group from the user. user=" + user + ", group=" + group, e); } } @@ -663,43 +611,33 @@ } else { - throw new PALAdminException("The role does not exist. role=" - + role); + throw new PALAdminException("The role does not exist. role=" + role); } } catch (SecurityException e) { - logger.error("Could not add the role to the user. user=" + user - + ", role=" + role, e); - throw new PALAdminException( - "Could not add the role to the user. user=" + user - + ", role=" + role, e); + logger.error("Could not add the role to the user. user=" + user + ", role=" + role, e); + throw new PALAdminException("Could not add the role to the user. user=" + user + ", role=" + role, e); } } - public void removeRoleFromUser(User user, Role role) - throws PALAdminException + public void removeRoleFromUser(User user, Role role) throws PALAdminException { try { if (getRoleManager().roleExists(role.getName())) { - getRoleManager().removeRoleFromUser(user.getName(), - role.getName()); + getRoleManager().removeRoleFromUser(user.getName(), role.getName()); } else { - throw new PALAdminException("The role does not exist. role=" - + role); + throw new PALAdminException("The role does not exist. role=" + role); } } catch (SecurityException e) { - logger.error("Could not remove the role from the user. user=" - + user + ", role=" + role, e); - throw new PALAdminException( - "Could not remove the role from the user. user=" + user - + ", role=" + role, e); + logger.error("Could not remove the role from the user. user=" + user + ", role=" + role, e); + throw new PALAdminException("Could not remove the role from the user. user=" + user + ", role=" + role, e); } } @@ -709,20 +647,16 @@ return getRoleManager().roleExists(role.getName()); } - public void removePrincipalRuleFromUser(User user, - PrincipalRule principalRule) throws PALAdminException + public void removePrincipalRuleFromUser(User user, PrincipalRule principalRule) throws PALAdminException { try { - Iterator<org.apache.jetspeed.profiler.rules.PrincipalRule> it = getProfiler() - .getRulesForPrincipal(getUserPrincipal(user.getName())) - .iterator(); + Iterator<org.apache.jetspeed.profiler.rules.PrincipalRule> it = getProfiler().getRulesForPrincipal( + getUserPrincipal(user.getName())).iterator(); while (it.hasNext()) { - org.apache.jetspeed.profiler.rules.PrincipalRule rule = it - .next(); - if (rule.getLocatorName() - .equals(principalRule.getLocatorName())) + org.apache.jetspeed.profiler.rules.PrincipalRule rule = it.next(); + if (rule.getLocatorName().equals(principalRule.getLocatorName())) { //TODO does not work?? getProfiler().deletePrincipalRule(rule); @@ -732,12 +666,9 @@ } catch (Exception e) { - logger.error( - "Could not remove the principalRule from the user. user=" - + user + ", principalRule=" + principalRule, e); - throw new PALAdminException( - "Could not remove the principalRule from the user. user=" - + user + ", principalRule=" + principalRule, e); + logger.error("Could not remove the principalRule from the user. user=" + user + ", principalRule=" + principalRule, e); + throw new PALAdminException("Could not remove the principalRule from the user. user=" + user + ", principalRule=" + + principalRule, e); } } @@ -759,8 +690,7 @@ } List<Role> roleList = new ArrayList<Role>(); - List<Principal> principals = getRoleSecurityHandler() - .getRolePrincipals(pager.getFilter()); + List<Principal> principals = getRoleSecurityHandler().getRolePrincipals(pager.getFilter()); // set count pager.setCount(principals.size()); @@ -771,10 +701,8 @@ int size = principals.size(); if (logger.isDebugEnabled()) { - logger.debug("getRoles(RolePager) - pager.getFilter()=" - + pager.getFilter()); - logger.debug("getRoles(RolePager) - offset=" + offset + ", limit=" - + limit + ", size=" + size); + logger.debug("getRoles(RolePager) - pager.getFilter()=" + pager.getFilter()); + logger.debug("getRoles(RolePager) - offset=" + offset + ", limit=" + limit + ", size=" + size); } for (int i = offset; i < offset + limit && i < size; i++) { @@ -834,8 +762,7 @@ } List<String> roleList = new ArrayList<String>(); - List<Principal> principals = getRoleSecurityHandler() - .getRolePrincipals(""); + List<Principal> principals = getRoleSecurityHandler().getRolePrincipals(""); for (Iterator<Principal> ite = principals.iterator(); ite.hasNext();) { @@ -846,25 +773,18 @@ } - public void addPrincipalRuleToUser(User user, PrincipalRule principalRule) - throws PALAdminException + public void addPrincipalRuleToUser(User user, PrincipalRule principalRule) throws PALAdminException { try { - getProfiler() - .setRuleForPrincipal( - getUserPrincipal(user.getName()), - getProfiler().getRule( - principalRule.getProfilingRuleName()), - principalRule.getLocatorName()); + getProfiler().setRuleForPrincipal(getUserPrincipal(user.getName()), + getProfiler().getRule(principalRule.getProfilingRuleName()), principalRule.getLocatorName()); } catch (SecurityException e) { - logger.error("Could not add the principal rule to user. user=" - + user + ", principalRule=" + principalRule, e); - throw new PALAdminException( - "Could not add the principal rule to user. user=" + user - + ", principalRule=" + principalRule, e); + logger.error("Could not add the principal rule to user. user=" + user + ", principalRule=" + principalRule, e); + throw new PALAdminException("Could not add the principal rule to user. user=" + user + ", principalRule=" + + principalRule, e); } } @@ -885,8 +805,7 @@ } List<Group> groupList = new ArrayList<Group>(); - List<Principal> principals = getGroupSecurityHandler() - .getGroupPrincipals(pager.getFilter()); + List<Principal> principals = getGroupSecurityHandler().getGroupPrincipals(pager.getFilter()); // set count pager.setCount(principals.size()); @@ -897,10 +816,8 @@ int size = principals.size(); if (logger.isDebugEnabled()) { - logger.debug("getGroups(GroupPager) - pager.getFilter()=" - + pager.getFilter()); - logger.debug("getGroups(GroupPager) - offset=" + offset - + ", limit=" + limit + ", size=" + size); + logger.debug("getGroups(GroupPager) - pager.getFilter()=" + pager.getFilter()); + logger.debug("getGroups(GroupPager) - offset=" + offset + ", limit=" + limit + ", size=" + size); } for (int i = offset; i < offset + limit && i < size; i++) { @@ -960,8 +877,7 @@ } List<String> groupList = new ArrayList<String>(); - List<Principal> principals = getGroupSecurityHandler() - .getGroupPrincipals(""); + List<Principal> principals = getGroupSecurityHandler().getGroupPrincipals(""); for (Iterator<Principal> ite = principals.iterator(); ite.hasNext();) { @@ -984,8 +900,7 @@ } List<String> groupList = new ArrayList<String>(); - Set<Principal> principals = getSecurityProvider() - .getSecurityMappingHandler().getGroupPrincipals(username); + Set<Principal> principals = getSecurityProvider().getSecurityMappingHandler().getGroupPrincipals(username); for (Iterator<Principal> ite = principals.iterator(); ite.hasNext();) { groupList.add(ite.next().getName()); @@ -1006,8 +921,7 @@ } List<String> roleList = new ArrayList<String>(); - Set<Principal> principals = getSecurityProvider() - .getSecurityMappingHandler().getRolePrincipals(username); + Set<Principal> principals = getSecurityProvider().getSecurityMappingHandler().getRolePrincipals(username); for (Iterator<Principal> ite = principals.iterator(); ite.hasNext();) { roleList.add(ite.next().getName()); @@ -1018,16 +932,125 @@ } // + // User Attribute + // + public void insertUserAttribute(String username, String key, String value) throws PALAdminException + { + if (username == null || key == null || value == null) + { + throw new PALAdminException("Invalid value(s)."); + } + + try + { + org.apache.jetspeed.security.User j2user = getUserManager().getUser(username); + + j2user.getUserAttributes().put(key, value); + } + catch (SecurityException e) + { + logger.error("Could not access user attributes.", e); + throw new PALAdminException(e); + } + } + + public void deleteUserAttribute(String username, String key) throws PALAdminException + { + if (username == null || key == null) + { + throw new PALAdminException("Invalid value(s)."); + } + + try + { + org.apache.jetspeed.security.User j2user = getUserManager().getUser(username); + + j2user.getUserAttributes().remove(key); + } + catch (SecurityException e) + { + logger.error("Could not access user attributes.", e); + throw new PALAdminException(e); + } + } + + public String getUserAttributeValue(String username, String key) throws PALAdminException + { + if (username == null || key == null) + { + return null; + } + + try + { + org.apache.jetspeed.security.User j2user = getUserManager().getUser(username); + + return j2user.getUserAttributes().get(key, null); + } + catch (SecurityException e) + { + logger.error("Could not get user attributes.", e); + throw new PALAdminException(e); + } + } + + public Map<String, String> getUserAttributes(UserAttributePager pager) throws PALAdminException + { + Map<String, String> map = new HashMap<String, String>(); + + if (pager.getUser() == null || pager.getUser().getName() == null) + { + return map; + } + + Preferences prefs; + String[] keys; + try + { + org.apache.jetspeed.security.User j2user = getUserManager().getUser(pager.getUser().getName()); + + prefs = j2user.getUserAttributes(); + keys = prefs.keys(); + } + catch (SecurityException e) + { + logger.error("Could not get user attributes.", e); + throw new PALAdminException(e); + } + catch (BackingStoreException e) + { + logger.error("Could not access user attributes.", e); + throw new PALAdminException(e); + } + + // set count + pager.setCount(keys.length); + + // create list + int offset = pager.getOffset(); + int limit = pager.getLimit(); + int size = keys.length; + if (logger.isDebugEnabled()) + { + logger.debug("getUserAttributess(GroupPager) - offset=" + offset + ", limit=" + limit + ", size=" + size); + } + for (int i = offset; i < offset + limit && i < size; i++) + { + map.put(keys[i], prefs.get(keys[i], "")); + } + + return map; + } + + // // ProfilingRule // public List<String> getProfilingRuleNames() { ArrayList<String> list = new ArrayList<String>(); - for (Iterator<org.apache.jetspeed.profiler.rules.ProfilingRule> ite = getProfiler() - .getRules().iterator(); ite.hasNext();) + for (Iterator<org.apache.jetspeed.profiler.rules.ProfilingRule> ite = getProfiler().getRules().iterator(); ite.hasNext();) { - org.apache.jetspeed.profiler.rules.ProfilingRule profilingRule = ite - .next(); + org.apache.jetspeed.profiler.rules.ProfilingRule profilingRule = ite.next(); list.add(profilingRule.getId()); } return list; @@ -1039,16 +1062,13 @@ try { Principal userPrincipal = getUserPrincipal(user.getName()); - for (Iterator<org.apache.jetspeed.profiler.rules.PrincipalRule> ite = getProfiler() - .getRulesForPrincipal(userPrincipal).iterator(); ite - .hasNext();) + for (Iterator<org.apache.jetspeed.profiler.rules.PrincipalRule> ite = getProfiler().getRulesForPrincipal(userPrincipal) + .iterator(); ite.hasNext();) { - org.apache.jetspeed.profiler.rules.PrincipalRule rule = ite - .next(); + org.apache.jetspeed.profiler.rules.PrincipalRule rule = ite.next(); PrincipalRule principalRule = new PrincipalRule(); principalRule.setLocatorName(rule.getLocatorName()); - principalRule.setProfilingRuleName(rule.getProfilingRule() - .getId()); + principalRule.setProfilingRuleName(rule.getProfilingRule().getId()); list.add(principalRule); } } @@ -1059,11 +1079,9 @@ return list; } - private Principal getUserPrincipal(String username) - throws SecurityException + private Principal getUserPrincipal(String username) throws SecurityException { - return PALAdminUtil.getPrincipal(getUserSubject(username), - UserPrincipal.class); + return PALAdminUtil.getPrincipal(getUserSubject(username), UserPrincipal.class); } } Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/pager/UserAttributePager.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/pager/UserAttributePager.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/pager/UserAttributePager.java 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,32 @@ +package jp.sf.pal.admin.pager; + +import java.io.Serializable; + +import jp.sf.pal.admin.entity.User; + +public class UserAttributePager extends DefaultPager implements Serializable +{ + + /** + * + */ + private static final long serialVersionUID = -2370360279133767056L; + + private User user; + + /** + * @return the user + */ + public User getUser() + { + return user; + } + + /** + * @param user the user to set + */ + public void setUser(User user) + { + this.user = user; + } +} Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/pager/UserAttributePager.java ___________________________________________________________________ Name: svn:eol-style + native Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserManagementService.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserManagementService.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/service/UserManagementService.java 2007-06-26 04:03:56 UTC (rev 198) @@ -18,9 +18,11 @@ import java.io.Serializable; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Map.Entry; import jp.sf.pal.admin.PALAdminConstants; import jp.sf.pal.admin.PALAdminException; @@ -30,10 +32,14 @@ import jp.sf.pal.admin.entity.Role; import jp.sf.pal.admin.entity.User; import jp.sf.pal.admin.logic.SecurityProviderLogic; +import jp.sf.pal.admin.pager.UserAttributePager; import jp.sf.pal.admin.pager.UserPager; import jp.sf.pal.admin.util.PALAdminUtil; import jp.sf.pal.admin.util.PagerUtil; import jp.sf.pal.admin.web.user.AbstractUserPage; +import jp.sf.pal.admin.web.user.UserAttributeConfirmPage; +import jp.sf.pal.admin.web.user.UserAttributeEditPage; +import jp.sf.pal.admin.web.user.UserAttributeListPage; import jp.sf.pal.admin.web.user.UserEditPage; import jp.sf.pal.admin.web.user.UserGroupEditPage; import jp.sf.pal.admin.web.user.UserListPage; @@ -51,6 +57,8 @@ private UserPager userPager; + private UserAttributePager userAttributePager; + private SecurityProviderLogic securityProviderLogic; private UserDxo userDxo; @@ -68,8 +76,7 @@ /** * @param securityProviderLogic the securityProviderLogic to set */ - public void setSecurityProviderLogic( - SecurityProviderLogic securityProviderLogic) + public void setSecurityProviderLogic(SecurityProviderLogic securityProviderLogic) { this.securityProviderLogic = securityProviderLogic; } @@ -107,6 +114,22 @@ } /** + * @return the userAttributePager + */ + public UserAttributePager getUserAttributePager() + { + return userAttributePager; + } + + /** + * @param userAttributePager the userAttributePager to set + */ + public void setUserAttributePager(UserAttributePager userAttributePager) + { + this.userAttributePager = userAttributePager; + } + + /** * @return the labelHelper */ public LabelHelper getLabelHelper() @@ -127,9 +150,7 @@ UserPager pager = getUserPager(); // check page action - PagerUtil.updatePageNumber(pager, - PALAdminConstants.PREVIOUS_PAGE_NUMBER, - PALAdminConstants.NEXT_PAGE_NUMBER); + PagerUtil.updatePageNumber(pager, PALAdminConstants.PREVIOUS_PAGE_NUMBER, PALAdminConstants.NEXT_PAGE_NUMBER); // set user list List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); @@ -155,8 +176,7 @@ public List<Map<String, String>> getProfilingRuleNames() { - return PALAdminUtil.createItems(securityProviderLogic - .getProfilingRuleNames().iterator()); + return PALAdminUtil.createItems(securityProviderLogic.getProfilingRuleNames().iterator()); } public boolean isUserExists(String username) @@ -181,14 +201,10 @@ // set pull-down LabelHelper labelHelper = getLabelHelper(); List<Map<String, String>> list = new ArrayList<Map<String, String>>(); - list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("Active"), - PALAdminConstants.USER_CREDENTIAL_ACTIVE)); - list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("Expired"), - PALAdminConstants.USER_CREDENTIAL_EXPIRED)); - list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("Extend"), - PALAdminConstants.USER_CREDENTIAL_EXTEND)); - list.add(PALAdminUtil.createItem(labelHelper - .getLabelValue("ExtendUnlimited"), + list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("Active"), PALAdminConstants.USER_CREDENTIAL_ACTIVE)); + list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("Expired"), PALAdminConstants.USER_CREDENTIAL_EXPIRED)); + list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("Extend"), PALAdminConstants.USER_CREDENTIAL_EXTEND)); + list.add(PALAdminUtil.createItem(labelHelper.getLabelValue("ExtendUnlimited"), PALAdminConstants.USER_CREDENTIAL_EXTEND_UNLIMITED)); page.setExpiresItems(list); } @@ -208,14 +224,12 @@ public List<Map<String, String>> getGroupNames() { - return PALAdminUtil.createItems(securityProviderLogic.getGroupNames() - .iterator()); + return PALAdminUtil.createItems(securityProviderLogic.getGroupNames().iterator()); } public List<Map<String, String>> getGroupNamesForUsername(String username) { - return PALAdminUtil.createItems(securityProviderLogic - .getGroupNamesForUsername(username).iterator()); + return PALAdminUtil.createItems(securityProviderLogic.getGroupNamesForUsername(username).iterator()); } public void addGroupToUser(UserGroupEditPage page) throws PALAdminException @@ -227,8 +241,7 @@ getSecurityProviderLogic().addUserToGroup(user, group); } - public void removeGroupsFromUser(UserGroupEditPage page) - throws PALAdminException + public void removeGroupsFromUser(UserGroupEditPage page) throws PALAdminException { List<String> failedGroups = new ArrayList<String>(); User user = new User(); @@ -249,8 +262,7 @@ } if (failedGroups.size() > 0) { - throw new PALAdminException("Could not remove groups: " - + failedGroups); + throw new PALAdminException("Could not remove groups: " + failedGroups); } } @@ -267,8 +279,7 @@ { return false; } - Iterator<String> ite = getSecurityProviderLogic() - .getGroupNamesForUsername(username).iterator(); + Iterator<String> ite = getSecurityProviderLogic().getGroupNamesForUsername(username).iterator(); while (ite.hasNext()) { if (groupname.equals(ite.next())) @@ -300,14 +311,12 @@ public List<Map<String, String>> getRoleNames() { - return PALAdminUtil.createItems(securityProviderLogic.getRoleNames() - .iterator()); + return PALAdminUtil.createItems(securityProviderLogic.getRoleNames().iterator()); } public List<Map<String, String>> getRoleNamesForUsername(String username) { - return PALAdminUtil.createItems(securityProviderLogic - .getRoleNamesForUsername(username).iterator()); + return PALAdminUtil.createItems(securityProviderLogic.getRoleNamesForUsername(username).iterator()); } public void addRoleToUser(UserRoleEditPage page) throws PALAdminException @@ -319,8 +328,7 @@ getSecurityProviderLogic().addUserToRole(user, role); } - public void removeRolesFromUser(UserRoleEditPage page) - throws PALAdminException + public void removeRolesFromUser(UserRoleEditPage page) throws PALAdminException { List<String> failedRoles = new ArrayList<String>(); User user = new User(); @@ -341,8 +349,7 @@ } if (failedRoles.size() > 0) { - throw new PALAdminException("Could not remove roles: " - + failedRoles); + throw new PALAdminException("Could not remove roles: " + failedRoles); } } @@ -359,8 +366,7 @@ { return false; } - Iterator<String> ite = getSecurityProviderLogic() - .getRoleNamesForUsername(username).iterator(); + Iterator<String> ite = getSecurityProviderLogic().getRoleNamesForUsername(username).iterator(); while (ite.hasNext()) { if (rolename.equals(ite.next())) @@ -372,25 +378,80 @@ return false; } + public void loadPage(UserAttributeListPage page) throws PALAdminException + { + UserAttributePager pager = getUserAttributePager(); + + User user = new User(); + user.setName(page.getName()); + pager.setUser(user); + + // check page action + PagerUtil.updatePageNumber(pager, PALAdminConstants.PREVIOUS_PAGE_NUMBER, PALAdminConstants.NEXT_PAGE_NUMBER); + + // set user list + List<Map<String, Object>> list = new ArrayList<Map<String, Object>>(); + for (Iterator<Entry<String, String>> ite = getSecurityProviderLogic().getUserAttributes(pager).entrySet().iterator(); ite + .hasNext();) + { + Entry<String, String> entry = ite.next(); + Map<String, Object> map = new HashMap<String, Object>(); + map.put("key", entry.getKey()); + map.put("value", entry.getValue()); + list.add(map); + } + PagerUtil.updatePagerPage(page, pager); + page.setUserAttributeItems(list); + } + + public void loadPage(UserAttributeEditPage page) throws PALAdminException + { + page.setValue(getSecurityProviderLogic().getUserAttributeValue(page.getName(), page.getKey())); + } + + public void loadPage(UserAttributeConfirmPage page) throws PALAdminException + { + page.setValue(getSecurityProviderLogic().getUserAttributeValue(page.getName(), page.getKey())); + } + + public void insert(UserAttributeConfirmPage page) throws PALAdminException + { + if (page.getValue() == null) + { + page.setValue(""); + } + getSecurityProviderLogic().insertUserAttribute(page.getName(), page.getKey(), page.getValue()); + } + + public void update(UserAttributeConfirmPage page) throws PALAdminException + { + if (page.getValue() == null) + { + page.setValue(""); + } + getSecurityProviderLogic().insertUserAttribute(page.getName(), page.getKey(), page.getValue()); + } + + public void delete(UserAttributeConfirmPage page) throws PALAdminException + { + getSecurityProviderLogic().deleteUserAttribute(page.getName(), page.getKey()); + } + public void loadPage(UserProfilingRuleEditPage page) { List<Map<String, String>> locatorList = new ArrayList<Map<String, String>>(); - locatorList.add(PALAdminUtil.createItem(PALAdminConstants.LOCATOR_PAGE, - PALAdminConstants.LOCATOR_PAGE)); - locatorList.add(PALAdminUtil.createItem(PALAdminConstants.LOCATOR_MENU, - PALAdminConstants.LOCATOR_MENU)); + locatorList.add(PALAdminUtil.createItem(PALAdminConstants.LOCATOR_PAGE, PALAdminConstants.LOCATOR_PAGE)); + locatorList.add(PALAdminUtil.createItem(PALAdminConstants.LOCATOR_MENU, PALAdminConstants.LOCATOR_MENU)); page.setNewLocatorNameItems(locatorList); page.setNewProfilingRuleNameItems(getProfilingRuleNames()); User user = new User(); user.setName(page.getName()); - page.setPrincipalRulesItems(getSecurityProviderLogic() - .getPrincipalRuleForUser(user)); + page.setPrincipalRulesItems(getSecurityProviderLogic().getPrincipalRuleForUser(user)); } - public void addPrincipalRuleToUser(UserProfilingRuleEditPage page) - throws PALAdminException + public void addPrincipalRuleToUser(UserProfilingRuleEditPage page) throws PALAdminException { User user = new User(); user.setName(page.getName()); @@ -400,8 +461,7 @@ getSecurityProviderLogic().addPrincipalRuleToUser(user, principalRule); } - public void removePrincipalRulesFromUser(UserProfilingRuleEditPage page) - throws PALAdminException + public void removePrincipalRulesFromUser(UserProfilingRuleEditPage page) throws PALAdminException { List<String> failedPrincipalRules = new ArrayList<String>(); User user = new User(); @@ -411,10 +471,8 @@ { try { - PrincipalRule principalRule = PrincipalRule - .getInstance(principalRules[i]); - getSecurityProviderLogic().removePrincipalRuleFromUser(user, - principalRule); + PrincipalRule principalRule = PrincipalRule.getInstance(principalRules[i]); + getSecurityProviderLogic().removePrincipalRuleFromUser(user, principalRule); } catch (PALAdminException e) { @@ -423,8 +481,7 @@ } if (failedPrincipalRules.size() > 0) { - throw new PALAdminException("Could not remove principalRules: " - + failedPrincipalRules); + throw new PALAdminException("Could not remove principalRules: " + failedPrincipalRules); } } } Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/AbstractUserAttributePage.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/AbstractUserAttributePage.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/AbstractUserAttributePage.java 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,68 @@ +package jp.sf.pal.admin.web.user; + +import jp.sf.pal.admin.service.UserManagementService; +import jp.sf.pal.admin.web.AbstractCrudPage; + +public class AbstractUserAttributePage extends AbstractCrudPage +{ + + private String name; + private String key; + + private String value; + + private UserManagementService userManagementService; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + /** + * @return the key + */ + public String getKey() + { + return key; + } + + /** + * @param key the key to set + */ + public void setKey(String key) + { + this.key = key; + } + + public String getValue() + { + return value; + } + + public void setValue(String value) + { + this.value = value; + } + + /** + * @return the userManagementService + */ + public UserManagementService getUserManagementService() + { + return userManagementService; + } + + /** + * @param userManagementService the userManagementService to set + */ + public void setUserManagementService(UserManagementService userManagementService) + { + this.userManagementService = userManagementService; + } + +} Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/AbstractUserAttributePage.java ___________________________________________________________________ Name: svn:eol-style + native Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeConfirmPage.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeConfirmPage.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeConfirmPage.java 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,112 @@ +package jp.sf.pal.admin.web.user; + +import java.io.Serializable; + +import javax.faces.internal.FacesMessageUtil; + +import jp.sf.pal.admin.PALAdminException; +import jp.sf.pal.admin.web.CrudType; + +import org.seasar.framework.log.Logger; +import org.seasar.teeda.extension.annotation.takeover.TakeOver; +import org.seasar.teeda.extension.annotation.takeover.TakeOverType; + +public class UserAttributeConfirmPage extends AbstractUserAttributePage implements Serializable +{ + + /** + * + */ + private static final long serialVersionUID = 8059029609744518426L; + + /** + * Logger for this class + */ + private static final Logger logger = Logger.getLogger(UserAttributeConfirmPage.class); + + public Class initialize() + { + return null; + } + + public Class prerender() + { + if (getCrudType() == CrudType.DELETE) + { + // update + if (getKey() != null) + { + try + { + getUserManagementService().loadPage(this); + } + catch (PALAdminException e) + { + FacesMessageUtil.addErrorMessage("failed.to.get.userattributes"); + logger.error("Failed to get user attributes: " + getName(), e); + } + } + else + { + setCrudType(CrudType.READ); + return UserAttributeListPage.class; + } + } + return null; + } + + @TakeOver(type = TakeOverType.INCLUDE, properties = "name") + public Class doUpdate() + { + + switch (getCrudType()) + { + case CrudType.CREATE: + try + { + getUserManagementService().insert(this); + FacesMessageUtil.addInfoMessage("added.new.userattribute", new Object[] { getName() }); + } + catch (PALAdminException e) + { + FacesMessageUtil.addErrorMessage("failed.to.add.new.userattribute", new Object[] { getName() }); + logger.error("Failed to add a new user attribute: " + getName(), e); + } + break; + case CrudType.UPDATE: + try + { + getUserManagementService().update(this); + FacesMessageUtil.addInfoMessage("added.new.userattribute", new Object[] { getName() }); + } + catch (PALAdminException e) + { + FacesMessageUtil.addErrorMessage("failed.to.add.new.userattribute", new Object[] { getName() }); + logger.error("Failed to add a new user attribute: " + getName(), e); + } + break; + case CrudType.DELETE: + try + { + getUserManagementService().delete(this); + FacesMessageUtil.addInfoMessage("deleted.userattribute", new Object[] { getName() }); + } + catch (PALAdminException e) + { + FacesMessageUtil.addErrorMessage("failed.to.delete.userattribute", new Object[] { getName() }); + logger.error("Failed to delete a new user attribute: " + getName(), e); + } + break; + default: + break; + } + return UserAttributeListPage.class; + } + + public boolean isComeFromList() + { + return getCrudType() == CrudType.READ || getCrudType() == CrudType.DELETE; + + } + +} Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeConfirmPage.java ___________________________________________________________________ Name: svn:eol-style + native Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeEditPage.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeEditPage.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeEditPage.java 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,60 @@ +package jp.sf.pal.admin.web.user; + +import java.io.Serializable; + +import javax.faces.internal.FacesMessageUtil; + +import org.seasar.framework.log.Logger; + +import jp.sf.pal.admin.PALAdminException; +import jp.sf.pal.admin.web.CrudType; + +public class UserAttributeEditPage extends AbstractUserAttributePage implements Serializable +{ + + /** + * + */ + private static final long serialVersionUID = -6429222904388985538L; + + /** + * Logger for this class + */ + private static final Logger logger = Logger.getLogger(UserAttributeEditPage.class); + + public String initialize() + { + return null; + } + + public String prerender() + { + if (getCrudType() == CrudType.UPDATE) + { + // update + if (getKey() != null) + { + try + { + getUserManagementService().loadPage(this); + } + catch (PALAdminException e) + { + FacesMessageUtil.addErrorMessage("failed.to.get.userattributes"); + logger.error("Failed to get user attributes: " + getName(), e); + } + } + else + { + setCrudType(CrudType.CREATE); + } + } + return null; + } + + public Class doBack() + { + setCrudType(CrudType.READ); + return UserAttributeListPage.class; + } +} Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeEditPage.java ___________________________________________________________________ Name: svn:eol-style + native Added: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeListPage.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeListPage.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeListPage.java 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,140 @@ +package jp.sf.pal.admin.web.user; + +import java.io.Serializable; +import java.util.List; +import java.util.Map; + +import javax.faces.internal.FacesMessageUtil; + +import org.seasar.framework.log.Logger; +import org.seasar.teeda.extension.annotation.takeover.TakeOver; + +import jp.sf.pal.admin.PALAdminException; +import jp.sf.pal.admin.service.UserManagementService; +import jp.sf.pal.admin.web.AbstractPagerPage; +import jp.sf.pal.admin.web.CrudType; + +public class UserAttributeListPage extends AbstractPagerPage implements Serializable +{ + + /** + * + */ + private static final long serialVersionUID = 8042231097969101982L; + + /** + * Logger for this class + */ + private static final Logger logger = Logger.getLogger(UserAttributeListPage.class); + + private String name; + + private String key; + + private int userAttributeIndex; + + private List<Map<String, Object>> userAttributeItems; + + private String value; + + private UserManagementService userManagementService; + + public String getName() + { + return name; + } + + public void setName(String name) + { + this.name = name; + } + + /** + * @return the key + */ + public String getKey() + { + return key; + } + + /** + * @param key the key to set + */ + public void setKey(String key) + { + this.key = key; + } + + public int getUserAttributeIndex() + { + return userAttributeIndex; + } + + public void setUserAttributeIndex(int userAttributeIndex) + { + this.userAttributeIndex = userAttributeIndex; + } + + public List<Map<String, Object>> getUserAttributeItems() + { + return userAttributeItems; + } + + public void setUserAttributeItems(List<Map<String, Object>> userAttributeItems) + { + this.userAttributeItems = userAttributeItems; + } + + public String getValue() + { + return value; + } + + public void setValue(String value) + { + this.value = value; + } + + /** + * @return the userManagementService + */ + public UserManagementService getUserManagementService() + { + return userManagementService; + } + + /** + * @param userManagementService the userManagementService to set + */ + public void setUserManagementService(UserManagementService userManagementService) + { + this.userManagementService = userManagementService; + } + + @TakeOver(properties = "crudType,name") + public Class doCreate() + { + setCrudType(CrudType.CREATE); + return UserAttributeEditPage.class; + } + + public String initialize() + { + return null; + } + + public String prerender() + { + try + { + getUserManagementService().loadPage(this); + } + catch (PALAdminException e) + { + FacesMessageUtil.addErrorMessage("failed.to.get.userattributes"); + logger.error("Failed to get user attributes: " + getName(), e); + } + return null; + } + +} Property changes on: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserAttributeListPage.java ___________________________________________________________________ Name: svn:eol-style + native Modified: pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserListPage.java =================================================================== --- pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserListPage.java 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/java/jp/sf/pal/admin/web/user/UserListPage.java 2007-06-26 04:03:56 UTC (rev 198) @@ -110,8 +110,7 @@ /** * @param userManagementService the userManagementService to set */ - public void setUserManagementService( - UserManagementService userManagementService) + public void setUserManagementService(UserManagementService userManagementService) { this.userManagementService = userManagementService; } @@ -130,7 +129,7 @@ catch (PALAdminException e) { FacesMessageUtil.addErrorMessage("failed.to.get.users"); - logger.error("Failed to add a new user: " + getName(), e); + logger.error("Failed to get users: " + getName(), e); } return null; Modified: pal-admin/trunk/src/main/resources/appMessages.properties =================================================================== --- pal-admin/trunk/src/main/resources/appMessages.properties 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/resources/appMessages.properties 2007-06-26 04:03:56 UTC (rev 198) @@ -13,6 +13,11 @@ deleted.group=Delete the Group({0}). failed.to.delete.group=Failed to delete the Group({0}). +added.new.userattribute=Added a new User Attribute({0}). +failed.to.add.new.userattribute=Failed to add a new User Attribute({0}). +deleted.userattribute=Delete the User Attribute({0}). +failed.to.delete.userattribute=Failed to delete the User Attribute({0}). + could.not.find.user=Could not find the target user. updated.user.information= Updated the target user information({0}). failed.to.update.user.information=Failed to updated the user information({0}). @@ -64,6 +69,7 @@ failed.to.delete.repository=Failed to delete the repository. failed.to.get.users=Failed to load users. +failed.to.get.userattributes=Failed to load user attributes. error.lacking.password=You must enter a password. error.userid_already_exists=Requested User ID already exists. Please select another User Id. Modified: pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/user/label.properties =================================================================== --- pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/user/label.properties 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/resources/jp/sf/pal/admin/web/user/label.properties 2007-06-26 04:03:56 UTC (rev 198) @@ -6,8 +6,10 @@ profilingRule=Profiling Rule userList=User List userInformation=User Information +userAttributeList=User Attribute basicTab=Basic profilingRuleTab=Rule +userAttributeTab=User Attribute # userList userList.delete=Delete @@ -39,3 +41,15 @@ userProfilingRuleEdit.profilingrule=Profiling Rule userProfilingRuleEdit.notFound=Not found. +# userAttributeList +userAttributeList.userAttributeKey=Key +userAttributeList.userAttributeValue=Value + +# userAttributeEdit +userAttributeEdit.userAttributeKey=Key +userAttributeEdit.userAttributeValue=Value + +# userAttributeConfirm +userAttributeConfirm.userAttributeKey=Key +userAttributeConfirm.userAttributeValue=Value + Added: pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="stylesheet" type="text/css" href="../../css/global.css"/> +</head> +<body> +<form id="UserAttributeConfirmForm"><input type="hidden" id="crudType" /> +<!-- tab: BEGIN --> +<div style="padding: 0px 0px 3px 10px; margin:5px 0px;border-bottom:1px solid #000000;"> + <label id="userTabLabel" style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #ffffff;border-left:1px solid #000000;padding: 3px 5px 3px 5px; margin: 0px 0px;">User</label> + <a id="jumpRoleList" href="../role/roleList.html" style="text-decoration: none;"> + <span id="roleTabLabel" style="font-weight: bold;color:#ffffff;background-color:#999999;border:1px solid #000000; padding: 3px 5px 3px 5px; margin: 0px 0px;">Role</span> + </a> + <a id="jumpGroupList" href="../group/groupList.html" style="text-decoration: none;"> + <span id="groupTabLabel" style="font-weight: bold;color:#ffffff;background-color:#999999;border:1px solid #000000; padding: 3px 5px 3px 5px; margin: 0px 0px;">Group</span> + </a> +</div> +<!-- tab: END --> + +<div> + <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span> +</div> + +<!-- content: BEGIN --> +<div style="padding:5px 0px;"> + <div class="portlet-section-header"> + <label id="userAttributeInformationLabel">UserAttribute Information</label> + </div> + + <div> + <a id="jumpUserEdit" href="userEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="basicTabLabel">Basic</span> + </a> + | + <a id="jumpUserRoleEdit" href="userRoleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="roleTabLabel">Role</span> + </a> + | + <a id="jumpUserGroupEdit" href="userGroupEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="groupTabLabel">Group</span> + </a> + | + <label id="userAttributeTabLabel">User Attribute</label> + | + <a id="jumpUserProfilingRuleEdit" href="userProfilingRuleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="profilingRuleTabLabel">Profiling Rule</span> + </a> + </div> + + <table class="tablebg"> + <tr> + <td class="portlet-section-subheader"><label id="userAttributeKeyLabel">Key</label></td> + <td class="portlet-section-body"><span id="key">key</span><input type="hidden" id="key-hidden" /></td> + <td><span id="nameMessage"></span></td> + </tr> + <tr> + <td class="portlet-section-subheader"><label id="userAttributeValueLabel">Value</label></td> + <td class="portlet-section-body"><span id="value">value</span><input type="hidden" id="value-hidden" /></td> + <td><span id="valueMessage"></span></td> + </tr> + </table> + <input type="hidden" id="name-hidden" /> + + <div> + <div id="isComeFromList" style="display:inline;"> + <input type="button" id="jumpUserAttributeList" value="Back" + onclick="location.href='userAttributeList.html'" class="portlet-form-button"/> + </div> + <div id="isNotRead" style="display:inline;"> + <input type="button" id="doUpdate" value="Finish" onclick="location.href='userAttributeList.html'" class="portlet-form-button"/> + </div> + </div> +</div> +<!-- content: END --> +</form> +</body></html> Property changes on: pal-admin/trunk/src/main/webapp/view/user/userAttributeConfirm.html ___________________________________________________________________ Name: svn:eol-style + native Added: pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,80 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="stylesheet" type="text/css" href="../../css/global.css"/> +</head> +<body> +<form id="UserAttributeEditForm"><input type="hidden" id="crudType" /> +<!-- tab: BEGIN --> +<div style="padding: 0px 0px 3px 10px; margin:5px 0px;border-bottom:1px solid #000000;"> + <label id="userTabLabel" style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #ffffff;border-left:1px solid #000000;padding: 3px 5px 3px 5px; margin: 0px 0px;">User</label> + <a id="jumpRoleList" href="../role/roleList.html" style="text-decoration: none;"> + <span id="roleTabLabel" style="font-weight: bold;color:#ffffff;background-color:#999999;border:1px solid #000000; padding: 3px 5px 3px 5px; margin: 0px 0px;">Role</span> + </a> + <a id="jumpGroupList" href="../group/groupList.html" style="text-decoration: none;"> + <span id="groupTabLabel" style="font-weight: bold;color:#ffffff;background-color:#999999;border:1px solid #000000; padding: 3px 5px 3px 5px; margin: 0px 0px;">Group</span> + </a> +</div> +<!-- tab: END --> + +<div> + <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span> +</div> + +<!-- content: BEGIN --> +<div style="padding:5px 0px;"> + <div class="portlet-section-header"> + <label id="userAttributeInformationLabel">UserAttribute Information</label> + </div> + + <div> + <a id="jumpUserEdit" href="userEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="basicTabLabel">Basic</span> + </a> + | + <a id="jumpUserRoleEdit" href="userRoleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="roleTabLabel">Role</span> + </a> + | + <a id="jumpUserGroupEdit" href="userGroupEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="groupTabLabel">Group</span> + </a> + | + <label id="userAttributeTabLabel">User Attribute</label> + | + <a id="jumpUserProfilingRuleEdit" href="userProfilingRuleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="profilingRuleTabLabel">Profiling Rule</span> + </a> + </div> + + <table class="tablebg"> + <tr> + <td class="portlet-section-subheader"><label id="userAttributeKeyLabel">Key</label></td> + <td class="portlet-section-body"> + <div id="isUpdate" style="display:inline;"><input type="hidden" id="key-hidden"/><span id="key-text">Key</span></div> + <div id="isNotUpdate" style="display:inline;"><input type="text" id="key"/></div> + </td> + <td><span id="keyMessage"></span></td> + </tr> + <tr> + <td class="portlet-section-subheader"><label id="userAttributeValueLabel">Value</label></td> + <td class="portlet-section-body"><input type="text" id="value"/></td> + <td><span id="valueMessage"></span></td> + </tr> + </table> + <input type="hidden" id="name-hidden"/> + + <div> + <input type="button" id="doBack" value="Back" + onclick="location.href='userAttributeList.html'" class="portlet-form-button"/> + <div id="isNotRead" style="display:inline;"> + <input type="button" id="goUserAttributeConfirm" value="Confirm" + onclick="location.href='userAttributeConfirm.html'" class="portlet-form-button"/> + </div> + </div> +</div> +<!-- content: BEGIN --> +</form> +</body></html> Property changes on: pal-admin/trunk/src/main/webapp/view/user/userAttributeEdit.html ___________________________________________________________________ Name: svn:eol-style + native Added: pal-admin/trunk/src/main/webapp/view/user/userAttributeList.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userAttributeList.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userAttributeList.html 2007-06-26 04:03:56 UTC (rev 198) @@ -0,0 +1,107 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> +<html xmlns="http://www.w3.org/1999/xhtml" xmlns:te="http://www.seasar.org/teeda/extension"> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> +<link rel="stylesheet" type="text/css" href="../../css/global.css"/> +</head> +<body> +<form id="UserAttributeListForm"> +<!-- tab: BEGIN --> +<div style="padding: 0px 0px 3px 10px; margin:5px 0px;border-bottom:1px solid #000000;"> + <label id="userTabLabel" style="border-top:1px solid #000000;border-right:1px solid #000000;border-bottom:1px solid #ffffff;border-left:1px solid #000000;padding: 3px 5px 3px 5px; margin: 0px 0px;">User</label> + <a id="jumpRoleList" href="../role/roleList.html" style="text-decoration: none;"> + <span id="roleTabLabel" style="font-weight: bold;color:#ffffff;background-color:#999999;border:1px solid #000000; padding: 3px 5px 3px 5px; margin: 0px 0px;">Role</span> + </a> + <a id="jumpGroupList" href="../group/groupList.html" style="text-decoration: none;"> + <span id="groupTabLabel" style="font-weight: bold;color:#ffffff;background-color:#999999;border:1px solid #000000; padding: 3px 5px 3px 5px; margin: 0px 0px;">Group</span> + </a> +</div> +<!-- tab: END --> + +<div> + <span id="allMessages" fatalClass="portlet-msg-error" errorClass="portlet-msg-error" warnClass="portlet-msg-alert" infoClass="portlet-msg-info"></span> +</div> + +<!-- content: BEGIN --> +<div style="padding:5px 0px;"> + <div class="portlet-section-header"> + <label id="userAttributeListLabel">UserAttribute List</label> + </div> + + <div> + <a id="jumpUserEdit" href="userEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="basicTabLabel">Basic</span> + </a> + | + <a id="jumpUserRoleEdit" href="userRoleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="roleTabLabel">Role</span> + </a> + | + <a id="jumpUserGroupEdit" href="userGroupEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="groupTabLabel">Group</span> + </a> + | + <label id="userAttributeTabLabel">User Attribute</label> + | + <a id="jumpUserProfilingRuleEdit" href="userProfilingRuleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> + <span id="profilingRuleTabLabel">Profiling Rule</span> + </a> + </div> + + <input type="hidden" id="name-hidden"/> + <div> + <label id="actionLabel" class="portlet-form-label">Action:</label> + <input type="button" id="doCreate" value="Create" onclick="location.href='userAttributeEdit.html'" class="portlet-form-button"/><br/> + </div> + + <div> + <span id="count-header">10</span><!-- TODO: i18n--> <label id="foundLabel"> found.</label> + (<span id="currentPageNumber-header">3</span>/<span id="maxPageNumber-header">5</span>) + </div> + + <div> + <a id="goPreviousPage-header" href="userAttributeList.html?previousPageNumber=12&name=name" + te:rendered="#{user_userAttributeListPage.previousPageNumber!=null}"> + <span id="previousPageLabel-header"><<Previous</span> + </a> + <a id="goNextPage-header" href="userAttributeList.html?nextPageNumber=22&name=name" + te:rendered="#{user_userAttributeListPage.nextPageNumber!=null}"> + <span id="nextPageLabel-header">Next>></span> + </a> + </div> + + <table> + <thead class="portlet-section-subheader"> + <tr> + <th><label id="userAttributeKeyLabel">Key</label></th> + <th><label id="userAttributeValueLabel">Value</label></th> + <th><br/></th> + </tr> + </thead> + <tbody id="userAttributeItems"> + <tr> + <td class="portlet-section-body"><span id="key">key</span></td> + <td class="portlet-section-body"><span id="value">value</span></td> + <td class="portlet-section-alternate"> + <a id="goUserAttributeEdit-edit" href="userAttributeEdit.html?fixed_crudType=2&name=name&key=key"><span id="editLabel">Edit</span></a> + <a id="goUserAttributeConfirm-delete" href="userAttributeConfirm.html?fixed_crudType=3&name=name&key=key"><span id="deleteLabel">Delete</span></a> + </td> + </tr> + </tbody> + </table> + + <div> + <a id="goPreviousPage-footer" href="userAttributeList.html?previousPageNumber=12&name=name" + te:rendered="#{user_userAttributeListPage.previousPageNumber!=null}"> + <span id="previousPageLabel-footer"><<Previous</span> + </a> + <a id="goNextPage-footer" href="userAttributeList.html?nextPageNumber=2&name=name" + te:rendered="#{user_userAttributeListPage.nextPageNumber!=null}"> + <span id="nextPageLabel-footer">Next>></span> + </a> + </div> +</div> +<!-- content: END --> +</form> +</body></html> Property changes on: pal-admin/trunk/src/main/webapp/view/user/userAttributeList.html ___________________________________________________________________ Name: svn:eol-style + native Modified: pal-admin/trunk/src/main/webapp/view/user/userEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userEdit.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userEdit.html 2007-06-26 04:03:56 UTC (rev 198) @@ -40,6 +40,10 @@ <span id="groupTabLabel">Group</span> </a> | + <a id="jumpUserAttributeEdit" href="userAttributeList.html?fixed_crudType=1&name=name" style="text-decoration: none;"> + <span id="userAttributeTabLabel">User Attribute</span> + </a> + | <a id="jumpUserProfilingRuleEdit" href="userProfilingRuleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> <span id="profilingRuleTabLabel">Profiling Rule</span> </a> Modified: pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userGroupEdit.html 2007-06-26 04:03:56 UTC (rev 198) @@ -40,6 +40,10 @@ | <label id="groupTabLabel">Group</label> | + <a id="jumpUserAttributeEdit" href="userAttributeEdit.html?fixed_crudType=1&name=name" style="text-decoration: none;"> + <span id="userAttributeTabLabel">User Attribute</span> + </a> + | <a id="jumpUserProfilingRuleEdit" href="userProfilingRuleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> <span id="profilingRuleTabLabel">Profiling Rule</span> </a> Modified: pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userProfilingRuleEdit.html 2007-06-26 04:03:56 UTC (rev 198) @@ -42,6 +42,10 @@ <span id="groupTabLabel">Group</span> </a> | + <a id="jumpUserAttributeEdit" href="userAttributeEdit.html?fixed_crudType=1&name=name" style="text-decoration: none;"> + <span id="userAttributeTabLabel">User Attribute</span> + </a> + | <label id="profilingRuleTabLabel">Profiling Rule</label> </div> Modified: pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html =================================================================== --- pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html 2007-06-26 04:03:14 UTC (rev 197) +++ pal-admin/trunk/src/main/webapp/view/user/userRoleEdit.html 2007-06-26 04:03:56 UTC (rev 198) @@ -40,6 +40,10 @@ <span id="groupTabLabel">Group</span> </a> | + <a id="jumpUserAttributeEdit" href="userAttributeEdit.html?fixed_crudType=1&name=name" style="text-decoration: none;"> + <span id="userAttributeTabLabel">User Attribute</span> + </a> + | <a id="jumpUserProfilingRuleEdit" href="userProfilingRuleEdit.html?fixed_crudType=3&name=name" style="text-decoration: none;"> <span id="profilingRuleTabLabel">Profiling Rule</span> </a>