/**
   * Returns {@code true} if the user roles is approved to create this content source component,
   * {@code false} otherwise.
   *
   * @return A {@code boolean} indicator whether user roles is approved to create this content
   *     source component.
   * @since 1.0.0
   */
  private boolean isRolesAuthorized() {
    PaxWicketAuthentication paxWicketAuthentication = getAuthentication();
    Roles userRoles;
    if (paxWicketAuthentication != null) {
      userRoles = paxWicketAuthentication.getRoles();
    } else {
      userRoles = newRoles(null);
    }

    Roles requiredRoles = newRoles(getStringProperty(REQUIRED_ROLES, null));
    Roles basicRoles = newRoles(getStringProperty(BASIC_ROLES, null));

    boolean isRequiredRolesAuthorized = true;
    if (!requiredRoles.isEmpty()) {
      isRequiredRolesAuthorized = userRoles.hasAllRoles(requiredRoles);
    }

    boolean isBasicRolesAuthorized = true;
    if (!basicRoles.isEmpty()) {
      isBasicRolesAuthorized = userRoles.hasAnyRole(basicRoles);
    }

    return isRequiredRolesAuthorized && isBasicRolesAuthorized;
  }