Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -129,4 +129,6 @@ AuthoritySearchResult searchAuthorityEntries(IUser user, String firstName, Strin
Page<IAuthorityEntry> getAuthoritiesByGroup(long groupId, int page, int pageSize);

Page<IAuthorityEntry> getUserSpecificAuthorities(IUser user, int page, int pageSize);

List<IAuthorityEntry> getAuthoritiesBySource(IUser user, String source);
}
Original file line number Diff line number Diff line change
Expand Up @@ -303,6 +303,11 @@ public Page<IAuthorityEntry> getAuthoritiesByGroup(long groupId, int page, int p
return entryRepository.findByGroupsOrderByName(groupId, pageable);
}

@Override
public List<IAuthorityEntry> getAuthoritiesBySource(IUser user, String source) {
return entryRepository.findByUsernameAndImporterIdOrderByName(user.getUsername(), source);
}

@Override
public Page<IAuthorityEntry> getUserSpecificAuthorities(IUser user, int page, int pageSize) {
Pageable pageable = PageRequest.of(page, pageSize);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -45,18 +45,29 @@ public String list(Model model, Authentication authentication,
logger.error("Trying to access invalid page number: ", ex);
}
pageInt = (pageInt - 1) < 0 ? 0 : pageInt - 1;

IUser user = (IUser)authentication.getPrincipal();
List<ICitationGroup> userGroups = citationManager.getGroups((IUser) authentication.getPrincipal());
Page<IAuthorityEntry> authoritiesPage = authorityService.getAll(user,
userGroups.stream().map(group -> group.getGroupId()).collect(Collectors.toList()),pageInt, authorityPageSize);
Page<IAuthorityEntry> authoritiesPage = authorityService.getAll(
user,
userGroups.stream().map(group -> group.getGroupId()).collect(Collectors.toList()),
pageInt,
authorityPageSize);
List<IAuthorityEntry> authorities = authoritiesPage.getContent();

model.addAttribute("importedAuthoritySources", authorities.stream()
.map(authorityEntry -> authorityEntry.getImporterId())
.distinct()
.collect(Collectors.toList()));
model.addAttribute("authorities", authorities);
model.addAttribute("groups", userGroups);
model.addAttribute("displayBy", "all");
model.addAttribute("username", user.getUsername());
model.addAttribute("total", authoritiesPage.getTotalElements());
model.addAttribute("totalPages", authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("totalPages",
authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("currentPage", page);

return "auth/authorities/list";
}

Expand All @@ -71,14 +82,25 @@ public String getAuthoritiesForGroup(Model model, Authentication authentication,
logger.error("Trying to access invalid page number: ", ex);
}
pageInt = (pageInt - 1) < 0 ? 0 : pageInt - 1;

IUser user = (IUser)authentication.getPrincipal();
Page<IAuthorityEntry> authoritiesPage = authorityService.getAuthoritiesByGroup(Long.valueOf(zoteroGroupId), pageInt, authorityPageSize);
model.addAttribute("authorities", authoritiesPage.getContent());
model.addAttribute("groups", citationManager.getGroups((IUser)authentication.getPrincipal()));
Page<IAuthorityEntry> authoritiesPage = authorityService.getAuthoritiesByGroup(
Long.valueOf(zoteroGroupId),
pageInt,
authorityPageSize);
List<IAuthorityEntry> authorities = authoritiesPage.getContent();

model.addAttribute("importedAuthoritySources", authorities.stream()
.map(authorityEntry -> authorityEntry.getImporterId())
.distinct()
.collect(Collectors.toList()));
model.addAttribute("authorities", authorities);
model.addAttribute("groups", citationManager.getGroups(user));
model.addAttribute("displayBy", zoteroGroupId);
model.addAttribute("username", user.getUsername());
model.addAttribute("total", authoritiesPage.getTotalElements());
model.addAttribute("totalPages", authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("totalPages",
authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("currentPage", page);
return "auth/authorities/list";
}
Expand All @@ -93,15 +115,66 @@ public String getAuthoritiesForUser(Model model, Authentication authentication,
logger.error("Trying to access invalid page number: ", ex);
}
pageInt = (pageInt - 1) < 0 ? 0 : pageInt - 1;

IUser user = (IUser)authentication.getPrincipal();
Page<IAuthorityEntry> authoritiesPage = authorityService.getUserSpecificAuthorities(user, pageInt, authorityPageSize);
model.addAttribute("authorities", authoritiesPage.getContent());
model.addAttribute("groups", citationManager.getGroups((IUser)authentication.getPrincipal()));
Page<IAuthorityEntry> authoritiesPage = authorityService.getUserSpecificAuthorities(
user,
pageInt,
authorityPageSize);
List<IAuthorityEntry> authorities = authoritiesPage.getContent();

model.addAttribute("importedAuthoritySources", authorities.stream()
.map(authorityEntry -> authorityEntry.getImporterId())
.distinct()
.collect(Collectors.toList()));
model.addAttribute("authorities", authorities);
model.addAttribute("groups", citationManager.getGroups(user));
model.addAttribute("displayBy", "userSpecific");
model.addAttribute("username", user.getUsername());

model.addAttribute("total", authoritiesPage.getTotalElements());
model.addAttribute("totalPages",
authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("currentPage", page);

return "auth/authorities/list";
}

@RequestMapping("/auth/authority/list/{source}")
public String getAuthoritiesForSource(Model model, Authentication authentication,
@PathVariable("source") String source, @RequestParam(defaultValue = "1", required = false, value = "page") String page) {
Integer pageInt = 1;
try {
pageInt = new Integer(page);
} catch (NumberFormatException ex) {
logger.error("Trying to access invalid page number: ", ex);
}
pageInt = (pageInt - 1) < 0 ? 0 : pageInt - 1;

IUser user = (IUser) authentication.getPrincipal();
List<ICitationGroup> userGroups = citationManager.getGroups(user);
Page<IAuthorityEntry> authoritiesPage = authorityService.getAll(
user,
userGroups.stream().map(group -> group.getGroupId()).collect(Collectors.toList()),
pageInt,
authorityPageSize);
List<IAuthorityEntry> authorities = authoritiesPage.getContent();

model.addAttribute("importedAuthoritySources", authorities.stream()
.map(authorityEntry -> authorityEntry.getImporterId())
.distinct()
.collect(Collectors.toList()));
model.addAttribute("authorities",
authorityService.getAuthoritiesBySource(user, source.equals("null") ? null : source));
model.addAttribute("groups", userGroups);
model.addAttribute("displayBy", "source-" + source);
model.addAttribute("username", user.getUsername());

model.addAttribute("total", authoritiesPage.getTotalElements());
model.addAttribute("totalPages", authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("totalPages",
authoritiesPage.getTotalPages() > 0 ? authoritiesPage.getTotalPages() : 1);
model.addAttribute("currentPage", page);

return "auth/authorities/list";
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

code should be cleaned up with intentional empty lines to organize blocks and intentional newlines for parameters of long method calls.

}
}
1 change: 1 addition & 0 deletions citesphere/src/main/resources/config.properties
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,7 @@ _isiscb_disable_ssl_verification = ${isiscb.disable.ssl.verification}
# Importer Names
_importer_name_authority.importer.viaf=VIAF
_importer_name_authority.importer.conceptpower=Conceptpower
_importer_name_authority.importer.isiscb=IsisCB

_creation_default_item_type=JOURNAL_ARTICLE
_available_item_columns=version,publicationTitle,volume,issue,pages,series,seriesTitle,abstractNote,dateAdded
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -70,13 +70,16 @@
});

function getAuthorityUrl(displayAuthoritiesVal) {
if (displayAuthoritiesVal === 'all') {
return [[@{/auth/authority/list}]];
} else if (displayAuthoritiesVal === 'userSpecific') {
return [[@{/auth/authority/user/list}]];
} else {
if (displayAuthoritiesVal === 'all') {
return [[@{/auth/authority/list}]];
} else if (displayAuthoritiesVal === 'userSpecific') {
return [[@{/auth/authority/user/list}]];
} else if (displayAuthoritiesVal.startsWith('source')) {
var source = displayAuthoritiesVal.split("-")[1];
return [[@{/auth/authority/list/}]] + source;
} else {
return [[@{/auth/authority/}]] + displayAuthoritiesVal + "/list";
}
}
}

</script>
Expand All @@ -95,7 +98,10 @@ <h2>Managed Authority Entries</h2>
<option th:selected="${#strings.equals(displayBy, 'userSpecific')}" value="userSpecific">[[${username}]]</option>
<span th:each="groupDetail:${groups}">
<option th:selected="${#strings.equals(displayBy, groupDetail.groupId)}" th:value="${groupDetail.groupId}">Group - [[${groupDetail.name}]]</option>
</span>
</span>
<span th:each="source:${importedAuthoritySources}">
<option th:selected="${#strings.equals(displayBy, 'source-' + source)}" th:value="${'source-' + source}">Source - [[${@environment.getProperty('_importer_name_' + source)}]]</option>
</span>
</select><br><br>

<ul id="pagination-top" class="pagination-sm"></ul>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -651,4 +651,28 @@ public void test_getUserSpecificAuthorities_emptyResult() {
Page<IAuthorityEntry> searchResult = managerToTest.getUserSpecificAuthorities(user, page, pageSize);
Assert.assertTrue(searchResult.isEmpty());
}

@Test
public void test_getAuthoritiesBySource() {
String source = "testsource";
List<IAuthorityEntry> expectedEntries = new ArrayList<>();
expectedEntries.add(entry1);
expectedEntries.add(entry2);
Mockito.when(entryRepository.findByUsernameAndImporterIdOrderByName(user.getUsername(), source))
.thenReturn(expectedEntries);

List<IAuthorityEntry> actualEntries = managerToTest.getAuthoritiesBySource(user, source);
Assert.assertEquals(expectedEntries, actualEntries);
}

@Test
public void test_getAuthoritiesBySource_noEntriesFound() {
String source = "testsource";
List<IAuthorityEntry> expectedEntries = new ArrayList<>();
Mockito.when(entryRepository.findByUsernameAndImporterIdOrderByName(user.getUsername(), source))
.thenReturn(expectedEntries);

List<IAuthorityEntry> actualEntries = managerToTest.getAuthoritiesBySource(user, source);
Assert.assertEquals(expectedEntries, actualEntries);
}
}