Allow teachers to access internal users and manage them in their study groups
This commit is contained in:

committed by
Sebastian Serth

parent
e3018c1847
commit
0e7c38657f
@ -32,12 +32,15 @@ h1 = ExternalUser.model_name.human(count: 2)
|
||||
tr
|
||||
th = t('activerecord.attributes.external_user.name')
|
||||
th = t('activerecord.attributes.external_user.consumer')
|
||||
th = t('activerecord.attributes.external_user.platform_admin')
|
||||
th = t('shared.actions')
|
||||
tbody
|
||||
- @users.each do |user|
|
||||
tr
|
||||
td = link_to_if(policy(user).show?, user.displayname, user)
|
||||
td = link_to_if(user.consumer.present? && policy(user.consumer).show?, user.consumer, user.consumer)
|
||||
- if current_user.admin?
|
||||
td = symbol_for(user.platform_admin?)
|
||||
td = link_to(t('shared.show'), user) if policy(user).show?
|
||||
|
||||
= render('shared/pagination', collection: @users)
|
||||
|
@ -6,7 +6,7 @@ h1 = @user.displayname
|
||||
code
|
||||
= @user.external_id
|
||||
= row(label: 'external_user.consumer', value: link_to_if(policy(@user.consumer).show?, @user.consumer, @user.consumer))
|
||||
= row(label: 'external_user.platform_admin', value: @user.platform_admin?)
|
||||
= row(label: 'external_user.platform_admin', value: @user.platform_admin?) if current_user.admin?
|
||||
= row(label: 'users.show.study_groups') do
|
||||
- visible_memberships = @user.study_group_memberships.select { |study_group_membership| policy(study_group_membership.study_group).show? }
|
||||
- if visible_memberships.any?
|
||||
|
@ -1,6 +1,6 @@
|
||||
h1 = InternalUser.model_name.human(count: 2)
|
||||
|
||||
= render(layout: 'shared/form_filters') do |f|
|
||||
= render(layout: 'shared/form_filters') if current_user.admin? do |f|
|
||||
.col-auto
|
||||
= f.label(:consumer_id_eq, t('activerecord.attributes.internal_user.consumer'), class: 'visually-hidden form-label')
|
||||
= f.collection_select(:consumer_id_eq, Consumer.with_internal_users, :id, :name, class: 'form-control', include_blank: true, prompt: t('activerecord.attributes.internal_user.consumer'))
|
||||
@ -15,14 +15,16 @@ h1 = InternalUser.model_name.human(count: 2)
|
||||
tr
|
||||
th = t('activerecord.attributes.internal_user.name')
|
||||
th = t('activerecord.attributes.internal_user.consumer')
|
||||
th = t('activerecord.attributes.internal_user.platform_admin')
|
||||
- if current_user.admin?
|
||||
th = t('activerecord.attributes.internal_user.platform_admin')
|
||||
th colspan=3 = t('shared.actions')
|
||||
tbody
|
||||
- @users.each do |user|
|
||||
tr
|
||||
td = link_to_if(policy(user).show?, user.name, user)
|
||||
td = user.consumer ? link_to_if(policy(user.consumer).show?, user.consumer, user.consumer) : empty
|
||||
td = symbol_for(user.platform_admin?)
|
||||
- if current_user.admin?
|
||||
td = symbol_for(user.platform_admin?)
|
||||
td = link_to(t('shared.show'), user) if policy(user).show?
|
||||
td = link_to(t('shared.edit'), edit_internal_user_path(user)) if policy(user).edit?
|
||||
td = link_to(t('shared.destroy'), user, data: {confirm: t('shared.confirm_destroy')}, method: :delete) if policy(user).destroy?
|
||||
|
@ -2,10 +2,10 @@ h1
|
||||
= @user
|
||||
= render('shared/edit_button', object: @user)
|
||||
|
||||
= row(label: 'internal_user.email', value: @user.email)
|
||||
= row(label: 'internal_user.email', value: @user.email) if current_user.admin?
|
||||
= row(label: 'internal_user.name', value: @user.name)
|
||||
= row(label: 'internal_user.consumer', value: @user.consumer ? link_to_if(policy(@user.consumer).show?, @user.consumer, @user.consumer) : nil)
|
||||
= row(label: 'internal_user.platform_admin', value: @user.platform_admin?)
|
||||
= row(label: 'internal_user.platform_admin', value: @user.platform_admin?) if current_user.admin?
|
||||
= row(label: 'internal_user.activated', value: @user.activated?)
|
||||
= row(label: 'users.show.study_groups') do
|
||||
- visible_memberships = @user.study_group_memberships.select { |study_group_membership| policy(study_group_membership.study_group).show? }
|
||||
@ -28,4 +28,5 @@ h1
|
||||
- else
|
||||
= t('users.show.no_groups')
|
||||
|
||||
= row(label: 'codeharbor_link.profile_label', value: @user.codeharbor_link.nil? ? link_to(t('codeharbor_link.new'), new_codeharbor_link_path, class: 'btn btn-secondary') : link_to(t('codeharbor_link.edit'), edit_codeharbor_link_path(@user.codeharbor_link), class: 'btn btn-secondary'))
|
||||
- if @user == current_user
|
||||
= row(label: 'codeharbor_link.profile_label', value: @user.codeharbor_link.nil? ? link_to(t('codeharbor_link.new'), new_codeharbor_link_path, class: 'btn btn-secondary') : link_to(t('codeharbor_link.edit'), edit_codeharbor_link_path(@user.codeharbor_link), class: 'btn btn-secondary'))
|
||||
|
@ -6,11 +6,11 @@
|
||||
|
||||
h3 = t('activerecord.attributes.study_group.members')
|
||||
.table-responsive
|
||||
table.table
|
||||
table.sortable.table
|
||||
thead
|
||||
tr
|
||||
th = t('activerecord.attributes.exercise.selection')
|
||||
th = sort_link(@search, :name, t('navigation.sections.users'))
|
||||
th = t('navigation.sections.users')
|
||||
= collection_check_boxes :study_group, :study_group_membership_ids, @members, :id, :id do |b|
|
||||
tr
|
||||
td = b.check_box class: 'form-check-input'
|
||||
|
@ -12,10 +12,10 @@ h1
|
||||
|
||||
h2.mt-4 = t('activerecord.attributes.study_group.members')
|
||||
.table-responsive
|
||||
table.table
|
||||
table.sortable.table
|
||||
thead
|
||||
tr
|
||||
th = sort_link(@search, :name, t('navigation.sections.users'))
|
||||
th = t('navigation.sections.users')
|
||||
- @study_group.users.each do |user|
|
||||
tr
|
||||
td = link_to_if(policy(user).show?, user.displayname, user)
|
||||
|
Reference in New Issue
Block a user