public View(Role role) { this.name = role.name; this.source = role.getSource(); } }
public Role(String name) { this.setName(name); }
private String roleKey(Role role) { return roleKey(role.getName()); }
public Role(String name) { this.setName(name); }
private String roleKey(Role role) { return roleKey(role.getName()); }
public View(Role role) { this.name = role.name; this.source = role.getSource(); } }
public long updateUserPermissions(Map<String, UserPermission> permissionsById) { if (permissionsById.remove(UnrestrictedResourceConfig.UNRESTRICTED_USERNAME) != null) { permissionsRepository.put(permissionsResolver.resolveUnrestrictedUser()); log.info("Synced anonymous user role."); } List<ExternalUser> extUsers = permissionsById .values() .stream() .map(permission -> new ExternalUser() .setId(permission.getId()) .setExternalRoles(permission.getRoles() .stream() .filter(role -> role.getSource() == Role.Source.EXTERNAL) .collect(Collectors.toList()))) .collect(Collectors.toList()); if (extUsers.isEmpty()) { log.info("Found no non-anonymous user roles to sync."); return 0; } long count = permissionsResolver.resolve(extUsers) .values() .stream() .map(permission -> permissionsRepository.put(permission)) .count(); log.info("Synced {} non-anonymous user roles.", count); return count; }
@RequestMapping(value = "/{userId:.+}", method = RequestMethod.PUT) public void putUserPermission(@PathVariable String userId, @RequestBody @NonNull List<String> externalRoles) { List<Role> convertedRoles = externalRoles .stream() .map(extRole -> new Role().setSource(Role.Source.EXTERNAL).setName(extRole)) .collect(Collectors.toList()); ExternalUser extUser = new ExternalUser().setId(ControllerSupport.convert(userId)) .setExternalRoles(convertedRoles); try { UserPermission userPermission = permissionsResolver.resolveAndMerge(extUser); log.debug( "Updated user permissions (userId: {}, roles: {}, suppliedExternalRoles: {})", userId, userPermission.getRoles().stream().map(Role::getName).collect(Collectors.toList()), externalRoles ); permissionsRepository.put(userPermission); } catch (PermissionResolutionException pre) { throw new UserPermissionModificationException(pre); } }
public long updateUserPermissions(Map<String, UserPermission> permissionsById) { if (permissionsById.remove(UnrestrictedResourceConfig.UNRESTRICTED_USERNAME) != null) { permissionsRepository.put(permissionsResolver.resolveUnrestrictedUser()); log.info("Synced anonymous user role."); } List<ExternalUser> extUsers = permissionsById .values() .stream() .map(permission -> new ExternalUser() .setId(permission.getId()) .setExternalRoles(permission.getRoles() .stream() .filter(role -> role.getSource() == Role.Source.EXTERNAL) .collect(Collectors.toList()))) .collect(Collectors.toList()); if (extUsers.isEmpty()) { log.info("Found no non-anonymous user roles to sync."); return 0; } long count = permissionsResolver.resolve(extUsers) .values() .stream() .map(permission -> permissionsRepository.put(permission)) .count(); log.info("Synced {} non-anonymous user roles.", count); return count; }