function course_entity_field_access in Course 3.x
Same name and namespace in other branches
- 8.3 course.module \course_entity_field_access()
- 8.2 course.module \course_entity_field_access()
Implements hook_entity_field_access().
Don't show the user fields that weren't marked as enrollment fields.
File
- ./
course.module, line 881 - course.module Core functionality for Courses.
Code
function course_entity_field_access($operation, FieldDefinitionInterface $field_definition, AccountInterface $account, FieldItemListInterface $items = NULL) {
if ($operation == 'edit' && $field_definition
->getTargetEntityTypeId() == 'course_enrollment') {
if (is_a($field_definition, FieldConfig::class)) {
/* @var $field_definition FieldConfig */
if (!$field_definition
->getThirdPartySetting('course', 'show_field')) {
return AccessResult::forbidden('enrollment_user_field');
}
}
elseif (!$account
->hasPermission('administer course enrollments')) {
// Hide fields like timestamp, status, etc.
return AccessResultForbidden::forbidden();
}
}
return AccessResult::neutral();
}