<?php namespace Tests;
+use BookStack\Entity;
use BookStack\Role;
use BookStack\Services\PermissionService;
use Illuminate\Contracts\Console\Kernel;
{
use DatabaseTransactions;
+ use SharedTestHelpers;
/**
* The base URL to use while testing the application.
- *
* @var string
*/
protected $baseUrl = 'http://localhost';
- // Local user instances
- private $admin;
- private $editor;
-
public function tearDown()
{
\DB::disconnect();
return $app;
}
- /**
- * Set the current user context to be an admin.
- * @return $this
- */
- public function asAdmin()
- {
- return $this->actingAs($this->getAdmin());
- }
-
- /**
- * Get the current admin user.
- * @return mixed
- */
- public function getAdmin() {
- if($this->admin === null) {
- $adminRole = Role::getSystemRole('admin');
- $this->admin = $adminRole->users->first();
- }
- return $this->admin;
- }
-
- /**
- * Set the current editor context to be an editor.
- * @return $this
- */
- public function asEditor()
- {
- if ($this->editor === null) {
- $this->editor = $this->getEditor();
- }
- return $this->actingAs($this->editor);
- }
/**
* Get a user that's not a system user such as the guest user.
}
/**
- * Quick way to create a new user
- * @param array $attributes
- * @return mixed
+ * Helper for updating entity permissions.
+ * @param Entity $entity
*/
- protected function getEditor($attributes = [])
+ protected function updateEntityPermissions(Entity $entity)
{
- $user = factory(\BookStack\User::class)->create($attributes);
- $role = Role::getRole('editor');
- $user->attachRole($role);;
- return $user;
+ $restrictionService = $this->app[PermissionService::class];
+ $restrictionService->buildJointPermissionsForEntity($entity);
}
+
/**
* Quick way to create a new user without any permissions
* @param array $attributes