1 /* 2 * Copyright 2007-2009 The Kuali Foundation 3 * 4 * Licensed under the Educational Community License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.opensource.org/licenses/ecl2.php 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 package org.kuali.rice.kew.user; 17 18 import org.apache.commons.lang.StringUtils; 19 import org.kuali.rice.kew.service.KEWServiceLocator; 20 import org.kuali.rice.kew.web.session.UserSession; 21 import org.kuali.rice.kim.bo.Person; 22 import org.kuali.rice.kim.bo.entity.KimEntityPrivacyPreferences; 23 import org.kuali.rice.kim.bo.entity.KimPrincipal; 24 import org.kuali.rice.kim.service.IdentityManagementService; 25 import org.kuali.rice.kim.service.KIMServiceLocator; 26 import org.kuali.rice.kim.service.PersonService; 27 import org.kuali.rice.kns.util.ObjectUtils; 28 29 /** 30 * Provides some utility methods for translating user ID types. 31 * 32 * @author Kuali Rice Team (rice.collab@kuali.org) 33 */ 34 public class UserUtils { 35 36 private static final org.apache.log4j.Logger LOG = org.apache.log4j.Logger.getLogger(UserUtils.class); 37 38 private static PersonService<Person> personService; 39 private static IdentityManagementService identityManagementService; 40 41 private static final String RESTRICTED_DATA_MASK = "xxxxxx"; 42 43 public static String getIdValue(String idType, Person user) { 44 if ("workflowId".equalsIgnoreCase(idType) || "w".equalsIgnoreCase(idType) || "principalId".equalsIgnoreCase(idType)) { 45 return user.getPrincipalId(); 46 } else if ("authenticationId".equalsIgnoreCase(idType) || "a".equalsIgnoreCase(idType) || "principalName".equalsIgnoreCase(idType)) { 47 return user.getPrincipalName(); 48 } else if ("emplId".equalsIgnoreCase(idType) || "e".equalsIgnoreCase(idType)) { 49 return user.getEmployeeId(); 50 } else { 51 LOG.error("Could not determine ID Value for given id type!" + idType); 52 } 53 return null; 54 } 55 56 //public static String getDisplayableName(UserSession userSession, String principalId) { 57 // return getDisplayableName(userSession, KEWServiceLocator.getIdentityHelperService().getPrincipal(principalId)); 58 //} 59 60 /* 61 * @deprecated Person getEmailName method accounts for privacy. 62 */ 63 //@Deprecated 64 //public static String getDisplayableName(UserSession userSession, KimPrincipal principal) { 65 // if (userSession != null && !userSession.getPrincipalId().equals(principal.getPrincipalId()) && isEntityNameRestricted(principal.getEntityId())) { 66 // return RESTRICTED_DATA_MASK; 67 // } 68 // Person person = getPersonService().getPerson(principal.getPrincipalId()); 69 // return person.getName(); 70 //} 71 72 public static String getTransposedName(UserSession userSession, KimPrincipal principal) { 73 Person person = getPersonService().getPerson(principal.getPrincipalId()); 74 return person.getName(); //contructTransposedName(person); 75 } 76 77 //private static String contructTransposedName(Person person) { 78 // return person.getLastName() + (StringUtils.isNotBlank(person.getFirstName())?", " + person.getFirstName():""); 79 //} 80 81 /* 82 * @deprecated Person getEmailAddress method accounts for privacy. 83 */ 84 //@Deprecated 85 //public static String getDisplayableEmailAddress(UserSession userSession, KimPrincipal principal) { 86 // if (userSession != null && !userSession.getPrincipalId().equals(principal.getPrincipalId()) && isEntityEmailRestricted(principal.getEntityId())) { 87 // return RESTRICTED_DATA_MASK; 88 // } 89 // Person person = getPersonService().getPerson(principal.getPrincipalId()); 90 // return person.getEmailAddress(); 91 //} 92 93 //public static boolean isEntityNameRestricted(String entityId) { 94 // KimEntityPrivacyPreferences privacy = getIdentityManagementService().getEntityPrivacyPreferences( entityId ); 95 // if ( ObjectUtils.isNotNull(privacy) ) { 96 // return privacy.isSuppressName(); 97 // } 98 // return false; 99 //} 100 101 //public static boolean isEntityEmailRestricted(String entityId) { 102 // KimEntityPrivacyPreferences privacy = getIdentityManagementService().getEntityPrivacyPreferences( entityId ); 103 // if (ObjectUtils.isNotNull(privacy) ) { 104 // return privacy.isSuppressEmail(); 105 // } 106 // return false; 107 //} 108 109 /** 110 * @return the personService 111 */ 112 public static PersonService<Person> getPersonService() { 113 if ( personService == null ) { 114 personService = KIMServiceLocator.getPersonService(); 115 } 116 return personService; 117 } 118 119 /** 120 * @return the identityManagementService 121 */ 122 public static IdentityManagementService getIdentityManagementService() { 123 if ( identityManagementService == null ) { 124 identityManagementService = KIMServiceLocator.getIdentityManagementService(); 125 } 126 return identityManagementService; 127 } 128 129 }