use of org.eclipse.che.api.core.model.factory.Author in project che by eclipse.
the class FactoryEditValidatorImpl method validate.
/**
* Validates given factory by checking the current user is granted to edit the factory
*
* @param factory
* factory object to validate
* @throws ForbiddenException
* occurs if the current user is not granted to edit the factory
* @throws ServerException
* when any server error occurs
*/
@Override
public void validate(Factory factory) throws ForbiddenException, ServerException {
// Checks if there is an author from the factory (It may be missing for some old factories)
final Author author = factory.getCreator();
if (author == null || author.getUserId() == null) {
throw new ServerException(format("Invalid factory without author stored. Please contact the support about the factory ID '%s'", factory.getId()));
}
// ensure user has the correct permissions
final String userId = EnvironmentContext.getCurrent().getSubject().getUserId();
if (!author.getUserId().equals(userId)) {
throw new ForbiddenException(format("You are not authorized for the factory '%s'", factory.getId()));
}
}
Aggregations