@Override public void run() { try { Thread.sleep(5000); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } try { perun.getMembersManagerBl().validateMember(registrarSession, member); } catch (InternalErrorException | WrongAttributeValueException | WrongReferenceAttributeValueException e) { log.error("[REGISTRAR] Exception when validating {} after approving application {}.", member, app); } try { // get user's group apps with auto-approve and approve them autoApproveUsersGroupApplications(sess, app.getVo(), app.getUser()); } catch (PerunException ex) { log.error("[REGISTRAR] Exception when auto-approving waiting group applications for {} after approving application {}.", member, app); } } }).start();
/** * Return groups that user is member of. * * @return groups that user is member of * @throws VOOTException if the can not read groups of user */ private List<Group> isMemberOf() throws VOOTException{ List<Group> groups = new ArrayList<Group>(); List<Vo> vos = new ArrayList<Vo>(); try{ vos.addAll(perun.getUsersManagerBl().getVosWhereUserIsMember(session, user)); }catch(InternalErrorException ex){ throw new VOOTException("internal_server_error"); } try{ for (Vo vo : vos) { Member member = perun.getMembersManagerBl().getMemberByUser(session, vo, user); groups.addAll(perun.getGroupsManagerBl().getAllMemberGroups(session, member)); } }catch(InternalErrorException ex){ throw new VOOTException("internal_server_error"); }catch(MemberNotExistsException ex){ throw new VOOTException("not_a_member"); } return groups; }
List<Member> validMembers = perun.getMembersManagerBl().getMembers(perunSession, vo, Status.VALID); for(Member m: validMembers) { writer.write("uniqueMember: perunUserId=" + m.getUserId() + "," + branchOuPeople + '\n');
/** * Expires members whose expiration is set to given date or before it. * * @throws InternalErrorException internal error * @throws WrongAttributeAssignmentException error * @throws AttributeNotExistsException error */ private void expireMembers(Calendar date) throws InternalErrorException, WrongAttributeAssignmentException, AttributeNotExistsException { List<Member> shouldBeExpired = perun.getSearcherBl().getMembersByExpiration(sess, "<=", date); for (Member member : shouldBeExpired) { if (member.getStatus().equals(Status.VALID)) { try { perun.getMembersManagerBl().expireMember(sess, member); log.info("Switching {} to EXPIRE state, due to expiration {}.", member, perun.getAttributesManagerBl().getAttribute(sess, member, "urn:perun:member:attribute-def:def:membershipExpiration").getValue()); } catch (MemberNotValidYetException e) { log.error("Consistency error while trying to expire member {}, exception {}", member, e); } } } }
/** * Validates member whose expiration is set after the given date * * @param date date * @throws InternalErrorException internal error * @throws WrongAttributeAssignmentException error * @throws AttributeNotExistsException error */ private void validateMembers(Calendar date) throws InternalErrorException, WrongAttributeAssignmentException, AttributeNotExistsException { List<Member> shouldntBeExpired = perun.getSearcherBl().getMembersByExpiration(sess, ">", date); for (Member member : shouldntBeExpired) { if (member.getStatus().equals(Status.EXPIRED)) { try { perun.getMembersManagerBl().validateMember(sess, member); log.info("Switching {} to VALID state, due to changed expiration {}.", member, perun.getAttributesManagerBl().getAttribute(sess, member, "urn:perun:member:attribute-def:def:membershipExpiration").getValue()); } catch (WrongAttributeValueException | WrongReferenceAttributeValueException e) { log.error("Error during validating member {}, exception {}", member, e); } } } }
} else { Member member = perun.getMembersManagerBl().getMemberByUser(session, vo, user); Date membershipExpiration = null; Date manualExpiration = null;
try { if (allowedStatuses.contains(m.getStatus())) { perun.getMembersManagerBl().canExtendMembershipWithReason(sess, m); if (didntSubmitExtensionApplication(m)) {
@Override public Application approveApplication(PerunSession session, Application app) throws PerunException { PerunBl perun = (PerunBl) session.getPerun(); Member member = perun.getMembersManagerBl().getMemberByUser(session, app.getVo(), app.getUser()); if (app.getGroup() == null && Objects.equals(app.getType(), Application.AppType.INITIAL)) { // IF VO INITIAL override VO rules to set unlimited (only to those with LoA = 2). Attribute loaAttr = perun.getAttributesManagerBl().getAttribute(session, member, AttributesManager.NS_MEMBER_ATTR_VIRT + ":loa"); int loa = Integer.valueOf((String) loaAttr.getValue()); if (loa == 2) { Attribute attr = perun.getAttributesManagerBl().getAttribute(session, member, AttributesManager.NS_MEMBER_ATTR_DEF + ":membershipExpiration"); attr.setValue("9999-01-01"); // set distant future as never expires perun.getAttributesManagerBl().setAttribute(session, member, attr); } } if ((app.getGroup() != null && Objects.equals(app.getType(), Application.AppType.INITIAL)) || (app.getGroup() == null && Objects.equals(app.getType(), Application.AppType.EXTENSION))) { // GROUP INITIAL OR VO EXTENSION -> set back standard expiration date based on VO rules Attribute attr = perun.getAttributesManagerBl().getAttribute(session, member, AttributesManager.NS_MEMBER_ATTR_DEF + ":membershipExpiration"); perun.getAttributesManagerBl().removeAttribute(session, member, attr); perun.getMembersManagerBl().extendMembership(session, member); } return app; }
List<Member> members; Set<String> membersOfPerunVo = new HashSet<>(); members = perun.getMembersManagerBl().getMembersByUser(perunSession, user); for(Member member: members) { if(member.getStatus().equals(Status.VALID)) {