Search in sources :

Example 21 with User

use of io.gravitee.am.identityprovider.api.User in project gravitee-access-management by gravitee-io.

the class MembersResource method permissions.

@GET
@Path("permissions")
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "List environment member's permissions", notes = "User must have ENVIRONMENT[READ] permission on the specified environment " + "or ENVIRONMENT[READ] permission on the specified organization")
@ApiResponses({ @ApiResponse(code = 200, message = "Environment member's permissions", response = List.class), @ApiResponse(code = 500, message = "Internal server error") })
public void permissions(@PathParam("organizationId") String organizationId, @PathParam("environmentId") String environmentId, @Suspended final AsyncResponse response) {
    final User authenticatedUser = getAuthenticatedUser();
    checkAnyPermission(organizationId, environmentId, Permission.ENVIRONMENT, Acl.READ).andThen(permissionService.findAllPermissions(authenticatedUser, ReferenceType.ENVIRONMENT, environmentId).map(Permission::flatten)).subscribe(response::resume, response::resume);
}
Also used : User(io.gravitee.am.identityprovider.api.User) Permission(io.gravitee.am.model.permissions.Permission) Path(javax.ws.rs.Path) Produces(javax.ws.rs.Produces) GET(javax.ws.rs.GET) ApiOperation(io.swagger.annotations.ApiOperation) ApiResponses(io.swagger.annotations.ApiResponses)

Example 22 with User

use of io.gravitee.am.identityprovider.api.User in project gravitee-access-management by gravitee-io.

the class AlertNotifierResource method patchAlertNotifier.

@PATCH
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Update an alert notifier", notes = "Update an alert notifier" + "User must have DOMAIN_ALERT_NOTIFIER[UPDATE] permission on the specified domain, environment or organization.")
@ApiResponses({ @ApiResponse(code = 200, message = "Alert notifier successfully updated", response = AlertNotifier.class), @ApiResponse(code = 500, message = "Internal server error") })
public void patchAlertNotifier(@PathParam("organizationId") String organizationId, @PathParam("environmentId") String environmentId, @PathParam("domain") String domainId, @PathParam("notifierId") String notifierId, @ApiParam(name = "alertNotifier", required = true) @Valid @NotNull PatchAlertNotifier patchAlertNotifier, @Suspended final AsyncResponse response) {
    final User authenticatedUser = this.getAuthenticatedUser();
    checkAnyPermission(organizationId, environmentId, Permission.DOMAIN_ALERT_NOTIFIER, Acl.UPDATE).andThen(alertNotifierService.update(ReferenceType.DOMAIN, domainId, notifierId, patchAlertNotifier, authenticatedUser)).subscribe(response::resume, response::resume);
}
Also used : User(io.gravitee.am.identityprovider.api.User)

Example 23 with User

use of io.gravitee.am.identityprovider.api.User in project gravitee-access-management by gravitee-io.

the class AlertNotifierResource method deleteAlertNotifier.

@DELETE
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Delete an alert notifier", notes = "Delete an alert notifier by its id. " + "User must have DOMAIN_ALERT_NOTIFIER[DELETE] permission on the specified domain, environment or organization.")
@ApiResponses({ @ApiResponse(code = 204, message = "Alert notifier successfully deleted"), @ApiResponse(code = 500, message = "Internal server error") })
public void deleteAlertNotifier(@PathParam("organizationId") String organizationId, @PathParam("environmentId") String environmentId, @PathParam("domain") String domainId, @PathParam("notifierId") String notifierId, @Suspended final AsyncResponse response) {
    final User authenticatedUser = this.getAuthenticatedUser();
    checkAnyPermission(organizationId, environmentId, Permission.DOMAIN_ALERT_NOTIFIER, Acl.LIST).andThen(alertNotifierService.delete(ReferenceType.DOMAIN, domainId, notifierId, authenticatedUser)).subscribe(() -> response.resume(Response.noContent().build()), response::resume);
}
Also used : User(io.gravitee.am.identityprovider.api.User)

Example 24 with User

use of io.gravitee.am.identityprovider.api.User in project gravitee-access-management by gravitee-io.

the class AlertNotifiersResource method createAlertNotifier.

@POST
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Create an alert notifier", notes = "Create a new alert notifier" + "User must have DOMAIN_ALERT_NOTIFIER[CREATE] permission on the specified domain, environment or organization.")
@ApiResponses({ @ApiResponse(code = 200, message = "Alert notifier successfully created", response = AlertNotifier.class), @ApiResponse(code = 500, message = "Internal server error") })
public void createAlertNotifier(@PathParam("organizationId") String organizationId, @PathParam("environmentId") String environmentId, @PathParam("domain") String domainId, @ApiParam(name = "alertNotifier", required = true) @Valid @NotNull NewAlertNotifier newAlertNotifier, @Suspended final AsyncResponse response) {
    final User authenticatedUser = this.getAuthenticatedUser();
    checkAnyPermission(organizationId, environmentId, Permission.DOMAIN_ALERT_NOTIFIER, Acl.CREATE).andThen(alertNotifierService.create(ReferenceType.DOMAIN, domainId, newAlertNotifier, authenticatedUser)).subscribe(response::resume, response::resume);
}
Also used : User(io.gravitee.am.identityprovider.api.User)

Example 25 with User

use of io.gravitee.am.identityprovider.api.User in project gravitee-access-management by gravitee-io.

the class AlertTriggerResource method list.

@PATCH
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
@ApiOperation(value = "Update an alert trigger", notes = "Update an alert trigger" + "User must have DOMAIN_ALERT[UPDATE] permission on the specified domain, environment or organization.")
@ApiResponses({ @ApiResponse(code = 200, message = "Alert trigger successfully updated", response = AlertTrigger.class), @ApiResponse(code = 500, message = "Internal server error") })
public void list(@PathParam("organizationId") String organizationId, @PathParam("environmentId") String environmentId, @PathParam("domain") String domainId, @ApiParam(name = "alertTrigger", required = true) @Valid @NotNull PatchAlertTrigger patchAlertTrigger, @Suspended final AsyncResponse response) {
    final User authenticatedUser = this.getAuthenticatedUser();
    checkAnyPermission(organizationId, environmentId, Permission.DOMAIN_ALERT, Acl.UPDATE).andThen(alertTriggerService.createOrUpdate(ReferenceType.DOMAIN, domainId, patchAlertTrigger, authenticatedUser)).subscribe(response::resume, response::resume);
}
Also used : User(io.gravitee.am.identityprovider.api.User)

Aggregations

User (io.gravitee.am.identityprovider.api.User)157 ApiOperation (io.swagger.annotations.ApiOperation)68 ApiResponses (io.swagger.annotations.ApiResponses)68 Autowired (org.springframework.beans.factory.annotation.Autowired)66 Maybe (io.reactivex.Maybe)52 DomainNotFoundException (io.gravitee.am.service.exception.DomainNotFoundException)50 ReferenceType (io.gravitee.am.model.ReferenceType)49 Permission (io.gravitee.am.model.permissions.Permission)47 AsyncResponse (javax.ws.rs.container.AsyncResponse)44 Suspended (javax.ws.rs.container.Suspended)44 Acl (io.gravitee.am.model.Acl)43 MediaType (io.gravitee.common.http.MediaType)42 AbstractResource (io.gravitee.am.management.handlers.management.api.resources.AbstractResource)39 javax.ws.rs (javax.ws.rs)39 Valid (javax.validation.Valid)37 NotNull (javax.validation.constraints.NotNull)37 ResourceContext (javax.ws.rs.container.ResourceContext)37 Context (javax.ws.rs.core.Context)37 Response (javax.ws.rs.core.Response)37 DomainService (io.gravitee.am.service.DomainService)35