private String editRolePermission(Operation op, Permission permission, IRole role) {
   IGuild parent = role.getGuild();
   DiscordGuild g =
       cacheService.findGuildById(parent.getID()).orElseGet(() -> new DiscordGuild(parent));
   DiscordRole edit = null;
   for (DiscordRole r : g.getRoles()) {
     if (r.getId().equals(role.getID())) {
       edit = r;
       break;
     }
   }
   if (edit == null) {
     edit = new DiscordRole(role);
     g.getRoles().add(edit);
   }
   if (edit.getName() == null) {
     edit.setName(role.getName());
   }
   changePermission(op, permission, edit);
   g = cacheService.saveGuild(g);
   log.info("Saving new guild/role permission settings: {}", g);
   permissionService.evict();
   return String.format(
       "Modified role %s: %s permission %s",
       edit.getName(), op.name().toLowerCase(), permission.getName());
 }