@Override
  public List<Permission> findPermissionsNotInRole(Role role) {
    if (role == null) {
      return new ArrayList<Permission>();
    }

    Role r = findRoleById(role.getId());
    if (r == null || r.getPermissionSet().isEmpty()) {
      return new ArrayList<Permission>();
    }

    List<String> ids = new ArrayList<String>();
    for (Permission p : r.getPermissionSet()) {
      ids.add(p.getId());
    }

    return permissionDao.findByIdNotIn(ids);
  }