View source
<?php
namespace Drupal\file_entity;
use Drupal\Core\StringTranslation\StringTranslationTrait;
use Drupal\file_entity\Entity\FileType;
class FileEntityPermissions {
use StringTranslationTrait;
public function extendPermissionDetails() {
$wrappers = file_entity_get_public_and_private_stream_wrapper_names() + array(
'public' => array(
$this
->t('None'),
),
'private' => array(
$this
->t('None'),
),
);
$permissions = array();
$permissions['view files']['description'] = $this
->t('Includes the following stream wrappers: %wrappers.', array(
'%wrappers' => implode(', ', $wrappers['public']),
));
$permissions['view own private files']['description'] = $this
->t('Includes the following stream wrappers: %wrappers.', array(
'%wrappers' => implode(', ', $wrappers['private']),
));
return $permissions;
}
public function fileTypePermissions() {
$permissions = array();
foreach (FileType::loadEnabled() as $type) {
$id = $type
->id();
$permissions += array(
"edit own {$id} files" => array(
'title' => $this
->t('%type_name: Edit own files', array(
'%type_name' => $type
->label(),
)),
),
"edit any {$id} files" => array(
'title' => $this
->t('%type_name: Edit any files', array(
'%type_name' => $type
->label(),
)),
),
"delete own {$id} files" => array(
'title' => $this
->t('%type_name: Delete own files', array(
'%type_name' => $type
->label(),
)),
),
"delete any {$id} files" => array(
'title' => $this
->t('%type_name: Delete any files', array(
'%type_name' => $type
->label(),
)),
),
"download own {$id} files" => array(
'title' => $this
->t('%type_name: Download own files', array(
'%type_name' => $type
->label(),
)),
),
"download any {$id} files" => array(
'title' => $this
->t('%type_name: Download any files', array(
'%type_name' => $type
->label(),
)),
),
);
}
return $permissions;
}
}