Search in sources :

Example 1 with RoleResponse

use of org.graylog2.rest.models.roles.responses.RoleResponse in project graylog2-server by Graylog2.

the class RolesResource method read.

@GET
@Path("{rolename}")
@ApiOperation("Retrieve permissions for a single role")
public RoleResponse read(@ApiParam(name = "rolename", required = true) @PathParam("rolename") String name) throws NotFoundException {
    checkPermission(RestPermissions.ROLES_READ, name);
    final Role role = roleService.load(name);
    return RoleResponse.create(role.getName(), Optional.fromNullable(role.getDescription()), role.getPermissions(), role.isReadOnly());
}
Also used : Role(org.graylog2.shared.users.Role) Path(javax.ws.rs.Path) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation)

Example 2 with RoleResponse

use of org.graylog2.rest.models.roles.responses.RoleResponse in project graylog2-server by Graylog2.

the class RolesResource method create.

@POST
@RequiresPermissions(RestPermissions.ROLES_CREATE)
@ApiOperation(value = "Create a new role", notes = "")
@AuditEvent(type = AuditEventTypes.ROLE_CREATE)
public Response create(@ApiParam(name = "JSON body", value = "The new role to create", required = true) @Valid @NotNull RoleResponse roleResponse) {
    if (roleService.exists(roleResponse.name())) {
        throw new BadRequestException("Role " + roleResponse.name() + " already exists.");
    }
    Role role = new RoleImpl();
    role.setName(roleResponse.name());
    role.setPermissions(roleResponse.permissions());
    role.setDescription(roleResponse.description().orNull());
    try {
        role = roleService.save(role);
    } catch (ValidationException e) {
        log.error("Invalid role creation request.");
        throw new BadRequestException(e);
    }
    final URI uri = getUriBuilderToSelf().path(RolesResource.class).path("{rolename}").build(role.getName());
    return Response.created(uri).entity(RoleResponse.create(role.getName(), Optional.fromNullable(role.getDescription()), role.getPermissions(), role.isReadOnly())).build();
}
Also used : Role(org.graylog2.shared.users.Role) ValidationException(org.graylog2.plugin.database.ValidationException) RoleImpl(org.graylog2.users.RoleImpl) BadRequestException(javax.ws.rs.BadRequestException) URI(java.net.URI) RequiresPermissions(org.apache.shiro.authz.annotation.RequiresPermissions) POST(javax.ws.rs.POST) ApiOperation(io.swagger.annotations.ApiOperation) AuditEvent(org.graylog2.audit.jersey.AuditEvent)

Example 3 with RoleResponse

use of org.graylog2.rest.models.roles.responses.RoleResponse in project graylog2-server by Graylog2.

the class RolesResource method update.

@PUT
@Path("{rolename}")
@ApiOperation("Update an existing role")
@AuditEvent(type = AuditEventTypes.ROLE_UPDATE)
public RoleResponse update(@ApiParam(name = "rolename", required = true) @PathParam("rolename") String name, @ApiParam(name = "JSON Body", value = "The new representation of the role", required = true) RoleResponse role) throws NotFoundException {
    final Role roleToUpdate = roleService.load(name);
    if (roleToUpdate.isReadOnly()) {
        throw new BadRequestException("Cannot update read only role " + name);
    }
    roleToUpdate.setName(role.name());
    roleToUpdate.setDescription(role.description().orNull());
    roleToUpdate.setPermissions(role.permissions());
    try {
        roleService.save(roleToUpdate);
    } catch (ValidationException e) {
        throw new BadRequestException(e);
    }
    return RoleResponse.create(roleToUpdate.getName(), Optional.fromNullable(roleToUpdate.getDescription()), roleToUpdate.getPermissions(), role.readOnly());
}
Also used : Role(org.graylog2.shared.users.Role) ValidationException(org.graylog2.plugin.database.ValidationException) BadRequestException(javax.ws.rs.BadRequestException) Path(javax.ws.rs.Path) ApiOperation(io.swagger.annotations.ApiOperation) AuditEvent(org.graylog2.audit.jersey.AuditEvent) PUT(javax.ws.rs.PUT)

Example 4 with RoleResponse

use of org.graylog2.rest.models.roles.responses.RoleResponse in project graylog2-server by Graylog2.

the class RolesResource method listAll.

@GET
@RequiresPermissions(RestPermissions.ROLES_READ)
@ApiOperation(value = "List all roles", notes = "")
public RolesResponse listAll() throws NotFoundException {
    final Set<Role> roles = roleService.loadAll();
    Set<RoleResponse> roleResponses = Sets.newHashSet();
    for (Role role : roles) {
        roleResponses.add(RoleResponse.create(role.getName(), Optional.fromNullable(role.getDescription()), role.getPermissions(), role.isReadOnly()));
    }
    return RolesResponse.create(roleResponses);
}
Also used : Role(org.graylog2.shared.users.Role) RoleResponse(org.graylog2.rest.models.roles.responses.RoleResponse) RequiresPermissions(org.apache.shiro.authz.annotation.RequiresPermissions) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation)

Aggregations

ApiOperation (io.swagger.annotations.ApiOperation)4 Role (org.graylog2.shared.users.Role)4 BadRequestException (javax.ws.rs.BadRequestException)2 GET (javax.ws.rs.GET)2 Path (javax.ws.rs.Path)2 RequiresPermissions (org.apache.shiro.authz.annotation.RequiresPermissions)2 AuditEvent (org.graylog2.audit.jersey.AuditEvent)2 ValidationException (org.graylog2.plugin.database.ValidationException)2 URI (java.net.URI)1 POST (javax.ws.rs.POST)1 PUT (javax.ws.rs.PUT)1 RoleResponse (org.graylog2.rest.models.roles.responses.RoleResponse)1 RoleImpl (org.graylog2.users.RoleImpl)1