Search in sources :

Example 46 with Authorisation

use of nikita.webapp.security.Authorisation in project nikita-noark5-core by HiOA-ABI.

the class FondsService method generateDefaultSeries.

/**
 * Generate a Default Fonds object that can be associated with the
 * identified Fonds.
 * <br>
 * Note. Ideally this method would be configurable based on the logged in
 * user and the business area they are working with. A generic Noark core
 * like this does not have scope for that kind of functionality.
 *
 * @param fondsSystemId The systemId of the Fonds object you wish to
 *                      generate a default Series for
 * @return the Series object wrapped as a SeriesHateoas object
 */
@Override
public SeriesHateoas generateDefaultSeries(@NotNull String fondsSystemId) {
    Series defaultSeries = new Series();
    defaultSeries.setSeriesStatus(STATUS_OPEN);
    defaultSeries.setDocumentMedium(DOCUMENT_MEDIUM_ELECTRONIC);
    defaultSeries.setTitle("Default Series object generated by nikita " + "that can be associated with Fonds with systemID " + fondsSystemId);
    SeriesHateoas seriesHateoas = new SeriesHateoas(defaultSeries);
    seriesHateoasHandler.addLinksOnNew(seriesHateoas, new Authorisation());
    return seriesHateoas;
}
Also used : Series(nikita.common.model.noark5.v4.Series) Authorisation(nikita.webapp.security.Authorisation) SeriesHateoas(nikita.common.model.noark5.v4.hateoas.SeriesHateoas)

Example 47 with Authorisation

use of nikita.webapp.security.Authorisation in project nikita-noark5-core by HiOA-ABI.

the class FondsService method createFondsCreatorAssociatedWithFonds.

/**
 * Persists a new FondsCreator object to the database. Some values are set
 * in the incoming payload (e.g. fonds_creator_name) and some are set by
 * the core. owner,createdBy, createdDate are automatically set by the core.
 * <p>
 * First we try to locate the fonds to associate the FondsCreator with. If
 * the fonds does not exist a NoarkEntityNotFoundException exception is
 * thrown. After that we check that the Fonds object is not already closed.
 *
 * @param fondsSystemId The systemId of the fonds object you wish to
 *                      associate the fondsCreator object with
 * @param fondsCreator  incoming fondsCreator object with some values set
 * @return the newly persisted fondsCreator object wrapped as a
 * FondsCreatorHateoas object
 */
@Override
public FondsCreatorHateoas createFondsCreatorAssociatedWithFonds(@NotNull String fondsSystemId, @NotNull FondsCreator fondsCreator) {
    Fonds fonds = getFondsOrThrow(fondsSystemId);
    checkFondsNotClosed(fonds);
    fondsCreatorService.createNewFondsCreator(fondsCreator);
    // add references to objects in both directions
    fondsCreator.addFonds(fonds);
    fonds.getReferenceFondsCreator().add(fondsCreator);
    // create the hateoas object with links
    FondsCreatorHateoas fondsCreatorHateoas = new FondsCreatorHateoas(fondsCreator);
    fondsCreatorHateoasHandler.addLinks(fondsCreatorHateoas, new Authorisation());
    return fondsCreatorHateoas;
}
Also used : Authorisation(nikita.webapp.security.Authorisation) Fonds(nikita.common.model.noark5.v4.Fonds) FondsCreatorHateoas(nikita.common.model.noark5.v4.hateoas.FondsCreatorHateoas)

Example 48 with Authorisation

use of nikita.webapp.security.Authorisation in project nikita-noark5-core by HiOA-ABI.

the class FondsService method generateDefaultFonds.

/**
 * Generate a Default Fonds object that can be associated with the
 * identified Fonds. If fondsSystemId has a value, it is assumed you wish
 * to generate a sub-fonds.
 * <br>
 * Note. Ideally this method would be configurable based on the logged in
 * user and the business area they are working with. A generic Noark core
 * like this does not have scope for that kind of functionality.
 *
 * @param fondsSystemId The systemId of the Fonds object you wish to
 *                      generate a default sub-fonds. Null if the Fonds
 *                      is not a sub-fonds.
 * @return the Fonds object wrapped as a FondsHateoas object
 */
@Override
public FondsHateoas generateDefaultFonds(String fondsSystemId) {
    Fonds defaultFonds = new Fonds();
    defaultFonds.setTitle(TEST_TITLE);
    defaultFonds.setDescription(TEST_DESCRIPTION);
    defaultFonds.setDocumentMedium(DOCUMENT_MEDIUM_ELECTRONIC);
    FondsHateoas fondsHateoas = new FondsHateoas(defaultFonds);
    fondsHateoasHandler.addLinksOnNew(fondsHateoas, new Authorisation());
    return fondsHateoas;
}
Also used : FondsHateoas(nikita.common.model.noark5.v4.hateoas.FondsHateoas) Authorisation(nikita.webapp.security.Authorisation) Fonds(nikita.common.model.noark5.v4.Fonds)

Example 49 with Authorisation

use of nikita.webapp.security.Authorisation in project nikita-noark5-core by HiOA-ABI.

the class FondsService method handleUpdate.

// All UPDATE operations
/**
 * Updates a Fonds object in the database. First we try to locate the
 * Fonds object. If the Fonds object does not exist a
 * NoarkEntityNotFoundException exception is thrown that the caller has
 * to deal with.
 * <br>
 * After this the values you are allowed to update are copied from the
 * incomingFonds object to the existingFonds object and the existingFonds
 * object will be persisted to the database when the transaction boundary
 * is over.
 * <p>
 * Note, the version corresponds to the version number, when the object
 * was initially retrieved from the database. If this number is not the
 * same as the version number when re-retrieving the Fonds object from
 * the database a NoarkConcurrencyException is thrown. Note. This happens
 * when the call to Fonds.setVersion() occurs.
 *
 * @param fondsSystemId The systemId of the fonds object to retrieve
 * @param version       The last known version number (derived from an ETAG)
 * @param incomingFonds The incoming fonds object
 */
@Override
public FondsHateoas handleUpdate(@NotNull String fondsSystemId, @NotNull Long version, @NotNull Fonds incomingFonds) {
    Fonds existingFonds = getFondsOrThrow(fondsSystemId);
    // Copy all the values you are allowed to copy ....
    if (null != incomingFonds.getDescription()) {
        existingFonds.setDescription(incomingFonds.getDescription());
    }
    if (null != incomingFonds.getTitle()) {
        existingFonds.setTitle(incomingFonds.getTitle());
    }
    if (null != incomingFonds.getDocumentMedium()) {
        existingFonds.setDocumentMedium(existingFonds.getDocumentMedium());
    }
    // Note this can potentially result in a NoarkConcurrencyException
    // exception
    existingFonds.setVersion(version);
    FondsHateoas fondsHateoas = new FondsHateoas(fondsRepository.save(existingFonds));
    fondsHateoasHandler.addLinks(fondsHateoas, new Authorisation());
    applicationEventPublisher.publishEvent(new AfterNoarkEntityUpdatedEvent(this, existingFonds));
    return fondsHateoas;
}
Also used : FondsHateoas(nikita.common.model.noark5.v4.hateoas.FondsHateoas) Authorisation(nikita.webapp.security.Authorisation) Fonds(nikita.common.model.noark5.v4.Fonds) AfterNoarkEntityUpdatedEvent(nikita.webapp.web.events.AfterNoarkEntityUpdatedEvent)

Example 50 with Authorisation

use of nikita.webapp.security.Authorisation in project nikita-noark5-core by HiOA-ABI.

the class FondsService method createNewFonds.

// All CREATE operations
/**
 * Persists a new fonds object to the database. Some values are set in the
 * incoming payload (e.g. title) and some are set by the core.
 * owner, createdBy, createdDate are automatically set by the core.
 *
 * @param fonds fonds object with some values set
 * @return the newly persisted fonds object wrapped as a fondsHateaos object
 */
@Override
public FondsHateoas createNewFonds(@NotNull Fonds fonds) {
    NoarkUtils.NoarkEntity.Create.checkDocumentMediumValid(fonds);
    NoarkUtils.NoarkEntity.Create.setNoarkEntityValues(fonds);
    fonds.setFondsStatus(STATUS_OPEN);
    NoarkUtils.NoarkEntity.Create.setFinaliseEntityValues(fonds);
    FondsHateoas fondsHateoas = new FondsHateoas(fondsRepository.save(fonds));
    fondsHateoasHandler.addLinks(fondsHateoas, new Authorisation());
    applicationEventPublisher.publishEvent(new AfterNoarkEntityCreatedEvent(this, fonds));
    return fondsHateoas;
}
Also used : AfterNoarkEntityCreatedEvent(nikita.webapp.web.events.AfterNoarkEntityCreatedEvent) FondsHateoas(nikita.common.model.noark5.v4.hateoas.FondsHateoas) Authorisation(nikita.webapp.security.Authorisation)

Aggregations

Authorisation (nikita.webapp.security.Authorisation)212 MetadataHateoas (nikita.common.model.noark5.v4.hateoas.metadata.MetadataHateoas)121 Counted (com.codahale.metrics.annotation.Counted)98 ApiOperation (io.swagger.annotations.ApiOperation)87 ApiResponses (io.swagger.annotations.ApiResponses)87 List (java.util.List)76 INikitaEntity (nikita.common.model.noark5.v4.interfaces.entities.INikitaEntity)75 AfterNoarkEntityUpdatedEvent (nikita.webapp.web.events.AfterNoarkEntityUpdatedEvent)34 CaseFileHateoas (nikita.common.model.noark5.v4.hateoas.casehandling.CaseFileHateoas)13 NoarkEntityNotFoundException (nikita.common.util.exceptions.NoarkEntityNotFoundException)13 AfterNoarkEntityCreatedEvent (nikita.webapp.web.events.AfterNoarkEntityCreatedEvent)13 Class (nikita.common.model.noark5.v4.Class)8 Fonds (nikita.common.model.noark5.v4.Fonds)8 CaseFile (nikita.common.model.noark5.v4.casehandling.CaseFile)8 NikitaException (nikita.common.util.exceptions.NikitaException)8 DocumentDescription (nikita.common.model.noark5.v4.DocumentDescription)7 DocumentObject (nikita.common.model.noark5.v4.DocumentObject)7 ClassHateoas (nikita.common.model.noark5.v4.hateoas.ClassHateoas)7 DocumentObjectHateoas (nikita.common.model.noark5.v4.hateoas.DocumentObjectHateoas)7 FondsCreatorHateoas (nikita.common.model.noark5.v4.hateoas.FondsCreatorHateoas)7