This hitobito wagon defines the organization hierarchy with groups and roles of Insieme Schweiz.
* Dachverein
* Dachverein
* PräsidentIn: [:layer_read, :contact_data]
* Vorstandsmitglied: [:layer_read]
* Geschäftsführung: [:admin, :layer_and_below_full, :contact_data, :impersonation, :finance]
* Sekretariat: [:layer_and_below_full, :contact_data]
* Adressverwaltung: [:layer_and_below_full, :contact_data]
* Controlling: [:admin, :layer_and_below_full, :contact_data]
* Rechnungen: [:layer_and_below_read, :finance]
* IT Support: [:admin, :layer_and_below_full, :impersonation]
* Extern: []
* Liste
* Listenverwaltung: [:group_full]
* Person: []
* Gremium
* Leitung: [:group_full, :contact_data]
* Mitglied: [:group_read]
* Abonnemente
* Einzelabo: []
* Geschenkabo: []
* Gratisabo: []
* Regionalverein
* Regionalverein
* PräsidentIn: [:layer_read, :contact_data]
* Vorstandsmitglied: [:layer_read]
* Geschäftsführung: [:layer_full, :contact_data]
* Sekretariat: [:layer_full, :contact_data]
* Adressverwaltung: [:layer_full, :contact_data]
* Versandadresse: [:contact_data]
* Rechnungsadresse: [:contact_data]
* Controlling: [:contact_data]
* Rechnungen: [:layer_and_below_read, :finance]
* Extern: []
* Liste
* Listenverwaltung: [:group_full]
* Person: []
* Gremium
* Leitung: [:group_full, :contact_data]
* Mitglied: [:group_read]
* Externe Organisation
* Externe Organisation
* PräsidentIn: [:layer_read, :contact_data]
* Vorstandsmitglied: [:layer_read]
* Geschäftsführung: [:layer_full, :contact_data]
* Sekretariat: [:layer_full, :contact_data]
* Adressverwaltung: [:layer_full, :contact_data]
* Versandadresse: [:contact_data]
* Rechnungsadresse: [:contact_data]
* Controlling: [:contact_data]
* Rechnungen: [:layer_and_below_read, :finance]
* Extern: []
* Liste
* Listenverwaltung: [:group_full]
* Person: []
* Gremium
* Leitung: [:group_full, :contact_data]
* Mitglied: [:group_read]
* Global
* Aktivmitglieder
* Aktivmitglied: []
* Aktivmitglied ohne Abo: []
* Zweitmitgliedschaft: []
* Passivmitglieder
* Passivmitglied: []
* Passivmitglied mit Abo: []
* Kollektivmitglieder
* Kollektivmitglied: []
* Kollektivmitglied mit Abo: []
(Output of rake app:hitobito:roles)
In order to distinguish code that is valid only for certain years, we made the concept of contract periods explicit in the code. Each contract period can be subdivided into several periods where a certain feature/implementation is valid. Therefore, we call them Featureperiode. See Featureperioden for a detailed description (in german, as is all domain-logic in this repo).