From 336e2c3c489000cbdde46d26f565fef80221a8ab Mon Sep 17 00:00:00 2001 From: Philipp Rothmann Date: Tue, 3 Jan 2023 10:38:29 +0100 Subject: [PATCH] update structure --- app/models/group/circle.rb | 11 +++++------ app/models/group/help_circle.rb | 6 ------ app/models/group/top_layer.rb | 24 ++++++++++++++++++++++++ app/models/lit/group.rb | 2 +- config/locales/models.lit.de.yml | 20 ++++++++++++++++---- db/seeds/development/1_people.rb | 2 +- db/seeds/groups.rb | 2 +- 7 files changed, 48 insertions(+), 19 deletions(-) delete mode 100644 app/models/group/help_circle.rb create mode 100644 app/models/group/top_layer.rb diff --git a/app/models/group/circle.rb b/app/models/group/circle.rb index f044124..9502942 100644 --- a/app/models/group/circle.rb +++ b/app/models/group/circle.rb @@ -4,12 +4,7 @@ class Group::Circle < ::Group self.layer = true - # TODO: define actual child group types - children Group::Circle, Group::HelpCircle - ### ROLES - - # TODO: define actual role types class Leader < ::Role self.permissions = [:layer_and_below_full, :admin] end @@ -18,6 +13,10 @@ class Group::Circle < ::Group self.permissions = [:group_read] end - roles Leader, Member + class Guest < ::Role + self.permissions = [] + end + + roles Leader, Member, Guest end diff --git a/app/models/group/help_circle.rb b/app/models/group/help_circle.rb deleted file mode 100644 index 88e1f8c..0000000 --- a/app/models/group/help_circle.rb +++ /dev/null @@ -1,6 +0,0 @@ -# encoding: utf-8 - -# TODO: rename class to specific name and change all references -class Group::HelpCircle < ::Group - self.layer = true -end diff --git a/app/models/group/top_layer.rb b/app/models/group/top_layer.rb new file mode 100644 index 0000000..fd5e9c7 --- /dev/null +++ b/app/models/group/top_layer.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 + +class Group::TopLayer < ::Group + + self.layer = true + + children Group::Circle + + ### ROLES + class Leader < ::Role + self.permissions = [:layer_and_below_full, :admin] + end + + class Member < ::Role + self.permissions = [:group_read] + end + + class Guest < ::Role + self.permissions = [] + end + + roles Leader, Member, Guest + +end diff --git a/app/models/lit/group.rb b/app/models/lit/group.rb index fd6c0ec..397b138 100644 --- a/app/models/lit/group.rb +++ b/app/models/lit/group.rb @@ -8,7 +8,7 @@ module Lit::Group # self.used_attributes += [:website, :bank_account, :description] # self.superior_attributes = [:bank_account] - root_types Group::Circle + ::Group.root_types(::Group::TopLayer) end end diff --git a/config/locales/models.lit.de.yml b/config/locales/models.lit.de.yml index f803cad..eed9e5f 100644 --- a/config/locales/models.lit.de.yml +++ b/config/locales/models.lit.de.yml @@ -7,9 +7,9 @@ de: group/circle: one: Kreis other: Kreise - group/help_circle: - one: Hilfkreis - other: Hilfskreise + group/top_layer: + one: Hauptebene + other: Hauptebene ### ROLES @@ -18,4 +18,16 @@ de: description: Leitungspersonen verwalten die Applikation. group/circle/member: one: Mitglied - description: Mitglieder sind alle anderen. \ No newline at end of file + description: Mitglieder sind alle anderen. + group/circle/guest: + one: Gast + description: Gast + group/top_layer/leader: + one: Leitung + description: Leitungspersonen verwalten die Applikation. + group/top_layer/member: + one: Mitglied + description: Mitglieder sind alle anderen. + group/top_layer/guest: + one: Gast + description: Gast \ No newline at end of file diff --git a/db/seeds/development/1_people.rb b/db/seeds/development/1_people.rb index 2b79c88..68bb4de 100644 --- a/db/seeds/development/1_people.rb +++ b/db/seeds/development/1_people.rb @@ -24,5 +24,5 @@ seeder.seed_all_roles root = Group.root devs.each do |name, email| - seeder.seed_developer(name, email, root, Group::Circle::Leader) + seeder.seed_developer(name, email, root, Group::TopLayer::Leader) end diff --git a/db/seeds/groups.rb b/db/seeds/groups.rb index 986b3fb..31a1ae6 100644 --- a/db/seeds/groups.rb +++ b/db/seeds/groups.rb @@ -1,3 +1,3 @@ # encoding: utf-8 -Group::Circle.seed_once(:parent_id, name: 'Koordinationskreis') +Group::TopLayer.seed_once(:parent_id, name: 'Local-IT')