baf30320126ca5d657e48937fd36645442c29b5f
[yaffs-website] / web / modules / contrib / paragraphs / tests / src / FunctionalJavascript / LoginAdminTrait.php
1 <?php
2
3 namespace Drupal\Tests\paragraphs\FunctionalJavascript;
4
5 /**
6  * Test trait for logging admin in JS tests.
7  */
8 trait LoginAdminTrait {
9
10   /**
11    * Creates an user with admin permissions and log in.
12    *
13    * @param array $additional_permissions
14    *   Additional permissions that will be granted to admin user.
15    * @param bool $reset_permissions
16    *   Flag to determine if default admin permissions will be replaced by
17    *   $additional_permissions.
18    *
19    * @return object
20    *   Newly created and logged in user object.
21    */
22   public function loginAsAdmin($additional_permissions = [], $reset_permissions = FALSE) {
23
24     $permissions = [
25       'administer content types',
26       'administer node fields',
27       'administer paragraphs types',
28       'administer node form display',
29       'administer paragraph fields',
30       'administer paragraph form display',
31     ];
32
33     if ($reset_permissions) {
34       $permissions = $additional_permissions;
35     }
36     elseif (!empty($additional_permissions)) {
37       $permissions = array_merge($permissions, $additional_permissions);
38     }
39
40     $this->admin_user = $this->drupalCreateUser($permissions);
41     $this->drupalLogin($this->admin_user);
42     return $this->admin_user;
43   }
44 }