use of cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForUser in project perun by CESNET.
the class AttributesManagerBlImpl method setAttributeWithoutCheck.
@Override
public boolean setAttributeWithoutCheck(PerunSession sess, User user, Attribute attribute) throws WrongAttributeAssignmentException, WrongAttributeValueException, WrongReferenceAttributeValueException {
getAttributesManagerImpl().checkNamespace(sess, attribute, AttributesManager.NS_USER_ATTR);
if (getAttributesManagerImpl().isCoreAttribute(sess, attribute))
throw new WrongAttributeAssignmentException(attribute);
boolean changed;
if (isVirtAttribute(sess, attribute)) {
return getAttributesManagerImpl().setVirtualAttribute(sess, user, attribute);
} else {
changed = getAttributesManagerImpl().setAttribute(sess, user, attribute);
}
if (changed) {
getPerunBl().getAuditer().log(sess, new AttributeSetForUser(attribute, user));
getAttributesManagerImpl().changedAttributeHook(sess, user, attribute);
}
return changed;
}
use of cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForUser in project perun by CESNET.
the class urn_perun_user_attribute_def_virt_eduPersonScopedAffiliationsTest method resolveAttributeValueChangeTest.
@Test
public void resolveAttributeValueChangeTest() throws Exception {
when(session.getPerunBl().getUsersManagerBl().getUserById(session, 1)).thenReturn(user);
AuditEvent event = new AllAttributesRemovedForUserExtSource(ues1);
List<AuditEvent> auditEvents = classInstance.resolveVirtualAttributeValueChange(session, event);
assertEquals(auditEvents.get(0).getClass(), AttributeChangedForUser.class);
event = new AllAttributesRemovedForUser(user);
auditEvents = classInstance.resolveVirtualAttributeValueChange(session, event);
assertEquals(auditEvents.get(0).getClass(), AttributeChangedForUser.class);
Attribute attribute = new Attribute();
attribute.setFriendlyName("eduPersonScopedAffiliationsManuallyAssigned");
event = new AttributeSetForUser(attribute, user);
auditEvents = classInstance.resolveVirtualAttributeValueChange(session, event);
assertEquals(auditEvents.get(0).getClass(), AttributeChangedForUser.class);
when(session.getPerunBl().getAttributesManagerBl().getAttribute(session, user, AttributesManager.NS_USER_ATTR_VIRT + ":" + "eduPersonScopedAffiliations")).thenReturn(attribute);
auditEvents = classInstance.resolveVirtualAttributeValueChange(session, event);
assertEquals(auditEvents.get(0).getClass(), AttributeChangedForUser.class);
}
use of cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForUser in project perun by CESNET.
the class urn_perun_user_attribute_def_virt_tcsMails_muTest method resolveVirtualAttributeValueChangeSet1.
@Test
public void resolveVirtualAttributeValueChangeSet1() throws Exception {
AuditEvent userSet = new AttributeSetForUser(preferredMailAttr, user);
List<AuditEvent> msgs = classInstance.resolveVirtualAttributeValueChange(sess, userSet);
assertTrue("audit should contain change of tcsMails", msgs.get(0).getMessage().contains(expectedTestOfMessage));
}
use of cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForUser in project perun by CESNET.
the class urn_perun_user_attribute_def_virt_tcsMails_muTest method resolveVirtualAttributeValueChangeSet3.
@Test
public void resolveVirtualAttributeValueChangeSet3() throws Exception {
AuditEvent userSet = new AttributeSetForUser(publicMailsAttr, user);
List<AuditEvent> msgs = classInstance.resolveVirtualAttributeValueChange(sess, userSet);
assertTrue("audit should contain change of tcsMails", msgs.get(0).getMessage().contains(expectedTestOfMessage));
}
use of cz.metacentrum.perun.audit.events.AttributesManagerEvents.AttributeSetForUser in project perun by CESNET.
the class urn_perun_user_attribute_def_virt_eduPersonScopedAffiliations method resolveVirtualAttributeValueChange.
@Override
public List<AuditEvent> resolveVirtualAttributeValueChange(PerunSessionImpl perunSession, AuditEvent message) throws WrongReferenceAttributeValueException, AttributeNotExistsException, WrongAttributeAssignmentException {
// generic handling
List<AuditEvent> resolvingMessages = super.resolveVirtualAttributeValueChange(perunSession, message);
if (message instanceof AttributeSetForUser && ((AttributeSetForUser) message).getAttribute().getFriendlyName().equals(getSecondarySourceAttributeFriendlyName())) {
AttributeDefinition attributeDefinition = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getDestinationAttributeName());
resolvingMessages.add(new AttributeChangedForUser(new Attribute(attributeDefinition), ((AttributeSetForUser) message).getUser()));
} else if (message instanceof AttributeRemovedForUser && ((AttributeRemovedForUser) message).getAttribute().getFriendlyName().equals(getSecondarySourceAttributeFriendlyName())) {
AttributeDefinition attributeDefinition = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getDestinationAttributeName());
resolvingMessages.add(new AttributeChangedForUser(new Attribute(attributeDefinition), ((AttributeRemovedForUser) message).getUser()));
} else if (message instanceof AllAttributesRemovedForUser) {
boolean skip = false;
try {
AttributeDefinition sourceExists = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getSecondarySourceAttributeName());
User user = perunSession.getPerunBl().getUsersManagerBl().getUserById(perunSession, ((AllAttributesRemovedForUser) message).getUser().getId());
} catch (AttributeNotExistsException | UserNotExistsException ex) {
// silently skip this event, since source attribute couldn't be between deleted
// or user no longer exist
skip = true;
}
if (!skip) {
AttributeDefinition attributeDefinition = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getDestinationAttributeName());
resolvingMessages.add(new AttributeChangedForUser(new Attribute(attributeDefinition), ((AllAttributesRemovedForUser) message).getUser()));
}
}
if (message instanceof AttributeSetForGroup && !VosManager.MEMBERS_GROUP.equals(((AttributeSetForGroup) message).getGroup().getName()) && ((AttributeSetForGroup) message).getAttribute().getName().equals(getTertiarySourceAttributeName())) {
AttributeDefinition attributeDefinition = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getDestinationAttributeName());
// TODO - get only active group users, since expired are not affected by current group affiliations
List<User> users = perunSession.getPerunBl().getGroupsManagerBl().getGroupUsers(perunSession, ((AttributeSetForGroup) message).getGroup());
for (User user : users) {
resolvingMessages.add(new AttributeChangedForUser(new Attribute(attributeDefinition), user));
}
} else if (message instanceof AttributeRemovedForGroup && !VosManager.MEMBERS_GROUP.equals(((AttributeRemovedForGroup) message).getGroup().getName()) && ((AttributeRemovedForGroup) message).getAttribute().getName().equals(getTertiarySourceAttributeName())) {
AttributeDefinition attributeDefinition = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getDestinationAttributeName());
// TODO - get only active group users, since expired are not affected by current group affiliations
List<User> users = perunSession.getPerunBl().getGroupsManagerBl().getGroupUsers(perunSession, ((AttributeRemovedForGroup) message).getGroup());
for (User user : users) {
resolvingMessages.add(new AttributeChangedForUser(new Attribute(attributeDefinition), user));
}
} else if (message instanceof AllAttributesRemovedForGroup && !VosManager.MEMBERS_GROUP.equals(((AllAttributesRemovedForGroup) message).getGroup().getName())) {
boolean skip = false;
try {
AttributeDefinition sourceExists = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getTertiarySourceAttributeName());
Group group = perunSession.getPerunBl().getGroupsManagerBl().getGroupById(perunSession, ((AllAttributesRemovedForGroup) message).getGroup().getId());
} catch (AttributeNotExistsException | GroupNotExistsException ex) {
// silently skip this event, since source attribute couldn't be between deleted
// or group no longer exist.
skip = true;
}
if (!skip) {
AttributeDefinition attributeDefinition = perunSession.getPerunBl().getAttributesManagerBl().getAttributeDefinition(perunSession, getDestinationAttributeName());
// TODO - get only active group users, since expired are not affected by current group affiliations
List<User> users = perunSession.getPerunBl().getGroupsManagerBl().getGroupUsers(perunSession, ((AllAttributesRemovedForGroup) message).getGroup());
for (User user : users) {
resolvingMessages.add(new AttributeChangedForUser(new Attribute(attributeDefinition), user));
}
}
}
return resolvingMessages;
}
Aggregations