use of io.gravitee.rest.api.model.MembershipEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationService_FindAllTest method shouldTryFindAll.
@Test
public void shouldTryFindAll() throws Exception {
Application application = new Application();
application.setId("appId");
application.setType(ApplicationType.SIMPLE);
application.setStatus(ApplicationStatus.ACTIVE);
when(applicationRepository.findAllByEnvironment(eq("DEFAULT"), eq(ApplicationStatus.ACTIVE))).thenReturn(new HashSet<>(Collections.singletonList(application)));
when(roleService.findPrimaryOwnerRoleByOrganization(any(), any())).thenReturn(new RoleEntity());
when(membershipService.getMembershipsByReferencesAndRole(any(), any(), any())).thenReturn(new HashSet<>(Collections.singletonList(new MembershipEntity())));
when(userService.findByIds(any())).thenReturn(Collections.emptySet());
Set<ApplicationListItem> set = applicationService.findAll();
assertThat(set).hasSize(1);
verify(applicationRepository, times(1)).findAllByEnvironment("DEFAULT", ApplicationStatus.ACTIVE);
}
use of io.gravitee.rest.api.model.MembershipEntity in project gravitee-management-rest-api by gravitee-io.
the class AbstractResource method canReadApi.
protected void canReadApi(final String api) {
if (!isAdmin()) {
// get memberships of the current user
List<MembershipEntity> memberships = retrieveApiMembership().collect(Collectors.toList());
Set<String> groups = memberships.stream().filter(m -> GROUP.equals(m.getReferenceType())).map(m -> m.getReferenceId()).collect(Collectors.toSet());
Set<String> directMembers = memberships.stream().filter(m -> API.equals(m.getReferenceType())).map(m -> m.getReferenceId()).collect(Collectors.toSet());
// if the current user is member of the API, continue
if (directMembers.contains(api)) {
return;
}
// fetch group memberships
final ApiQuery apiQuery = new ApiQuery();
apiQuery.setGroups(new ArrayList<>(groups));
apiQuery.setIds(Collections.singletonList(api));
final Collection<String> strings = apiService.searchIds(apiQuery);
final boolean canReadAPI = strings.contains(api);
if (!canReadAPI) {
throw new ForbiddenAccessException();
}
}
}
use of io.gravitee.rest.api.model.MembershipEntity in project gravitee-management-rest-api by gravitee-io.
the class ApplicationService_UpdateTest method shouldUpdate.
@Test
public void shouldUpdate() throws TechnicalException {
ApplicationSettings settings = new ApplicationSettings();
SimpleApplicationSettings clientSettings = new SimpleApplicationSettings();
clientSettings.setClientId(CLIENT_ID);
settings.setApp(clientSettings);
when(existingApplication.getSettings()).thenReturn(settings);
when(applicationRepository.findById(APPLICATION_ID)).thenReturn(Optional.of(application));
when(application.getName()).thenReturn(APPLICATION_NAME);
when(application.getStatus()).thenReturn(ApplicationStatus.ACTIVE);
when(existingApplication.getName()).thenReturn(APPLICATION_NAME);
when(existingApplication.getDescription()).thenReturn("My description");
when(application.getType()).thenReturn(ApplicationType.SIMPLE);
when(applicationRepository.update(any())).thenReturn(application);
when(roleService.findPrimaryOwnerRoleByOrganization(any(), any())).thenReturn(mock(RoleEntity.class));
MembershipEntity po = new MembershipEntity();
po.setMemberId(USER_NAME);
po.setMemberType(MembershipMemberType.USER);
po.setReferenceId(APPLICATION_ID);
po.setReferenceType(MembershipReferenceType.APPLICATION);
po.setRoleId("APPLICATION_PRIMARY_OWNER");
when(membershipService.getMembershipsByReferencesAndRole(any(), any(), any())).thenReturn(Collections.singleton(po));
final ApplicationEntity applicationEntity = applicationService.update(APPLICATION_ID, existingApplication);
verify(applicationRepository).update(argThat(application -> APPLICATION_NAME.equals(application.getName()) && application.getUpdatedAt() != null));
assertNotNull(applicationEntity);
assertEquals(APPLICATION_NAME, applicationEntity.getName());
}
use of io.gravitee.rest.api.model.MembershipEntity in project gravitee-management-rest-api by gravitee-io.
the class ApiService_FindByIdTest method shouldFindById.
@Test
public void shouldFindById() throws TechnicalException {
api = new Api();
api.setId(API_ID);
api.setEnvironmentId("DEFAULT");
when(apiRepository.findById(API_ID)).thenReturn(Optional.of(api));
MembershipEntity po = new MembershipEntity();
po.setMemberId(USER_NAME);
when(membershipService.getPrimaryOwner(MembershipReferenceType.API, API_ID)).thenReturn(po);
when(userService.findById(USER_NAME)).thenReturn(mock(UserEntity.class));
final ApiEntity apiEntity = apiService.findById(API_ID);
assertNotNull(apiEntity);
}
use of io.gravitee.rest.api.model.MembershipEntity in project gravitee-management-rest-api by gravitee-io.
the class TaskServiceTest method shouldFindAll.
@Test
public void shouldFindAll() throws TechnicalException {
MembershipEntity m1 = new MembershipEntity();
m1.setId("1");
m1.setReferenceId("api1");
m1.setReferenceType(MembershipReferenceType.API);
m1.setRoleId("API_PO");
MembershipEntity m2 = new MembershipEntity();
m2.setId("2");
m2.setReferenceId("api2");
m2.setReferenceType(MembershipReferenceType.API);
m2.setRoleId("API_USER");
Map<String, char[]> withPerm = new HashMap<>();
withPerm.put("SUBSCRIPTION", new char[] { 'C', 'R', 'U', 'D' });
Map<String, char[]> withoutPerm = new HashMap<>();
withoutPerm.put("SUBSCRIPTION", new char[] { 'C', 'R', 'D' });
RoleEntity roleEntityWithPerm = new RoleEntity();
roleEntityWithPerm.setName("PO");
roleEntityWithPerm.setPermissions(withPerm);
roleEntityWithPerm.setScope(io.gravitee.rest.api.model.permissions.RoleScope.API);
RoleEntity roleEntityWithoutPerm = new RoleEntity();
roleEntityWithoutPerm.setName("USER");
roleEntityWithoutPerm.setPermissions(withoutPerm);
roleEntityWithoutPerm.setScope(io.gravitee.rest.api.model.permissions.RoleScope.API);
when(roleService.findById("API_PO")).thenReturn(roleEntityWithPerm);
when(roleService.findById("API_USER")).thenReturn(roleEntityWithoutPerm);
when(promotionTasksService.getPromotionTasks(any())).thenReturn(emptyList());
Set<MembershipEntity> memberships = new HashSet<>();
memberships.add(m1);
memberships.add(m2);
when(membershipService.getMembershipsByMemberAndReference(any(), any(), any())).thenReturn(memberships);
when(userService.search(any(UserCriteria.class), any())).thenReturn(new Page<>(emptyList(), 1, 0, 0));
taskService.findAll("user");
verify(subscriptionService, times(1)).search(any());
verify(promotionTasksService, times(1)).getPromotionTasks(any());
}
Aggregations