private static UserExtSource createUserExtSource(Map<String, String> beanAttr) { if(beanAttr==null) return null; UserExtSource userExtSource = new UserExtSource(); userExtSource.setId(Integer.valueOf(beanAttr.get("id"))); userExtSource.setLoa(Integer.valueOf(beanAttr.get("loa"))); userExtSource.setLogin(BeansUtils.eraseEscaping(beanAttr.get("login"))); //Add userId if exists if(beanAttr.get("userId") != null) userExtSource.setUserId(Integer.valueOf(beanAttr.get("userId"))); //Parse and get ExtSource ExtSource extSource; if(beanAttr.get("source").equals("\\0")) extSource = null; else { List<Pair<String, Map<String, String>>> extSourceList = beansToMap(beanAttr.get("source")); extSource = createExtSource(extSourceList.get(0).getRight()); } userExtSource.setExtSource(extSource); return userExtSource; }
/** * Creates ExtSource and UserExtSource if necessary for the purpose of joining users identities. * * @param user User to add UES to * @param actor Actor to add * @param extSourceName ExtSource name to add * @param extSourceType ExtSource type to add * @param loa loa in ext source * @return created UserExtSource * @throws PerunException when anything fails */ private UserExtSource createExtSourceAndUserExtSource(User user, String actor, String extSourceName, String extSourceType, int loa) throws PerunException { ExtSource extSource = new ExtSource(extSourceName, extSourceType); try { extSource = perun.getExtSourcesManagerBl().getExtSourceByName(registrarSession, extSourceName); } catch (ExtSourceNotExistsException ex) { extSource = perun.getExtSourcesManager().createExtSource(registrarSession, extSource, null); } UserExtSource ues = new UserExtSource(); ues.setLogin(actor); ues.setLoa(loa); ues.setExtSource(extSource); return perun.getUsersManager().addUserExtSource(registrarSession, user, ues); }