/** * Check if member didn't submit new extension application - in such case, do not send expiration notifications * * @param member Member to check applications for * @return TRUE = didn't submit application / FALSE = otherwise */ private boolean didntSubmitExtensionApplication(Member member) { try { Application application = jdbc.queryForObject(RegistrarManagerImpl.APP_SELECT + " where a.id=(select max(id) from application where vo_id=? and apptype=? and user_id=? )", RegistrarManagerImpl.APP_MAPPER, member.getVoId(), String.valueOf(Application.AppType.EXTENSION), member.getUserId()); return !Arrays.asList(Application.AppState.NEW, Application.AppState.VERIFIED).contains(application.getState()); } catch (EmptyResultDataAccessException ex) { // has no application submitted return true; } catch (Exception ex) { log.error("Unable to check if {} has submitted pending application: {}.", member, ex); return true; } }
public boolean isAlreadyMember(Member member, Group group) { Object o = ldapTemplate.lookup(getUserDN(String.valueOf(member.getUserId())), new UserMemberOfContextMapper()); String[] memberOfInformation = (String []) o; if(memberOfInformation != null) { for(String s: memberOfInformation) { if(s.equals(EventProcessorImpl.ldapAttrPerunGroupId + "=" + group.getId() + "," + EventProcessorImpl.ldapAttrPerunVoId + "=" + group.getVoId() + "," + ldapProperties.getLdapBase())) return true; } } return false; }
private List<MemberSCIM> mapPerunMembersToScimMembers(List<Member> perunMembers) { List<MemberSCIM> scimMembers = new ArrayList(); for (Member perunMember : perunMembers) { User perunUser; try { perunUser = perunBl.getUsersManagerBl().getUserByMember(session, perunMember); MemberSCIM member = new MemberSCIM(); String id = String.valueOf(perunMember.getId()); member.setDisplay(perunUser.getDisplayName()); member.setValue(id); member.setRef(BASE_PATH + USERS_PATH + id); scimMembers.add(member); } catch (InternalErrorException ex) { log.error("Cannot find user with id " + perunMember.getUserId(), ex); } } return scimMembers; } }
public void removeMemberFromGroup(Member member, Group group) throws InternalErrorException { //Remove member from group Attribute uniqueMember = new BasicAttribute(EventProcessorImpl.ldapAttrUniqueMember, EventProcessorImpl.ldapAttrPerunUserId + "=" + member.getUserId() + "," + EventProcessorImpl.organizationalUnitPeople + "," + ldapProperties.getLdapBase()); ModificationItem uniqueMemberItem = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, uniqueMember); this.updateGroup(group, new ModificationItem[] {uniqueMemberItem}); //Remove member from vo if this group is membersGroup if(group.getName().equals(VosManager.MEMBERS_GROUP) && group.getParentGroupId() == null) { //Remove info from vo this.updateVo(group.getVoId(), new ModificationItem[] {uniqueMemberItem}); //Remove also information from user Attribute memberOfPerunVo = new BasicAttribute(EventProcessorImpl.ldapAttrMemberOfPerunVo, String.valueOf(group.getVoId())); ModificationItem memberOfPerunVoItem = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, memberOfPerunVo); this.updateUserWithUserId(String.valueOf(member.getUserId()), new ModificationItem[] {memberOfPerunVoItem}); } //Remove group info from member Attribute memberOf = new BasicAttribute(EventProcessorImpl.ldapAttrMemberOf, EventProcessorImpl.ldapAttrPerunGroupId + "=" + group.getId() + "," + EventProcessorImpl.ldapAttrPerunVoId + "=" + group.getVoId() + "," + ldapProperties.getLdapBase()); ModificationItem memberOfItem = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, memberOf); this.updateUserWithUserId(String.valueOf(member.getUserId()), new ModificationItem[] {memberOfItem}); }
public void addMemberToGroup(Member member, Group group) throws InternalErrorException { //Add member to group Attribute uniqueMember = new BasicAttribute(EventProcessorImpl.ldapAttrUniqueMember, EventProcessorImpl.ldapAttrPerunUserId + "=" + member.getUserId() + "," + EventProcessorImpl.organizationalUnitPeople + "," + ldapProperties.getLdapBase()); ModificationItem uniqueMemberItem = new ModificationItem(DirContext.ADD_ATTRIBUTE, uniqueMember); this.updateGroup(group, new ModificationItem[] {uniqueMemberItem}); //Add member to vo if this group is memebrsGroup if(group.getName().equals(VosManager.MEMBERS_GROUP) && group.getParentGroupId() == null) { //Add info to vo this.updateVo(group.getVoId(), new ModificationItem[] {uniqueMemberItem}); //Add info also to user Attribute memberOfPerunVo = new BasicAttribute(EventProcessorImpl.ldapAttrMemberOfPerunVo, String.valueOf(group.getVoId())); ModificationItem memberOfPerunVoItem = new ModificationItem(DirContext.ADD_ATTRIBUTE, memberOfPerunVo); this.updateUserWithUserId(String.valueOf(member.getUserId()), new ModificationItem[] {memberOfPerunVoItem}); } //Add group info to member Attribute memberOf = new BasicAttribute("memberOf", EventProcessorImpl.ldapAttrPerunGroupId + "=" + group.getId() + "," + EventProcessorImpl.ldapAttrPerunVoId + "=" + group.getVoId() + "," + ldapProperties.getLdapBase()); ModificationItem memberOfItem = new ModificationItem(DirContext.ADD_ATTRIBUTE, memberOf); this.updateUserWithUserId(String.valueOf(member.getUserId()), new ModificationItem[] {memberOfItem}); }
@Override public String serializeToString() { return this.getClass().getSimpleName() + ":[" + "id=<" + getId() + ">" + ", userId=<" + getUserId() + ">" + ", voId=<" + getVoId() + ">" + ", status=<" + (getStatus() == null ? "\\0" : BeansUtils.createEscaping(getStatus().toString())) + ">" + ", type=<" + (getMembershipType() == null ? "\\0" : BeansUtils.createEscaping(getMembershipType().toString())) + ">" + ", sourceGroupId=<" + (getSourceGroupId() == null ? "\\0" : getSourceGroupId().toString()) + ">" + ", sponsored=<" + sponsored + ">" + ']'; }
writer.write("uniqueMember: perunUserId=" + m.getUserId() + "," + branchOuPeople + '\n');
@Override public List<Application> getApplicationsForMember(PerunSession sess, Group group, Member member) throws PerunException { // authz if (!AuthzResolver.isAuthorized(sess, Role.VOADMIN, member) && !AuthzResolver.isAuthorized(sess, Role.VOOBSERVER, member)) { if (group != null) { if (!AuthzResolver.isAuthorized(sess, Role.GROUPADMIN, group)) { throw new PrivilegeException(sess, "getApplicationsForMember"); } } else { throw new PrivilegeException(sess, "getApplicationsForMember"); } } try { if (group == null) { return jdbc.query(APP_SELECT + " where user_id=? and a.vo_id=? order by a.id desc", APP_MAPPER, member.getUserId(), member.getVoId()); } else { return jdbc.query(APP_SELECT + " where user_id=? and a.vo_id=? and a.group_id=? order by a.id desc", APP_MAPPER, member.getUserId(), member.getVoId(), group.getId()); } } catch (EmptyResultDataAccessException ex) { return new ArrayList<Application>(); } }
writer.write("uniqueMember: " + "perunUserId=" + m.getUserId() + "," + branchOuPeople); writer.write('\n');
logger.error("PreferredEmail cannot be retrieved, userId: {}", member.getUserId(), ex);
User u = usersManager.getUserById(registrarSession, member.getUserId()); result = jdbc.update("update application set user_id=? where id=?", member.getUserId(), appId); if (result == 0) { throw new RegistrarException("User ID hasn't been associated with the application " + appId + ", because the application was not found!");
public RichMember(User user, Member member, List<UserExtSource> userExtSources) { super(member.getId(), member.getUserId(), member.getVoId(), member.getStatus(), member.getCreatedAt(), member.getCreatedBy(), member.getModifiedAt(), member.getModifiedBy(), member.getCreatedByUid(), member.getModifiedByUid()); setMembershipType(member.getMembershipType()); setSponsored(member.isSponsored()); this.setGroupsStatuses(member.getGroupStatuses()); this.user = user; this.userExtSources = userExtSources; this.userAttributes = null; this.memberAttributes = null; }