All Downloads are FREE. Search and download functionalities are using the official Maven repository.

fr.zebasto.spring.identity.rest.controller.RestPermissionController Maven / Gradle / Ivy

There is a newer version: 1.0.0-BETA2
Show newest version
package fr.zebasto.spring.identity.rest.controller;

import fr.zebasto.spring.identity.contract.service.PermissionService;
import fr.zebasto.spring.identity.core.support.rest.AbstractRestController;
import fr.zebasto.spring.identity.defaults.model.DefaultPermission;
import org.springframework.data.domain.Page;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.util.Assert;
import org.springframework.web.bind.annotation.*;

import javax.inject.Inject;
import javax.inject.Named;
import java.util.Set;
import java.util.UUID;

@RestController
@RequestMapping(value = "${identity.rest.context}/${identity.rest.views.permission}")
public class RestPermissionController extends AbstractRestController> {

    @Inject
    @Named("permissionService")
    public void setService(PermissionService service) {
        super.setService(service);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['create']).concat('_').concat(@identity['permissions']))")
    public DefaultPermission create(@RequestBody DefaultPermission resource) {
        return super.create(resource);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['update']).concat('_').concat(@identity['permissions']))")
    public DefaultPermission update(@PathVariable UUID id, @RequestBody DefaultPermission resource) {
        return super.update(id, resource);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['read']).concat('_').concat(@identity['permissions']))")
    public Iterable findAll() {
        return super.findAll();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['read']).concat('_').concat(@identity['permissions']))")
    public Page findPaginated(@RequestParam(value = "page", required = false, defaultValue = "1") Integer page,
                                                 @RequestParam(value = "size", required = false, defaultValue = "10") Integer size,
                                                 @RequestParam(value = "direction", required = false, defaultValue = "") String direction,
                                                 @RequestParam(value = "properties", required = false) String properties) {
        return super.findPaginated(page, size, direction, properties);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['read']).concat('_').concat(@identity['permissions']))")
    public DefaultPermission findById(@PathVariable UUID id) {
        return super.findById(id);
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['read']).concat('_').concat(@identity['permissions']))")
    public Iterable findByIds(@RequestParam(value = "ids[]") Set ids) {
        Assert.notNull(ids, "ids list cannot be null");
        return super.findByIds(ids);
    }


    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['delete']).concat('_').concat(@identity['permissions']))")
    public void delete() {
        super.delete();
    }

    /**
     * {@inheritDoc}
     */
    @Override
    @PreAuthorize(value = "hasRole(@identity['pfx'].concat('_').concat(@identity['delete']).concat('_').concat(@identity['permissions']))")
    public void delete(@PathVariable UUID id) {
        super.delete(id);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy