DataPolicy.php in Open Social 10.0.x
File
modules/custom/social_gdpr/src/Controller/DataPolicy.php
View source
<?php
namespace Drupal\social_gdpr\Controller;
use Drupal\Component\Serialization\Json;
use Drupal\Core\Access\AccessResult;
use Drupal\Core\Url;
use Drupal\data_policy\Controller\DataPolicy as DataPolicyBase;
class DataPolicy extends DataPolicyBase {
public function entityOverviewAccess() {
$access = parent::entityOverviewAccess();
if ($access
->isForbidden() && $this
->currentUser()
->hasPermission('edit data policy')) {
$access = AccessResult::allowed();
}
return $access;
}
public function revisionOverviewTitle($data_policy_revision) {
$data_policy = $this
->entityTypeManager()
->getStorage('data_policy')
->loadRevision($data_policy_revision);
return $this
->t('Revision from %date', [
'%date' => $this
->dateFormatter()
->format($data_policy
->getRevisionCreationTime()),
]);
}
public function revisionsOverviewPage() {
$build = parent::revisionsOverviewPage();
$routes = [
'view' => 'social_gdpr.data_policy.revision',
'edit' => 'social_gdpr.data_policy.revision_edit',
'delete' => 'social_gdpr.data_policy.revision_delete',
];
foreach ($build['data_policy_revisions_table']['#rows'] as &$row) {
foreach ($row[1]['data']['#links'] as $operation => &$link) {
$url =& $link['url'];
if ($operation == 'revert') {
if ($url
->getRouteName() == 'entity.data_policy.revision_revert') {
$route_name = 'social_gdpr.data_policy.revision_revert';
}
else {
$route_name = 'social_gdpr.data_policy.translation_revert';
}
$link['url'] = Url::fromRoute($route_name, $url
->getRouteParameters());
$link['attributes'] = [
'class' => [
'use-ajax',
],
'data-dialog-type' => 'modal',
'data-dialog-options' => Json::encode([
'dialogClass' => 'social-dialog',
'title' => '',
'width' => 360,
]),
];
}
if (isset($routes[$operation])) {
$link['url'] = Url::fromRoute($routes[$operation], $link['url']
->getRouteParameters());
}
}
$url =& $row[1]['data']['#links']['view']['url'];
$parameters = $url
->getRouteParameters();
$row = [
'data' => $row,
'class' => [
'revision-' . $parameters['data_policy_revision'],
],
];
}
return $build;
}
}