function social_user_export_file_download in Open Social 8.5
Same name and namespace in other branches
- 8.9 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8.2 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8.3 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8.4 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8.6 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8.7 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 8.8 modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 10.3.x modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 10.0.x modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 10.1.x modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
- 10.2.x modules/social_features/social_user_export/social_user_export.module \social_user_export_file_download()
Implements hook_file_download().
File
- modules/
social_features/ social_user_export/ social_user_export.module, line 13 - The Social User Export module.
Code
function social_user_export_file_download($uri) {
$scheme = \Drupal::service('file_system')
->uriScheme($uri);
$target = file_uri_target($uri);
// Get the file to see who the owner is.
$query = \Drupal::entityQuery('file');
$query
->condition('uri', $uri);
$fid = $query
->execute();
/* @var \Drupal\file\FileInterface $file */
$file = File::load(reset($fid));
$access = FALSE;
// Allow access to users with correct permission or file owner.
if (\Drupal::currentUser()
->hasPermission('administer users') || \Drupal::currentUser()
->id() === $file
->get('uid')
->getString()) {
$access = TRUE;
}
if ($scheme === 'private' && $access && preg_match('/^csv\\/export-(users|enrollments)-([a-f0-9]{12})\\.csv$/i', $target)) {
return [
'Content-disposition' => 'attachment; filename="' . basename($target) . '"',
];
}
}