Let users edit their role from the frontend

You could make a widget that updates the role:

  1. Widget has a drop down select input
  2. Select input submits a Ajax call to backend
  3. Backend Ajax call processor updades the user meta
  4. Pass the User ID along with the role ID
  5. Update user meta with update_user_meta( $user_id, $meta_key, $meta_value, $prev_value )