Issue #1978952 followup by tim.plunkett, disasm: Fixed Regression: Convert shortcut_set_add() to a Controller.
parent
a0611bbc64
commit
b84bec5303
|
@ -26,6 +26,7 @@ use Drupal\shortcut\ShortcutSetInterface;
|
|||
* "list" = "Drupal\shortcut\ShortcutSetListController",
|
||||
* "form" = {
|
||||
* "default" = "Drupal\shortcut\ShortcutSetFormController",
|
||||
* "add" = "Drupal\shortcut\ShortcutSetFormController",
|
||||
* "edit" = "Drupal\shortcut\ShortcutSetFormController",
|
||||
* "customize" = "Drupal\shortcut\Form\SetCustomize",
|
||||
* "delete" = "Drupal\shortcut\Form\ShortcutSetDeleteForm"
|
||||
|
|
|
@ -21,13 +21,12 @@ class ShortcutSetAccessController extends EntityAccessController {
|
|||
*/
|
||||
protected function checkAccess(EntityInterface $entity, $operation, $langcode, AccountInterface $account) {
|
||||
switch ($operation) {
|
||||
case 'create':
|
||||
case 'update':
|
||||
if ($account->hasPermission('administer shortcuts')) {
|
||||
return TRUE;
|
||||
}
|
||||
if ($account->hasPermission('customize shortcut links')) {
|
||||
return !isset($entity) || $entity == shortcut_current_displayed_set($account);
|
||||
return $entity == shortcut_current_displayed_set($account);
|
||||
}
|
||||
return FALSE;
|
||||
break;
|
||||
|
@ -41,4 +40,11 @@ class ShortcutSetAccessController extends EntityAccessController {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
protected function checkCreateAccess(AccountInterface $account, array $context, $entity_bundle = NULL) {
|
||||
return $account->hasPermission('administer shortcuts') || $account->hasPermission('customize shortcut links');
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -7,8 +7,6 @@
|
|||
|
||||
namespace Drupal\shortcut\Tests;
|
||||
|
||||
use Drupal\simpletest\WebTestBase;
|
||||
|
||||
/**
|
||||
* Defines shortcut set test cases.
|
||||
*/
|
||||
|
@ -26,9 +24,15 @@ class ShortcutSetsTest extends ShortcutTestBase {
|
|||
* Tests creating a shortcut set.
|
||||
*/
|
||||
function testShortcutSetAdd() {
|
||||
$new_set = $this->generateShortcutSet($this->randomName());
|
||||
$sets = entity_load_multiple('shortcut_set');
|
||||
$this->assertTrue(isset($sets[$new_set->id()]), 'Successfully created a shortcut set.');
|
||||
$this->drupalGet('admin/config/user-interface/shortcut');
|
||||
$this->clickLink(t('Add shortcut set'));
|
||||
$edit = array(
|
||||
'label' => $this->randomName(),
|
||||
'id' => strtolower($this->randomName()),
|
||||
);
|
||||
$this->drupalPost(NULL, $edit, t('Save'));
|
||||
$new_set = $this->container->get('entity.manager')->getStorageController('shortcut_set')->load($edit['id']);
|
||||
$this->assertIdentical($new_set->id(), $edit['id'], 'Successfully created a shortcut set.');
|
||||
$this->drupalGet('user/' . $this->admin_user->id() . '/shortcuts');
|
||||
$this->assertText($new_set->label(), 'Generated shortcut set was listed as a choice on the user account page.');
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue