Search in sources :

Example 1 with Author

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()));
    }
}
Also used : ForbiddenException(org.eclipse.che.api.core.ForbiddenException) ServerException(org.eclipse.che.api.core.ServerException) Author(org.eclipse.che.api.core.model.factory.Author)

Aggregations

ForbiddenException (org.eclipse.che.api.core.ForbiddenException)1 ServerException (org.eclipse.che.api.core.ServerException)1 Author (org.eclipse.che.api.core.model.factory.Author)1