Update to Drupal 8.1.10. For more information, see https://www.drupal.org/project/drupal/releases/8.1.10
This commit is contained in:
parent
09b113657a
commit
2f563ab520
|
@ -81,7 +81,7 @@ class Drupal {
|
|||
/**
|
||||
* The current system version.
|
||||
*/
|
||||
const VERSION = '8.1.9';
|
||||
const VERSION = '8.1.10';
|
||||
|
||||
/**
|
||||
* Core API compatibility.
|
||||
|
|
|
@ -188,14 +188,17 @@ class DefaultExceptionSubscriber implements EventSubscriberInterface {
|
|||
if (!method_exists($this, $method)) {
|
||||
if ($exception instanceof HttpExceptionInterface) {
|
||||
$this->onFormatUnknown($event);
|
||||
$response = $event->getResponse();
|
||||
$response->headers->set('Content-Type', 'text/plain');
|
||||
}
|
||||
else {
|
||||
$this->onHtml($event);
|
||||
}
|
||||
return;
|
||||
}
|
||||
else {
|
||||
$this->$method($event);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the error-relevant format from the request.
|
||||
|
|
|
@ -2,7 +2,9 @@
|
|||
|
||||
namespace Drupal\comment;
|
||||
|
||||
use Drupal\Core\Access\AccessResult;
|
||||
use Drupal\Core\Field\FieldItemList;
|
||||
use Drupal\Core\Session\AccountInterface;
|
||||
|
||||
/**
|
||||
* Defines a item list class for comment fields.
|
||||
|
@ -37,4 +39,28 @@ class CommentFieldItemList extends FieldItemList {
|
|||
return parent::offsetExists($offset);
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function access($operation = 'view', AccountInterface $account = NULL, $return_as_object = FALSE) {
|
||||
if ($operation === 'edit') {
|
||||
// Only users with administer comments permission can edit the comment
|
||||
// status field.
|
||||
$result = AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'administer comments');
|
||||
return $return_as_object ? $result : $result->isAllowed();
|
||||
}
|
||||
if ($operation === 'view') {
|
||||
// Only users with either post comments or access comments permisison can
|
||||
// view the field value. The formatter,
|
||||
// Drupal\comment\Plugin\Field\FieldFormatter\CommentDefaultFormatter,
|
||||
// takes care of showing the thread and form based on individual
|
||||
// permissions, so if a user only has ‘post comments’ access, only the
|
||||
// form will be shown and not the comments.
|
||||
$result = AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'access comments')
|
||||
->orIf(AccessResult::allowedIfHasPermission($account ?: \Drupal::currentUser(), 'post comments'));
|
||||
return $return_as_object ? $result : $result->isAllowed();
|
||||
}
|
||||
return parent::access($operation, $account, $return_as_object);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -384,6 +384,7 @@ class CommentNonNodeTest extends WebTestBase {
|
|||
'administer entity_test fields',
|
||||
'view test entity',
|
||||
'administer entity_test content',
|
||||
'administer comments',
|
||||
));
|
||||
$this->drupalLogin($limited_user);
|
||||
$this->drupalGet('entity_test/structure/entity_test/fields/entity_test.entity_test.comment');
|
||||
|
|
|
@ -0,0 +1,100 @@
|
|||
<?php
|
||||
|
||||
namespace Drupal\Tests\comment\Functional;
|
||||
|
||||
|
||||
use Drupal\comment\Tests\CommentTestTrait;
|
||||
use Drupal\node\Entity\NodeType;
|
||||
use Drupal\Tests\BrowserTestBase;
|
||||
|
||||
/**
|
||||
* Tests comment status field access.
|
||||
*
|
||||
* @group comment
|
||||
*/
|
||||
class CommentStatusFieldAccessTest extends BrowserTestBase {
|
||||
|
||||
use CommentTestTrait;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public $profile = 'testing';
|
||||
|
||||
/**
|
||||
* Comment admin.
|
||||
*
|
||||
* @var \Drupal\user\UserInterface
|
||||
*/
|
||||
protected $commentAdmin;
|
||||
|
||||
/**
|
||||
* Node author.
|
||||
*
|
||||
* @var \Drupal\user\UserInterface
|
||||
*/
|
||||
protected $nodeAuthor;
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public static $modules = [
|
||||
'node',
|
||||
'comment',
|
||||
'user',
|
||||
'system',
|
||||
'text',
|
||||
];
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function setUp() {
|
||||
parent::setUp();
|
||||
$node_type = NodeType::create([
|
||||
'type' => 'article',
|
||||
'name' => t('Article'),
|
||||
]);
|
||||
$node_type->save();
|
||||
$this->nodeAuthor = $this->drupalCreateUser([
|
||||
'create article content',
|
||||
'skip comment approval',
|
||||
'post comments',
|
||||
'edit own comments',
|
||||
'access comments',
|
||||
'administer nodes',
|
||||
]);
|
||||
$this->commentAdmin = $this->drupalCreateUser([
|
||||
'administer comments',
|
||||
'create article content',
|
||||
'edit own comments',
|
||||
'skip comment approval',
|
||||
'post comments',
|
||||
'access comments',
|
||||
'administer nodes',
|
||||
]);
|
||||
$this->addDefaultCommentField('node', 'article');
|
||||
}
|
||||
|
||||
/**
|
||||
* Tests comment status field access.
|
||||
*/
|
||||
public function testCommentStatusFieldAccessStatus() {
|
||||
$this->drupalLogin($this->nodeAuthor);
|
||||
$this->drupalGet('node/add/article');
|
||||
$assert = $this->assertSession();
|
||||
$assert->fieldNotExists('comment[0][status]');
|
||||
$this->submitForm([
|
||||
'title[0][value]' => 'Node 1',
|
||||
], t('Save and publish'));
|
||||
$assert->fieldExists('subject[0][value]');
|
||||
$this->drupalLogin($this->commentAdmin);
|
||||
$this->drupalGet('node/add/article');
|
||||
$assert->fieldExists('comment[0][status]');
|
||||
$this->submitForm([
|
||||
'title[0][value]' => 'Node 2',
|
||||
], t('Save and publish'));
|
||||
$assert->fieldExists('subject[0][value]');
|
||||
}
|
||||
|
||||
}
|
|
@ -65,6 +65,7 @@ function config_file_download($uri) {
|
|||
$scheme = file_uri_scheme($uri);
|
||||
$target = file_uri_target($uri);
|
||||
if ($scheme == 'temporary' && $target == 'config.tar.gz') {
|
||||
if (\Drupal::currentUser()->hasPermission('export configuration')) {
|
||||
$request = \Drupal::request();
|
||||
$date = DateTime::createFromFormat('U', $request->server->get('REQUEST_TIME'));
|
||||
$date_string = $date->format('Y-m-d-H-i');
|
||||
|
@ -75,4 +76,6 @@ function config_file_download($uri) {
|
|||
'Content-disposition' => $disposition,
|
||||
);
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -88,6 +88,12 @@ class ConfigExportUITest extends WebTestBase {
|
|||
// Check the single export form doesn't have "form-required" elements.
|
||||
$this->drupalGet('admin/config/development/configuration/single/export');
|
||||
$this->assertNoRaw('js-form-required form-required', 'No form required fields are found.');
|
||||
|
||||
// Ensure the temporary file is not available to users without the
|
||||
// permission.
|
||||
$this->drupalLogout();
|
||||
$this->drupalGet('system/temporary', ['query' => ['file' => 'config.tar.gz']]);
|
||||
$this->assertResponse(403);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
Reference in a new issue