public User getUser(){ return userData.getUser(); }
/** * Builds user login. * @param userData * @return user login */ public static String buildUserLogin(UserData userData) { // in some scenarios there are no additional ids, main id only which is user's login return (userData.getUser().getIdentifiers()!=null && !userData.getUser().getIdentifiers().isEmpty())? userData.getUser().getIdentifiers().iterator().next(): userData.getUser().getId(); }
private Map<String, String> getAllAttr(){ Map<String, String> attrs = userData.getUser().getAttributes(); if(attrs == null) attrs = Collections.emptyMap(); return attrs; }
public void addAllAttr(Map<String, String> attr){ Map<String, String> oldAttr = userData.getUser().getAttributes(); if(oldAttr==null) oldAttr = Collections.emptyMap(); Map<String, String> newAttr = Maps.newHashMap(); newAttr.putAll(oldAttr); newAttr.putAll(attr); userData.getUser().setAttributes(newAttr); }
UserData getUserDataForId(String id, List<UserData> candidates) { for (UserData current : candidates) { if (id.equals(current.getUser().getId())) { return current; } } return null; }
/** * Effective user data sorting according to the identifiers order. * Assuming candidates and ids size must is the same. * @param candidates * @param ids * @return sorted {@link UserData} objects */ List<UserData> sort(List<UserData> candidates, List<String> ids) { UserData[] result = new UserData[candidates.size()]; for (UserData current : candidates) { result[ids.indexOf(current.getUser().getId())] = current; } return Arrays.asList(result); }
/** * Builds user name. * @param userData * @return user name */ public static String buildUserName(UserData userData) { if (userData.getUser().getAttributes().containsKey(UserAttributes.ATTRIBUTE_NAME)) { return userData.getUser().getAttributes().get(UserAttributes.ATTRIBUTE_NAME); } else if (userData.getUser().getAttributes().containsKey(UserAttributes.ATTRIBUTE_FIRST_NAME)) { String userName = userData.getUser().getAttributes().get(UserAttributes.ATTRIBUTE_FIRST_NAME); if (userData.getUser().getAttributes().containsKey(UserAttributes.ATTRIBUTE_LAST_NAME)) { userName += ' '; userName += userData.getUser().getAttributes().get(UserAttributes.ATTRIBUTE_LAST_NAME); } return userName; } else { // fallback: user name will be based on login return buildUserLogin(userData); } } }
void sendMail(List<String> data, String userLogin) { UserData userData = userCatalog.loadUser(userLogin, domain, UserDataParts.SAFE_SENSITIVE_DATA); Map<String, Object> mailModel = new HashMap<String, Object>(); mailModel.put("data", data); templatedMailSender.sendMail(userData.getUser().getAttributes() .get(UserAttributes.ATTRIBUTE_EMAIL), senderServiceSubject, senderServiceTemplate, senderServiceTemplateHtml, mailModel); }
/** * Prepares results to conform with contract defined for listing users and * sorting users in the same order as the one specified for identifiers. For * each not found user null should be stored in returned list. * * @param candidates the candidates * @param genericIds not null list of ids * @return prepared results */ public static List<UserData> prepareListUsersResults(List<UserData> candidates, List<String> genericIds) { List<UserData> results = new ArrayList<UserData>(genericIds.size()); if (candidates == null || candidates.size() == 0) { for (int i = 0; i < genericIds.size(); i++) { results.add(i, null); } return results; } for (String id : genericIds) { UserData udToSet = null; for (UserData ud : candidates) { if (ud.getId().equals(id) || ud.getUser().getIdentifiers().contains(id)) { udToSet = ud; break; } } results.add(genericIds.indexOf(id), udToSet); } return results; } }
private DefaultUser loadUserData(String identifier){ UserData changedUserData = userCatalog.loadUser(identifier, domain, UserDataParts.SAFE_SENSITIVE_DATA); return new DefaultUser( DefaultUserHelper.buildUserLogin(changedUserData), "", DefaultUserHelper.buildUserName(changedUserData), changedUserData.getUser().getAttributes().get(UserAttributes.ATTRIBUTE_EMAIL), changedUserData.getUser().getAttributes()); }
public WebUserDetails convert(UserData userData, String userName) { Map<String, String> attributes = userData.getUser().getAttributes(); if(attributes == null){ attributes = Collections.emptyMap(); } Set<String> journalsIds = new HashSet<>(); final String idsString = attributes.get(AASClientConstants.ALLOWED_EXTIDS); if (StringUtils.isNotEmpty(idsString)) { final String[] splitValues = StringUtils.split(idsString, ";"); Collections.addAll(journalsIds, splitValues); } Set<Role> roles = new HashSet<>(); final Set<String> effectiveRoles = userData.getEffectiveRoles(); if (effectiveRoles != null){ if(effectiveRoles.contains(ClientSecurityRole.SUPERVISED_EDITOR.getTextValue())) roles.add(new Role(RoleName.SUPERVISED_EDITOR)); if(effectiveRoles.contains(CS.EDITOR)) roles.add(new Role(RoleName.EDITOR)); } UserAttributes userAttr = extractAttrFrom(attributes); WebUserDetails userDetails = new WebUserDetails(userName, roles, journalsIds, userAttr); return userDetails; }
List<Credential> credentials = new ArrayList<Credential>(1); LoginPasswordCredential cred = new LoginPasswordCredential(); cred.setUserId(userData.getUser().getId()); try { cred.setPassword(new String(storedPassword, passwordEncoding));
results.getResults().size()>0) { if (results.getResults().size()==1) { return results.getResults().iterator().next().getUser().getId(); } else { throw new IndeterminateException("got " + results.getResults().size() +
@Override public void activateUser(String login) throws UnknownUserException, SessionManagerException { try { UserData userData = userCatalog.loadUser(login, domain, UserDataParts.ALL); if (userData == null) { throw new UnknownUserException("No user found"); } pl.edu.icm.yadda.service2.user.model.User user = userData.getUser(); if (user.getFlags()!=null) { user.getFlags().remove(UserFlagsConstants.INACTIVE); } else { user.setFlags(new HashSet<String>()); } user.getFlags().add(UserFlagsConstants.ACTIVE); userCatalog.updateUser(user); } catch (UserNotFoundException e) { throw new SystemException(Modules.PREFERENCES, e.getMessage(), e); } }
/** * Secures {@link UserData} object. * @param source * @return secured {@link UserData} object */ protected UserData prepareMinimalUserData(UserData source) { if (source==null) { return null; } // creating new object to make sure only specified data will be sent to unauthorized client UserData result = new UserData(); result.setId(source.getId()); result.setUser(prepareMinimalUser(source.getUser())); return result; }
@Override public void changeUserDataAttributeValue(AttributeEntry entry) { String userIdentifier = currentUser.getLogin(); UserData userData = userCatalog.loadUser(userIdentifier, domain, UserDataParts.SAFE_SENSITIVE_DATA); pl.edu.icm.yadda.service2.user.model.User user = userData.getUser(); user.getAttributes().put(entry.getName(), entry.getValue()); try { userCatalog.updateUser(user); currentUser = loadUserData(userIdentifier); } catch (UserNotFoundException e) { throw new SystemException(Modules.PREFERENCES, e.getMessage()); } }
@Override public void changeUserData(String newName, String newEmail, String newPassword, Map<String, String> attributes) { try { UserData userData = userCatalog.loadUser(currentUser.getLogin(), domain, UserDataParts.SAFE_SENSITIVE_DATA); pl.edu.icm.yadda.service2.user.model.User user = userData.getUser(); String newId = newEmail; user.getIdentifiers().remove(currentUser.getEmail()); user.getIdentifiers().add(newId); user.setAttributes(attributes); userCatalog.updateUser(user); currentUser = loadUserData(newId); notificationService.publishLocalizedNotification( NotificationLevel.INFO, MessageConstants.PAGE_CHANGE_USER_DATA_SUCCESS); } catch (UserNotFoundException e) { throw new SystemException(Modules.PREFERENCES, e.getMessage()); } }
new YaddaError(SecurityConstants.ERROR_AUTH, message)); } else { if (userDataResp.getUserData()!=null && userDataResp.getUserData().getUser()!=null) { auxParams.put(BackendAuthorizerRequest.UNSUFFIXED_GENERIC_PARAM_VALUE, userDataResp.getUserData().getUser().getId()); if (userDataResp.getUserData().getUser().getDomain()!=null) { auxParams.put(XACMLConstants.SUBJECT_AUX_PARAM_DOMAIN_ROOT_SUFFIX, extractDomainRoot(userDataResp.getUserData().getUser().getDomain())); auxParams.put(XACMLConstants.SUBJECT_AUX_PARAM_DOMAIN_SUFFIX, userDataResp.getUserData().getUser().getDomain());
@Override public void annotationChanged(AnnotationEvent event) { if (event.getType().equals(AnnotationEventType.CREATE) && event.getAnnotation().getType().equals(AnnotationType.CORRECTION_REQUEST.toString())) { try { List<UserData> users = userCatalog.searchUsers(usersDomain, null, usersRoles, attributes, null, -1, -1, UserData.UserDataParts.SAFE_SENSITIVE_DATA) .getResults(); AnnotationData annotationData = annotationService.getNewestAnnotationVersion(event.getAnnotation().getId()); for (UserData data : users) { NotificationMessage message = new NotificationMessage(); message.setSender(messageSender); message.setRecipient(data.getUser().getAttributes() .get(UserAttributes.ATTRIBUTE_EMAIL)); message.setSubject(messageSubject); message.setArgument(NotificationMessageData.TARGET_ID, annotationData.getTargetId()); messageChannel.send(message); } } catch (Exception e) { logger.error(e.getMessage(), e); } } }
UserData userData = userCatalog.loadUser(currentUser.getLogin(), domain, UserDataParts.SAFE_SENSITIVE_DATA); pl.edu.icm.yadda.service2.user.model.User user = userData.getUser(); user.getAttributes().put(UserAttributes.ATTRIBUTE_NAME, newName); user.getAttributes().put(UserAttributes.ATTRIBUTE_EMAIL, newEmail); DefaultUserHelper.buildUserLogin(changedUserData), "", DefaultUserHelper.buildUserName(changedUserData), changedUserData.getUser().getAttributes().get(UserAttributes.ATTRIBUTE_EMAIL), changedUserData.getUser().getAttributes()); notificationService.publishLocalizedNotification( NotificationLevel.INFO,