]> BookStack Code Mirror - bookstack/commitdiff
Fixed issue with deleted users in page revision list & extended tests to cover.
authorDan Brown <redacted>
Tue, 15 Dec 2015 19:53:46 +0000 (19:53 +0000)
committerDan Brown <redacted>
Tue, 15 Dec 2015 19:53:46 +0000 (19:53 +0000)
app/Repos/PageRepo.php
resources/views/pages/revisions.blade.php
tests/EntityTest.php

index a52cecad3e75b79a7f66d9942b9e2b197872b9e4..f7b48efdc2f38a3bda9022ea8c45bb8f251f5ab2 100644 (file)
@@ -269,7 +269,7 @@ class PageRepo
      * @param Page $page
      * @return $this
      */
-    private function saveRevision(Page $page)
+    public function saveRevision(Page $page)
     {
         $revision = $this->pageRevision->fill($page->toArray());
         $revision->page_id = $page->id;
index ae9e3562f30d6a62a2194dcb5b35f36df8ad45e4..b7ec1f8164e97248daa77dda23c54b3fc0be3156 100644 (file)
                 @foreach($page->revisions as $revision)
                     <tr>
                         <td>{{$revision->name}}</td>
-                        <td style="line-height: 0;"><img class="avatar" src="{{ $revision->createdBy->getAvatar(30) }}" alt="{{$revision->createdBy->name}}"></td>
-                        <td> {{$revision->createdBy->name}}</td>
+                        <td style="line-height: 0;">
+                            @if($revision->createdBy)
+                                <img class="avatar" src="{{ $revision->createdBy->getAvatar(30) }}" alt="{{$revision->createdBy->name}}">
+                            @endif
+                        </td>
+                        <td> @if($revision->createdBy) {{$revision->createdBy->name}} @else Deleted User @endif</td>
                         <td><small>{{$revision->created_at->format('jS F, Y H:i:s')}} ({{$revision->created_at->diffForHumans()}})</small></td>
                         <td>
                             <a href="{{$revision->getUrl()}}" target="_blank">Preview</a>
index 02924c1231a5304e5cf679f68b4a707f53071be4..07553e7dc26268825962ce8206add64218d3dee3 100644 (file)
@@ -173,26 +173,40 @@ class EntityTest extends TestCase
 
     public function testEntitiesViewableAfterCreatorDeletion()
     {
+        // Create required assets and revisions
         $creator = $this->getNewUser();
         $updater = $this->getNewUser();
         $entities = $this->createEntityChainBelongingToUser($creator, $updater);
+        $this->actingAs($creator);
         app('BookStack\Repos\UserRepo')->destroy($creator);
+        app('BookStack\Repos\PageRepo')->saveRevision($entities['page']);
 
-        $this->asAdmin()->visit($entities['book']->getUrl())->seeStatusCode(200)
-            ->visit($entities['chapter']->getUrl())->seeStatusCode(200)
-            ->visit($entities['page']->getUrl())->seeStatusCode(200);
+        $this->checkEntitiesViewable($entities);
     }
 
     public function testEntitiesViewableAfterUpdaterDeletion()
     {
+        // Create required assets and revisions
         $creator = $this->getNewUser();
         $updater = $this->getNewUser();
         $entities = $this->createEntityChainBelongingToUser($creator, $updater);
+        $this->actingAs($updater);
         app('BookStack\Repos\UserRepo')->destroy($updater);
+        app('BookStack\Repos\PageRepo')->saveRevision($entities['page']);
 
-        $this->asAdmin()->visit($entities['book']->getUrl())->seeStatusCode(200)
+        $this->checkEntitiesViewable($entities);
+    }
+
+    private function checkEntitiesViewable($entities)
+    {
+        // Check pages and books are visible.
+        $this->asAdmin();
+        $this->visit($entities['book']->getUrl())->seeStatusCode(200)
             ->visit($entities['chapter']->getUrl())->seeStatusCode(200)
             ->visit($entities['page']->getUrl())->seeStatusCode(200);
+        // Check revision listing shows no errors.
+        $this->visit($entities['page']->getUrl())
+            ->click('Revisions')->seeStatusCode(200);
     }