use of org.motechproject.server.web.dto.ModuleMenuSection in project motech by motech.
the class MenuBuilderTest method shouldNotAddMenuSectionIfUserDoesNotHaveAccessToAnySubMenu.
@Test
public void shouldNotAddMenuSectionIfUserDoesNotHaveAccessToAnySubMenu() {
setUpToTestAccessControlledSubMenuLinks(false);
when(userService.getRoles(USERNAME)).thenReturn(Arrays.asList("someOtherRole"));
when(bundle.getHeaders().get(DOC_URL)).thenReturn("http://grameenfoundation.org/");
ModuleMenu menu = menuBuilder.buildMenu(USERNAME);
assertNotNull(menu);
List<ModuleMenuSection> menuSections = menu.getSections();
assertFalse(menuSections.isEmpty());
assertThat(menuSections.size(), Is.is(1));
assertThat(menuSections.get(0).getName(), Is.is("server.modules"));
}
use of org.motechproject.server.web.dto.ModuleMenuSection in project motech by motech.
the class MenuBuilder method getModuleMenuSection.
private ModuleMenuSection getModuleMenuSection(String username, List<String> userRoles, ModuleRegistrationData moduleRegistrationData) {
String moduleName = moduleRegistrationData.getModuleName();
ModuleMenuSection menuSection = new ModuleMenuSection(moduleName, moduleRegistrationData.isNeedsAttention());
menuSection.setModuleDocsUrl(moduleRegistrationData.getDocumentationUrl());
for (Map.Entry<String, SubmenuInfo> submenuEntry : moduleRegistrationData.getSubMenu().entrySet()) {
SubmenuInfo submenuInfo = submenuEntry.getValue();
if (isSubMenuLinkAccessibleByCurrentUser(username, userRoles, submenuInfo)) {
String name = submenuEntry.getKey();
String angularName = getAngularModuleName(moduleRegistrationData);
ModuleMenuLink link = new ModuleMenuLink(name, angularName, submenuInfo.getUrl(), submenuInfo.isNeedsAttention(), null);
menuSection.addLink(link);
}
}
return menuSection;
}
use of org.motechproject.server.web.dto.ModuleMenuSection in project motech by motech.
the class MenuBuilder method buildMenu.
/**
* Builds the menu for the given user. Modules are retrieved from {@code UIFrameworkService} and filtered
* based on permissions.
*
* @param username username of the user for which the menu should be built.
* @return the built menu object.
*/
public ModuleMenu buildMenu(String username) {
ModuleMenu moduleMenu = new ModuleMenu();
List<String> userRoles = userService.getRoles(username);
for (ModuleRegistrationData moduleRegistrationData : getModulesWithSubMenu(userRoles)) {
ModuleMenuSection menuSection = getModuleMenuSection(username, userRoles, moduleRegistrationData);
if (!menuSection.getLinks().isEmpty()) {
moduleMenu.addMenuSection(menuSection);
}
}
moduleMenu.addMenuSection(serverModulesMenuSection(userRoles));
if (checkUserPermission(userRoles, REST_API_PERMISSION)) {
ModuleMenuSection restSection = restDocumentationMenu();
if (CollectionUtils.isNotEmpty(restSection.getLinks())) {
moduleMenu.addMenuSection(restSection);
}
}
return moduleMenu;
}
use of org.motechproject.server.web.dto.ModuleMenuSection in project motech by motech.
the class MenuBuilderTest method shouldFilterMenuBasedOnRoles.
@Test
public void shouldFilterMenuBasedOnRoles() {
setUpRest();
when(userService.getRoles(USERNAME)).thenReturn(Arrays.asList("emailRole", "mcRole"));
when(bundle.getHeaders().get(DOC_URL)).thenReturn("www.docs.motechproject.org");
ModuleMenu menu = menuBuilder.buildMenu(USERNAME);
assertNotNull(menu);
List<ModuleMenuSection> menuSections = menu.getSections();
assertNotNull(menuSections);
assertEquals(2, menuSections.size());
ModuleMenuSection wsSection = menu.getSections().get(0);
verifyWsSection(wsSection);
ModuleMenuSection modulesSection = menu.getSections().get(1);
verifyModulesSection(modulesSection, true, false);
}
use of org.motechproject.server.web.dto.ModuleMenuSection in project motech by motech.
the class MenuBuilderTest method shouldBuildMenuWithAllLinks.
@Test
public void shouldBuildMenuWithAllLinks() {
setUpRest();
when(userService.getRoles(USERNAME)).thenReturn(Arrays.asList("emailRole", "adminRole", "schedulerRole", "mcRole", "mdsRole", "viewRestRole"));
when(dictionary.get(DOC_URL)).thenReturn("http://grameenfoundation.org/");
ModuleMenu menu = menuBuilder.buildMenu(USERNAME);
assertNotNull(menu);
List<ModuleMenuSection> menuSections = menu.getSections();
assertNotNull(menuSections);
assertEquals(4, menuSections.size());
ModuleMenuSection adminSection = menu.getSections().get(0);
verifyAdminSection(adminSection);
ModuleMenuSection wsSection = menu.getSections().get(1);
verifyWsSection(wsSection);
ModuleMenuSection modulesSection = menu.getSections().get(2);
verifyModulesSection(modulesSection, true, true);
ModuleMenuSection restSection = menu.getSections().get(3);
verifyRestSection(restSection, true, true);
}
Aggregations