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();
}