package de.passau.uni.sec.compose.id.core.event;
import java.util.Collection;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import de.passau.uni.sec.compose.id.common.exception.IdManagementException;
import de.passau.uni.sec.compose.id.core.domain.IPrincipal;
import de.passau.uni.sec.compose.id.core.service.security.RestAuthentication;
import de.passau.uni.sec.compose.id.rest.messages.UserCreateFromExternalAppMessage;
import de.passau.uni.sec.compose.id.rest.messages.UserCreateMessage;
public class CreateUserEvent extends AbstractEvent implements Event
{
private UserCreateMessage userMessage;
private boolean fromExternalApp = false;
private static Logger LOG = LoggerFactory.getLogger(CreateUserEvent.class);
public UserCreateMessage getUserMessage()
{
return userMessage;
}
public void setUserMessage(UserCreateMessage userMessage)
{
this.userMessage = userMessage;
}
public CreateUserEvent(UserCreateMessage user, Collection<IPrincipal> principals) throws IdManagementException
{
//This constructor checks that the credentials are valid for the creation of a specific object by checking the message object type
this.userMessage = user;
this.principals = principals;
/*for(MembershipMessage m:user.getMemberships())
{
LOG.info(m.getGroup());
LOG.info(m.getRole());
}*/
//TODO possible conversions with UAA?
}
public CreateUserEvent(UserCreateFromExternalAppMessage message,
Collection<IPrincipal> principals) {
this.userMessage = message;
this.principals = principals;
this.fromExternalApp = true;
}
@Override
public String getLoggingDetails()
{
return "Creating user "+(fromExternalApp?"from external app":"")+" with username: "+this.userMessage.getUsername ()+ " principals: "+RestAuthentication.getBasicInfoPrincipals(principals);
}
}