@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)) {
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");
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))) {
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;
}