use of cz.metacentrum.perun.core.bl.PerunBl in project perun by CESNET.
the class urn_perun_facility_attribute_def_def_login_namespaceTest method setUp.
@Before
public void setUp() throws Exception {
classInstance = new urn_perun_facility_attribute_def_def_login_namespace();
session = mock(PerunSessionImpl.class);
facility = new Facility();
attributeToCheck = new Attribute();
attributeToCheck.setFriendlyName("friendly_name");
reqAttribute = new Attribute();
PerunBl perunBl = mock(PerunBl.class);
when(session.getPerunBl()).thenReturn(perunBl);
AttributesManagerBl attributesManagerBl = mock(AttributesManagerBl.class);
when(perunBl.getAttributesManagerBl()).thenReturn(attributesManagerBl);
}
use of cz.metacentrum.perun.core.bl.PerunBl in project perun by CESNET.
the class IT4Innovations method approveApplication.
/**
* Add approved VO members into e-INFRA CZ VO.
*/
@Override
public Application approveApplication(PerunSession session, Application app) throws WrongReferenceAttributeValueException, WrongAttributeValueException {
PerunBl perun = (PerunBl) session.getPerun();
User user = app.getUser();
Vo vo = app.getVo();
// For INITIAL VO APPLICATIONS
if (Application.AppType.INITIAL.equals(app.getType()) && app.getGroup() == null) {
try {
Vo einfraVo = perun.getVosManagerBl().getVoByShortName(session, "e-infra.cz");
Member einfraMember = perun.getMembersManagerBl().createMember(session, einfraVo, user);
log.debug("{} member added to \"e-INFRA CZ\": {}", vo.getName(), einfraMember);
perun.getMembersManagerBl().validateMemberAsync(session, einfraMember);
} catch (VoNotExistsException e) {
log.warn("e-INFRA CZ VO doesn't exists, {} member can't be added into it.", vo.getName());
} catch (AlreadyMemberException ignore) {
// user is already in e-INFRA CZ
} catch (ExtendMembershipException e) {
// can't be member of e-INFRA CZ, shouldn't happen
log.error("{} member can't be added to \"e-INFRA CZ\": {}", vo.getName(), e);
}
}
return app;
}
use of cz.metacentrum.perun.core.bl.PerunBl in project perun by CESNET.
the class LifeScienceHostelRIAcc method approveApplication.
/**
* Create proper UserExtSource
*/
@Override
public Application approveApplication(PerunSession session, Application app) throws PrivilegeException, GroupNotExistsException, MemberNotExistsException, ExternallyManagedException, WrongReferenceAttributeValueException, WrongAttributeValueException, RegistrarException, ExtSourceNotExistsException, AttributeNotExistsException, WrongAttributeAssignmentException, VoNotExistsException, ExtendMembershipException, AlreadyMemberException {
PerunBl perun = (PerunBl) session.getPerun();
User user = app.getUser();
if (user != null) {
// Create UES for user
Attribute userLogin = perun.getAttributesManagerBl().getAttribute(session, user, AttributesManager.NS_USER_ATTR_DEF + ":" + LOGIN_NAMESPACE);
if (userLogin != null && userLogin.getValue() != null) {
ExtSource extSource = perun.getExtSourcesManagerBl().getExtSourceByName(session, LS_HOSTEL_EXT_SOURCE_NAME);
String login = userLogin.valueAsString();
UserExtSource ues = new UserExtSource(extSource, login + LS_HOSTEL_SCOPE);
ues.setLoa(0);
try {
perun.getUsersManagerBl().addUserExtSource(session, user, ues);
} catch (UserExtSourceExistsException ex) {
// this is OK
}
}
if (Application.AppType.INITIAL.equals(app.getType())) {
try {
Vo vo = perun.getVosManagerBl().getVoByShortName(session, VO_SHORTNAME);
Member member = perun.getMembersManagerBl().createMember(session, vo, user);
log.debug("LS Hostel member added to the main VO Lifescience {}", member);
} catch (VoNotExistsException e) {
log.warn("VO: " + VO_SHORTNAME + " not exists, can't add member into it.");
} catch (AlreadyMemberException ignore) {
// user is already in lifescience
} catch (ExtendMembershipException e) {
// can't be member of lifescience, shouldn't happen
log.error("LS Hostel member can't be added to VO: " + VO_SHORTNAME, e);
}
}
// User doesn't have login - don't set UES
}
return app;
}
use of cz.metacentrum.perun.core.bl.PerunBl in project perun by CESNET.
the class Metacentrum method getIsCesnetEligibleLastSeenFromUser.
/**
* Get value of "user:def:isCesnetEligibleLastSeen" attribute.
* If application has no associated user or we anyhow fail to get the value, empty string is returned.
*
* @param session PerunSession
* @param user User to check it for
* @return Timestamp (yyyy-MM-dd HH:mm:ss) value or empty string.
*/
private String getIsCesnetEligibleLastSeenFromUser(PerunSession session, User user) {
String eligibleString = "";
if (user != null) {
try {
PerunBl perun = (PerunBl) session.getPerun();
Attribute attribute = perun.getAttributesManagerBl().getAttribute(session, user, A_USER_IS_CESNET_ELIGIBLE_LAST_SEEN);
if (attribute.getValue() != null) {
eligibleString = attribute.valueAsString();
}
} catch (Exception ex) {
log.error("Unable to get 'isCesnetEligibleLastSeen' from user.", ex);
}
}
return eligibleString;
}
use of cz.metacentrum.perun.core.bl.PerunBl in project perun by CESNET.
the class Vsup method beforeApprove.
@Override
public Application beforeApprove(PerunSession session, Application app) throws RegistrarException, PrivilegeException {
List<ApplicationFormItemData> data = registrar.getApplicationDataById(session, app.getId());
if (app.getUser() == null) {
for (ApplicationFormItemData item : data) {
if (item.getFormItem() != null && Objects.equals(AttributesManager.NS_USER_ATTR_DEF + ":birthNumber", item.getFormItem().getPerunDestinationAttribute())) {
// if application contains birth number, try to map to existing user
String rc = item.getValue();
if (rc != null && !rc.isEmpty()) {
try {
User user = ((PerunBl) session.getPerun()).getUsersManagerBl().getUserByExtSourceNameAndExtLogin(session, "RC", rc);
app.setUser(user);
registrar.updateApplicationUser(session, app);
log.debug("Existing user found by RC for {}", app);
} catch (Exception ex) {
log.warn("Couldn't find or set user to application {} by RC: {}", app, ex);
}
// associate existing user with the identity used on registration form
if (app.getUser() != null) {
PerunBl perunBl = (PerunBl) session.getPerun();
ExtSource es = perunBl.getExtSourcesManager().checkOrCreateExtSource(session, app.getExtSourceName(), app.getExtSourceType());
UserExtSource ues = new UserExtSource(es, app.getExtSourceLoa(), app.getCreatedBy());
try {
ues = perunBl.getUsersManagerBl().addUserExtSource(session, app.getUser(), ues);
log.debug("{} associated with {} from application {}", app.getUser(), ues, app);
} catch (UserExtSourceExistsException ex) {
// we can ignore, user will be paired with application
log.warn("{} already had identity associated from application {}", app.getUser(), app);
}
try {
Member member = ((PerunBl) session.getPerun()).getMembersManagerBl().getMemberByUser(session, app.getVo(), app.getUser());
// user is already a member, switch application type
if (Application.AppType.INITIAL.equals(app.getType())) {
app.setType(Application.AppType.EXTENSION);
registrar.updateApplicationType(session, app);
log.debug("Updating application type to EXTENSION since we matched user which is VO member!");
}
} catch (MemberNotExistsException e) {
// OK state
}
}
}
break;
}
}
}
return app;
}
Aggregations