Allow teachers to access internal users and manage them in their study groups

This commit is contained in:
Sebastian Serth
2022-09-22 17:55:10 +02:00
committed by Sebastian Serth
parent e3018c1847
commit 0e7c38657f
11 changed files with 45 additions and 22 deletions

View File

@@ -15,7 +15,7 @@ class StudyGroup < ApplicationRecord
end
def user_count
external_users.count + internal_users.count
study_group_memberships.distinct.count
end
def to_s

View File

@@ -23,7 +23,14 @@ class User < ApplicationRecord
scope :with_submissions, -> { where('id IN (SELECT user_id FROM submissions)') }
scope :in_study_group_of, lambda {|user|
joins(:study_group_memberships).where(study_group_memberships: {study_group_id: user.study_groups}) unless user.admin?
unless user.admin?
joins(:study_group_memberships)
.where(study_group_memberships: {
study_group_id: user.study_group_memberships
.where(study_group_memberships: {role: StudyGroupMembership.roles[:teacher]})
.select(:study_group_id),
})
end
}
validates :platform_admin, boolean_presence: true
@@ -65,7 +72,7 @@ class User < ApplicationRecord
end
def self.ransackable_attributes(auth_object)
if auth_object.admin?
if auth_object.present? && auth_object.admin?
%w[name email external_id consumer_id platform_admin]
else
%w[name external_id]