@@ -299,68 +299,45 @@ public void initStore() {
299299 }
300300
301301 public RangerRoleList getRoles (SearchFilter filter , RangerRoleList rangerRoleList ) throws Exception {
302- List <RangerRole > roles = new ArrayList <>();
303- List <XXRole > xxRoles = roleService .searchResources (filter , roleService .searchFields , roleService .sortFields , rangerRoleList );
302+ List <RangerRole > roles = getRoles (filter );
304303
305- if (CollectionUtils .isNotEmpty (xxRoles )) {
306- for (XXRole xxRole : xxRoles ) {
307- roles .add (roleService .read (xxRole .getId ()));
308- }
309- }
310-
311- rangerRoleList .setRoleList (roles );
304+ setPaginatedResult (roles , filter , rangerRoleList );
312305
313306 return rangerRoleList ;
314307 }
315308
316- public RangerRoleList getRolesForUser (SearchFilter filter , RangerRoleList rangerRoleList ) {
317- List <RangerRole > roles = new ArrayList <>();
309+ public RangerRoleList getRolesForUser (SearchFilter filter , RangerRoleList rangerRoleList ) throws Exception {
310+ if (filter == null ) {
311+ filter = new SearchFilter ();
312+ }
313+
314+ List <RangerRole > roles ;
318315 UserSessionBase userSession = ContextUtil .getCurrentUserSession ();
319316
320317 if (userSession != null && userSession .getUserRoleList ().size () == 1 && userSession .getUserRoleList ().contains (RangerConstants .ROLE_USER ) && userSession .getLoginId () != null ) {
321318 VXUser loggedInVXUser = xUserService .getXUserByUserName (userSession .getLoginId ());
322319 List <XXRole > xxRoles = daoMgr .getXXRole ().findByUserId (loggedInVXUser .getId ());
323320
321+ roles = new ArrayList <>();
322+
324323 if (CollectionUtils .isNotEmpty (xxRoles )) {
325324 for (XXRole xxRole : xxRoles ) {
326325 roles .add (roleService .read (xxRole .getId ()));
327326 }
328327 }
329328
330- if (predicateUtil != null && filter != null && !filter .isEmpty ()) {
329+ if (predicateUtil != null && !filter .isEmpty ()) {
331330 List <RangerRole > copy = new ArrayList <>(roles );
332331
333332 predicateUtil .applyFilter (copy , filter );
334333
335334 roles = copy ;
336335 }
337-
338- int totalCount = roles .size ();
339- int startIndex = filter .getStartIndex ();
340- int pageSize = filter .getMaxRows ();
341- int toIndex = Math .min (startIndex + pageSize , totalCount );
342-
343- if (CollectionUtils .isNotEmpty (roles )) {
344- roles = roles .subList (startIndex , toIndex );
345-
346- rangerRoleList .setResultSize (roles .size ());
347- rangerRoleList .setPageSize (filter .getMaxRows ());
348- rangerRoleList .setSortBy (filter .getSortBy ());
349- rangerRoleList .setSortType (filter .getSortType ());
350- rangerRoleList .setStartIndex (filter .getStartIndex ());
351- rangerRoleList .setTotalCount (totalCount );
352- }
353336 } else {
354- List <XXRole > xxRoles = roleService .searchResources (filter , roleService .searchFields , roleService .sortFields , rangerRoleList );
355-
356- if (CollectionUtils .isNotEmpty (xxRoles )) {
357- for (XXRole xxRole : xxRoles ) {
358- roles .add (roleService .read (xxRole .getId ()));
359- }
360- }
337+ roles = getRoles (filter );
361338 }
362339
363- rangerRoleList . setRoleList (roles );
340+ setPaginatedResult (roles , filter , rangerRoleList );
364341
365342 return rangerRoleList ;
366343 }
@@ -500,6 +477,26 @@ private boolean ensureRoleNotInZone(String roleName) {
500477 return roleRefZoneCount < 1 ;
501478 }
502479
480+ private void setPaginatedResult (List <RangerRole > roles , SearchFilter filter , RangerRoleList result ) {
481+ int totalCount = roles .size ();
482+ int startIndex = filter .getStartIndex ();
483+ int pageSize = filter .getMaxRows ();
484+ int toIndex = Math .min (startIndex + pageSize , totalCount );
485+
486+ if (CollectionUtils .isNotEmpty (roles )) {
487+ roles = roles .subList (startIndex , toIndex );
488+
489+ result .setResultSize (roles .size ());
490+ result .setPageSize (filter .getMaxRows ());
491+ result .setSortBy (filter .getSortBy ());
492+ result .setSortType (filter .getSortType ());
493+ result .setStartIndex (filter .getStartIndex ());
494+ result .setTotalCount (totalCount );
495+ }
496+
497+ result .setRoleList (roles );
498+ }
499+
503500 public static class RoleVersionUpdater implements Runnable {
504501 final RangerDaoManager daoManager ;
505502
0 commit comments