Use new geerlingguy.drupal role, save a few hundred LoC.