use of io.apiman.manager.api.rest.exceptions.OrganizationNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method revokeAll.
/**
* @see IOrganizationResource#revokeAll(java.lang.String, java.lang.String)
*/
@Override
public void revokeAll(String organizationId, String userId) throws OrganizationNotFoundException, RoleNotFoundException, UserNotFoundException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.orgAdmin, organizationId);
get(organizationId);
users.get(userId);
MembershipData auditData = new MembershipData();
auditData.setUserId(userId);
// $NON-NLS-1$
auditData.addRole("*");
try {
storage.beginTx();
storage.deleteMemberships(userId, organizationId);
storage.createAuditEntry(AuditUtils.membershipRevoked(organizationId, auditData, securityContext));
storage.commitTx();
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.rest.exceptions.OrganizationNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method createClient.
/**
* @see IOrganizationResource#createClient(java.lang.String, io.apiman.manager.api.beans.clients.NewClientBean)
*/
@Override
public ClientBean createClient(String organizationId, NewClientBean bean) throws OrganizationNotFoundException, ClientAlreadyExistsException, NotAuthorizedException, InvalidNameException {
securityContext.checkPermissions(PermissionType.clientEdit, organizationId);
FieldValidator.validateName(bean.getName());
ClientBean newClient = new ClientBean();
newClient.setId(BeanUtils.idFromName(bean.getName()));
newClient.setName(bean.getName());
newClient.setDescription(bean.getDescription());
newClient.setCreatedBy(securityContext.getCurrentUser());
newClient.setCreatedOn(new Date());
try {
// Store/persist the new client
storage.beginTx();
OrganizationBean org = getOrganizationFromStorage(organizationId);
newClient.setOrganization(org);
if (storage.getClient(org.getId(), newClient.getId()) != null) {
throw ExceptionFactory.clientAlreadyExistsException(bean.getName());
}
storage.createClient(newClient);
storage.createAuditEntry(AuditUtils.clientCreated(newClient, securityContext));
if (bean.getInitialVersion() != null) {
NewClientVersionBean newClientVersion = new NewClientVersionBean();
newClientVersion.setVersion(bean.getInitialVersion());
createClientVersionInternal(newClientVersion, newClient);
}
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Created client %s: %s", newClient.getName(), newClient));
return newClient;
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.rest.exceptions.OrganizationNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method revoke.
/**
* @see IOrganizationResource#revoke(java.lang.String, java.lang.String, java.lang.String)
*/
@Override
public void revoke(String organizationId, String roleId, String userId) throws OrganizationNotFoundException, RoleNotFoundException, UserNotFoundException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.orgAdmin, organizationId);
get(organizationId);
users.get(userId);
roles.get(roleId);
MembershipData auditData = new MembershipData();
auditData.setUserId(userId);
try {
storage.beginTx();
storage.deleteMembership(userId, roleId, organizationId);
auditData.addRole(roleId);
storage.createAuditEntry(AuditUtils.membershipRevoked(organizationId, auditData, securityContext));
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Revoked User %s Role %s Org %s", userId, roleId, organizationId));
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.rest.exceptions.OrganizationNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method deletePlanPolicy.
/**
* @see IOrganizationResource#deletePlanPolicy(java.lang.String, java.lang.String, java.lang.String, long)
*/
@Override
public void deletePlanPolicy(String organizationId, String planId, String version, long policyId) throws OrganizationNotFoundException, PlanVersionNotFoundException, PolicyNotFoundException, NotAuthorizedException {
securityContext.checkPermissions(PermissionType.planEdit, organizationId);
// Make sure the plan version exists
PlanVersionBean pvb = getPlanVersionInternal(organizationId, planId, version);
if (pvb.getStatus() == PlanStatus.Locked) {
throw ExceptionFactory.invalidPlanStatusException();
}
try {
storage.beginTx();
PolicyBean policy = this.storage.getPolicy(PolicyType.Plan, organizationId, planId, version, policyId);
if (policy == null) {
throw ExceptionFactory.policyNotFoundException(policyId);
}
storage.deletePolicy(policy);
storage.createAuditEntry(AuditUtils.policyRemoved(policy, PolicyType.Plan, securityContext));
pvb.setModifiedBy(securityContext.getCurrentUser());
pvb.setModifiedOn(new Date());
storage.updatePlanVersion(pvb);
storage.commitTx();
// $NON-NLS-1$
log.debug(String.format("Deleted plan policy %s", policy));
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
use of io.apiman.manager.api.rest.exceptions.OrganizationNotFoundException in project apiman by apiman.
the class OrganizationResourceImpl method deleteClient.
/**
* @see IOrganizationResource#deleteClient(java.lang.String, java.lang.String)
*/
@Override
public void deleteClient(@PathParam("organizationId") String organizationId, @PathParam("clientId") String clientId) throws OrganizationNotFoundException, NotAuthorizedException, EntityStillActiveException {
securityContext.checkPermissions(PermissionType.clientAdmin, organizationId);
try {
storage.beginTx();
ClientBean client = getClientFromStorage(organizationId, clientId);
Iterator<ClientVersionBean> clientVersions = storage.getAllClientVersions(organizationId, clientId);
Iterable<ClientVersionBean> iterable = () -> clientVersions;
List<ClientVersionBean> registeredElems = StreamSupport.stream(iterable.spliterator(), false).filter(clientVersion -> clientVersion.getStatus() == ClientStatus.Registered).limit(5).collect(toList());
if (!registeredElems.isEmpty()) {
throw ExceptionFactory.entityStillActiveExceptionClientVersions(registeredElems);
}
storage.deleteClient(client);
storage.commitTx();
// $NON-NLS-1$
log.debug("Deleted ClientApp: " + client.getName());
} catch (AbstractRestException e) {
storage.rollbackTx();
throw e;
} catch (Exception e) {
storage.rollbackTx();
throw new SystemErrorException(e);
}
}
Aggregations