Skip to content

Commit

Permalink
Adjust groups and roles, (#551)
Browse files Browse the repository at this point in the history
  • Loading branch information
amaierhofer committed May 24, 2024
1 parent 78908fe commit 46a35ec
Show file tree
Hide file tree
Showing 21 changed files with 418 additions and 78 deletions.
75 changes: 56 additions & 19 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,75 @@ of SAC CAS.
```
* Schweizer Alpen-Club SAC
* Geschäftsstelle
* Mitarbeiter*in (schreibend): 2FA [:layer_and_below_full, :read_all_people]
* Mitarbeiter*in (lesend): 2FA [:layer_and_below_read, :read_all_people]
* Admin: 2FA [:layer_and_below_full, :admin, :impersonation, :read_all_people]
* Ehrenmitglieder
* Ehrenmitglied: []
* Mitarbeiter*in (schreibend): [:layer_and_below_full, :read_all_people]
* Mitarbeiter*in (lesend): [:layer_and_below_read, :read_all_people]
* Administration: [:layer_and_below_full, :admin, :impersonation, :read_all_people]
* Andere: 2FA [:layer_and_below_read, :read_all_people]
* Geschäftsleitung
* Geschäftsführung: 2FA [:layer_and_below_read, :read_all_people]
* Ressortleitung: 2FA [:layer_and_below_read, :read_all_people]
* Andere: 2FA [:layer_and_below_read, :read_all_people]
* Zentralvorstand
* Präsidium: []
* Mitglied: []
* Andere: []
* Kommission
* Präsidium: []
* Mitglied: []
* Andere: []
* Externe Kontakte
* Kontakt: []
* Touren-Portal
* Abonnent: []
* Neuanmeldung: []
* Administration: []
* Autor*in: []
* Community: []
* Andere: []
* AboMagazin
* Abonnent: []
* Neuanmeldung: []
* Autor*in: []
* Andere: []
* SAC/CAS Login
* Basis Konto: []
* Sektion, Ortsgruppe
* Funktionäre
* Präsidium: []
* Ehrenmitglieder
* Ehrenmitglied: []
* Sektion
* Ortsgruppe
* Global
* Sektionsfunktionäre
* Präsidium: [:layer_and_below_read]
* Mitgliederverwaltung: 2FA [:layer_and_below_full]
* Administration: 2FA [:layer_and_below_full]
* Administration (nur lesend): 2FA [:layer_and_below_read]
* Umweltbeauftragte*r: []
* Kulturbeauftragte*r: []
* Finanzen: []
* Redaktion: []
* Andere: []
* Hütten
* Hüttenobmann*frau: 2FA [:group_and_below_read]
* Andere: [:group_read]
* Hütte
* Hüttenwart*in: [:group_read]
* Hüttenchef*in: [:group_read]
* Andere: [:group_read]
* Touren und Kurse
* Tourenchef*in Sommer: 2FA [:layer_and_below_full]
* Tourenchef*in Winter: 2FA [:layer_and_below_full]
* Tourenchef*in Klettern: 2FA [:layer_and_below_full]
* Tourenchef*in Senioren: 2FA [:layer_and_below_full]
* Tourenleiter*in (mit Qualifikation): []
* Tourenleiter*in (ohne Qualifikation): []
* JO-Chef*in: []
* J+S Coach: []
* Andere: []
* Kommission
* Präsidium: []
* Mitglied: []
* Andere: []
* Vorstand
* Präsidium: []
* Mitglied: []
* Andere: []
* Mitglieder
* Mitglied (Stammsektion): []
Expand All @@ -44,15 +90,6 @@ of SAC CAS.
* Neuanmeldungen
* Neuanmeldung (Stammsektion): []
* Neuanmeldung (Zusatzsektion): []
* Tourenkommission
* Tourenchef*in Sommer: 2FA [:group_full]
* Tourenchef*in Winter: 2FA [:group_full]
* Tourenchef*in Klettern: 2FA [:group_full]
* Tourenchef*in Senioren: 2FA [:group_full]
* Tourenleiter*in: []
* Hüttenkommission
* Hüttenobmann*frau: 2FA [:group_and_below_read]
* Andere: [:group_read]
* Externe Kontakte
* Kontakt: []
```
Expand Down
12 changes: 11 additions & 1 deletion app/models/group/abo_magazin.rb
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,16 @@ class Neuanmeldung < ::Role
self.basic_permissions_only = true
end

roles Abonnent, Neuanmeldung
class Autor < ::Role
self.permissions = []
self.basic_permissions_only = true
end

class Andere < ::Role
self.permissions = []
self.basic_permissions_only = true
end

roles Abonnent, Neuanmeldung, Autor, Andere

end
22 changes: 21 additions & 1 deletion app/models/group/abo_touren_portal.rb
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,26 @@ class Neuanmeldung < ::Role
self.basic_permissions_only = true
end

roles Abonnent, Neuanmeldung
class Autor < ::Role
self.permissions = []
self.basic_permissions_only = true
end

class Community < ::Role
self.permissions = []
self.basic_permissions_only = true
end

class Admin < ::Role
self.permissions = []
self.basic_permissions_only = true
end

class Andere < ::Role
self.permissions = []
self.basic_permissions_only = true
end

roles Abonnent, Neuanmeldung, Admin, Autor, Community, Andere

end
30 changes: 30 additions & 0 deletions app/models/group/geschaeftsleitung.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# frozen_string_literal: true

# Copyright (c) 2012-2024, Schweizer Alpen-Club. This file is part of
# hitobito_sac_cas and licensed under the Affero General Public License version 3
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito_sac_cas.

class Group::Geschaeftsleitung < ::Group

self.static_name = true

### ROLES
class Geschaeftsfuehrung < ::Role
self.permissions = [:layer_and_below_read, :read_all_people]
self.two_factor_authentication_enforced = true
end

class Ressortleitung < ::Role
self.permissions = [:layer_and_below_read, :read_all_people]
self.two_factor_authentication_enforced = true
end

class Andere < ::Role
self.permissions = [:layer_and_below_read, :read_all_people]
self.two_factor_authentication_enforced = true
end

roles Geschaeftsfuehrung, Ressortleitung, Andere

end
7 changes: 6 additions & 1 deletion app/models/group/geschaeftsstelle.rb
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,11 @@ class Admin < ::Role
self.two_factor_authentication_enforced = true
end

roles Mitarbeiter, MitarbeiterLesend, Admin
class Andere < ::Role
self.permissions = [:layer_and_below_read, :read_all_people]
self.two_factor_authentication_enforced = true
end

roles Mitarbeiter, MitarbeiterLesend, Admin, Andere

end
27 changes: 27 additions & 0 deletions app/models/group/kommission.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# frozen_string_literal: true

# Copyright (c) 2012-2024, Schweizer Alpen-Club. This file is part of
# hitobito_sac_cas and licensed under the Affero General Public License version 3
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito_sac_cas.

class Group::Kommission < ::Group

### ROLES
class Praesidium < ::Role
self.permissions = []
end

class Mitglied < ::Role
self.permissions = []
end

class Andere < ::Role
self.permissions = []
end

children Group::Kommission

roles Praesidium, Mitglied, Andere

end
10 changes: 7 additions & 3 deletions app/models/group/ortsgruppe.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,16 @@ class Group::Ortsgruppe < ::Group
self.event_types = [Event, Event::Course]

children Group::SektionsFunktionaere,
Group::SektionsHuettenkommission,
Group::SektionsTourenkommission,
Group::SektionsKommission,
Group::SektionsVorstand,
Group::SektionsMitglieder,
Group::SektionsNeuanmeldungenSektion,
Group::SektionsNeuanmeldungenNv,
Group::SektionsTourenkommission,
Group::SektionsExterneKontakte,
Group::SektionsHuettenkommission
Group::SektionsKommission,
Group::SektionsVorstand,
Group::SektionsExterneKontakte

self.default_children = [
Group::SektionsFunktionaere,
Expand Down
3 changes: 3 additions & 0 deletions app/models/group/sac_cas.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@ class Group::SacCas < ::Group
self.event_types = [Event::Course]

children Group::Geschaeftsstelle,
Group::Geschaeftsleitung,
Group::Zentralvorstand,
Group::Kommission,
Group::Sektion,
Group::ExterneKontakte,
Group::Abonnenten,
Expand Down
8 changes: 5 additions & 3 deletions app/models/group/sektion.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,13 @@ class Group::Sektion < ::Group
self.event_types = [Event, Event::Course]

children Group::SektionsFunktionaere,
Group::SektionsHuettenkommission,
Group::SektionsTourenkommission,
Group::SektionsKommission,
Group::SektionsVorstand,
Group::SektionsMitglieder,
Group::SektionsNeuanmeldungenSektion,
Group::SektionsNeuanmeldungenNv,
Group::SektionsTourenkommission,
Group::SektionsHuettenkommission,
Group::SektionsExterneKontakte,
Group::Ortsgruppe

Expand All @@ -24,7 +26,7 @@ class Group::Sektion < ::Group
Group::SektionsMitglieder,
Group::SektionsNeuanmeldungenNv,
Group::SektionsExterneKontakte,
Group::SektionsTourenkommission ]
Group::SektionsTourenkommission]

mounted_attr :foundation_year, :integer
validates :foundation_year,
Expand Down
9 changes: 4 additions & 5 deletions app/models/group/sektions_funktionaere.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class Group::SektionsFunktionaere < ::Group

### ROLES
class Praesidium < ::Role
self.permissions = []
self.permissions = [:layer_and_below_read]
end

class Mitgliederverwaltung < ::Role
Expand All @@ -29,12 +29,12 @@ class AdministrationReadOnly < ::Role
self.two_factor_authentication_enforced = true
end

class Umweltbeauftragte < ::Role
class Finanzen < ::Role
self.permissions = []
self.basic_permissions_only = true
end

class Kulturbeauftragte < ::Role
class Redaktion < ::Role
self.permissions = []
self.basic_permissions_only = true
end
Expand All @@ -45,7 +45,6 @@ class Andere < ::Role
end

roles Praesidium, Mitgliederverwaltung, Administration,
AdministrationReadOnly, Umweltbeauftragte, Kulturbeauftragte,
Andere
AdministrationReadOnly, Finanzen, Redaktion, Andere

end
26 changes: 26 additions & 0 deletions app/models/group/sektions_kommission.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
# frozen_string_literal: true

# Copyright (c) 2012-2024, Schweizer Alpen-Club. This file is part of
# hitobito_sac_cas and licensed under the Affero General Public License version 3
# or later. See the COPYING file at the top-level directory or at
# https://github.com/hitobito/hitobito_sac_cas.

class Group::SektionsKommission < ::Group

### ROLES
class Praesidium < ::Role
self.permissions = []
end

class Mitglied < ::Role
self.permissions = []
end

class Andere < ::Role
self.permissions = []
end

children Group::SektionsKommission

roles Praesidium, Mitglied, Andere
end
25 changes: 22 additions & 3 deletions app/models/group/sektions_tourenkommission.rb
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ class Group::SektionsTourenkommission < Group

### ROLES
class Tourenchef < ::Role
self.permissions = [:group_full]
self.permissions = [:layer_and_below_full]
self.two_factor_authentication_enforced = true
end

Expand All @@ -20,10 +20,12 @@ class TourenchefWinter < Tourenchef; end
class TourenchefKlettern < Tourenchef; end
class TourenchefSenioren < Tourenchef; end

class Tourenleiter < ::Role
class TourenleiterOhneQualifikation < ::Role
self.permissions = []
self.basic_permissions_only = true
end

class Tourenleiter < TourenleiterOhneQualifikation
before_validation :assert_active_qualification

private
Expand All @@ -35,10 +37,27 @@ def assert_active_qualification
end
end

class JoChef < ::Role
self.permissions = []
end

class JsCoach < ::Role
self.permissions = []
end

class Andere < ::Role
self.permissions = []
end


roles TourenchefSommer,
TourenchefWinter,
TourenchefKlettern,
TourenchefSenioren,
Tourenleiter
Tourenleiter,
TourenleiterOhneQualifikation,
JoChef,
JsCoach,
Andere

end
Loading

0 comments on commit 46a35ec

Please sign in to comment.