hitobito_pbs icon indicating copy to clipboard operation
hitobito_pbs copied to clipboard

API Service Token alle Mailadressen

Open Tschet1 opened this issue 5 years ago • 2 comments

Danke für die Implementierung der Service Token.

Wenn ich via Service Token eine Person auslese, erhalte ich nur die öffentlichen Mailadressen. Unsere Abteilung möchte die Mailadressen unserer Kinder aus Datenschutz-Gründen nicht öffentlich machen, aber für den Versand unseres Newsletters würden wir gerne alle Versandadressen auslesen können. Dies ist leider mit den Service Tokens nicht möglich. Gibt es dafür einen speziellen Grund? Wir haben auch bemerkt, dass das Geschlecht und das Geburtsdatum fehlen.

Tschet1 avatar Oct 28 '19 12:10 Tschet1

Hoi Tschet! Was du beobachtest sind zwei verschiedene Probleme. Beide könnten durch mehr Zugriffsrechte in https://github.com/hitobito/hitobito/blob/master/app/abilities/token_ability.rb gelöst werden. Bevor das aber geschieht muss wohl mit allen Stakeholdern abgeklärt werden, ob diese Ausweitung der Zugriffsrechte aus Datenschutz-Sicht zulässig ist. Ich kann dir leider nicht beantworten, ob der aktuelle Stand einen spezifischen Grund hatte, aber er wurde von allen involvierten Stakeholdern so abgenommen. Soweit ich sehe existieren aber keine Specs, die diese Änderung explizit verbieten.

  • Die nicht-öffentlichen Mailadressen könnten erlaubt werden indem man den letzten Teil von token_ability#define_person_abilities folgendermassen abändert:
    can [:index_people, :index_full_people], Group do |g|
      groups.include?(g)
    end
  • Dass birthday, gender und weitere Details zu einer Person fehlen, wurde schon in einem Kommentar auf dem ursprünglichen Issue durch @MrTinnysis bemerkt, aber damals nicht weiter verfolgt. Diese Details könnten mit folgender zusätzlicher ability in token_ability#define_person_abilities erlaubt werden:
    can :show_details, Person do |p|
      Role.where(person: p, group: groups).present? &&
        Ability.new(token.dynamic_user).can?(:show_details, p)
    end

Die Details (birthday und gender) tauchen dann auf wenn man eine einzelne Person via API abruft, aber nicht in der Personen-Liste einer Gruppe. Dies ist auch schon so programmiert, das einzige was fehlt ist die Ability. Somit stellt sich für mich die Frage, ob das wirklich so gemeint war.

carlobeltrame avatar Oct 28 '19 22:10 carlobeltrame

Der Teil mit Geschlecht und Geburtsdatum wurde inzwischen an einem PBS Hackathon in hitobito/hitobito#1866 umgesetzt und ist jetzt auf der Integrationsumgebung aufgeschaltet. Auf die MiData Produktion müsste das mit dem nächsten Release (vermutlich nächste Woche) kommen. Die nicht-öffentlichen weiteren Mailadressen fehlen weiterhin in der API.

carlobeltrame avatar Oct 17 '22 07:10 carlobeltrame