]> BookStack Code Mirror - bookstack/commitdiff
Merge branch 'master' into add_role_view_permissions
authorDan Brown <redacted>
Wed, 20 Apr 2016 19:22:30 +0000 (20:22 +0100)
committerDan Brown <redacted>
Wed, 20 Apr 2016 19:22:30 +0000 (20:22 +0100)
1  2 
app/Http/Controllers/BookController.php
app/Http/Controllers/PageController.php
resources/views/settings/roles/form.blade.php

index 46636016fd42ba744d1d2e8be81637706f12fe71,91c9651450478d9a0be15e538bc1ed96b22da3ee..498d6bb7f148af4f65b94caf5c20ab54a3681526
@@@ -36,7 -36,6 +36,6 @@@ class BookController extends Controlle
  
      /**
       * Display a listing of the book.
-      *
       * @return Response
       */
      public function index()
@@@ -50,7 -49,6 +49,6 @@@
  
      /**
       * Show the form for creating a new book.
-      *
       * @return Response
       */
      public function create()
  
      /**
       * Display the specified book.
-      *
       * @param $slug
       * @return Response
       */
      public function show($slug)
      {
          $book = $this->bookRepo->getBySlug($slug);
 +        $this->checkOwnablePermission('book-view', $book);
          $bookChildren = $this->bookRepo->getChildren($book);
          Views::add($book);
          $this->setPageTitle($book->getShortName());
  
      /**
       * Show the form for editing the specified book.
-      *
       * @param $slug
       * @return Response
       */
  
      /**
       * Update the specified book in storage.
-      *
       * @param  Request $request
       * @param          $slug
       * @return Response
      {
          $book = $this->bookRepo->getBySlug($bookSlug);
          $this->checkOwnablePermission('book-update', $book);
-         $bookChildren = $this->bookRepo->getChildren($book);
+         $bookChildren = $this->bookRepo->getChildren($book, true);
          $books = $this->bookRepo->getAll(false);
          $this->setPageTitle('Sort Book ' . $book->getShortName());
          return view('books/sort', ['book' => $book, 'current' => $book, 'books' => $books, 'bookChildren' => $bookChildren]);
index 30d6c2d76a136fb7b4d3c972f24b922f3a636572,a645ede025077543f5676c4c225f8ac47c93c432..d2cb647b789e579311d9dd48639bf2643d012d33
@@@ -4,6 -4,7 +4,7 @@@ use Activity
  use BookStack\Exceptions\NotFoundException;
  use BookStack\Repos\UserRepo;
  use BookStack\Services\ExportService;
+ use Carbon\Carbon;
  use Illuminate\Http\Request;
  use BookStack\Http\Requests;
  use BookStack\Repos\BookRepo;
@@@ -127,8 -128,6 +128,8 @@@ class PageController extends Controlle
              return redirect($page->getUrl());
          }
  
 +        $this->checkOwnablePermission('page-view', $page);
 +
          $sidebarTree = $this->bookRepo->getChildren($book);
          Views::add($page);
          $this->setPageTitle($page->getShortName());
          } else {
              $draft = $this->pageRepo->saveUpdateDraft($page, $request->only(['name', 'html', 'markdown']));
          }
-         $updateTime = $draft->updated_at->format('H:i');
-         return response()->json(['status' => 'success', 'message' => 'Draft saved at ' . $updateTime]);
+         $updateTime = $draft->updated_at->timestamp;
+         $utcUpdateTimestamp = $updateTime + Carbon::createFromTimestamp(0)->offset;
+         return response()->json([
+             'status' => 'success',
+             'message' => 'Draft saved at ',
+             'timestamp' => $utcUpdateTimestamp
+         ]);
      }
  
      /**
index cd81febb1ce859a3b2b1cb598529c972aee9f0e5,9b0b35d3e67bb9453821d2dfb18926620aa5e5b7..0980d1b650ff54fb273444100d16f24f708d48d0
  
  <div class="row">
  
-     <div class="col-md-6">
-         <h3>Role Details</h3>
-         <div class="form-group">
-             <label for="name">Role Name</label>
-             @include('form/text', ['name' => 'display_name'])
-         </div>
-         <div class="form-group">
-             <label for="name">Short Role Description</label>
-             @include('form/text', ['name' => 'description'])
-         </div>
-         <h3>System Permissions</h3>
+     <div class="col-md-9">
          <div class="row">
-             <div class="col-md-6">
-                 <label> @include('settings/roles/checkbox', ['permission' => 'users-manage']) Manage users</label>
-             </div>
-             <div class="col-md-6">
-                 <label>@include('settings/roles/checkbox', ['permission' => 'user-roles-manage']) Manage user roles</label>
-             </div>
-         </div>
-         <hr class="even">
-         <div class="row">
-             <div class="col-md-6">
+             <div class="col-md-5">
+                 <h3>Role Details</h3>
+                 <div class="form-group">
+                     <label for="name">Role Name</label>
+                     @include('form/text', ['name' => 'display_name'])
+                 </div>
+                 <div class="form-group">
+                     <label for="name">Short Role Description</label>
+                     @include('form/text', ['name' => 'description'])
+                 </div>
+                 <h3>System Permissions</h3>
+                 <label>@include('settings/roles/checkbox', ['permission' => 'users-manage']) Manage users</label>
+                 <label>@include('settings/roles/checkbox', ['permission' => 'user-roles-manage']) Manage roles & role permissions</label>
                  <label>@include('settings/roles/checkbox', ['permission' => 'restrictions-manage-all']) Manage all Book, Chapter & Page permissions</label>
+                 <label>@include('settings/roles/checkbox', ['permission' => 'restrictions-manage-own']) Manage permissions on own Book, Chapter & Pages</label>
+                 <label>@include('settings/roles/checkbox', ['permission' => 'settings-manage']) Manage app settings</label>
              </div>
              <div class="col-md-6">
-                 <label>@include('settings/roles/checkbox', ['permission' => 'restrictions-manage-own']) Manage permissions on own Book, Chapter & Pages</label>
+                 <h3>Asset Permissions</h3>
+                 <p>
+                     These permissions control default access to the assets within the system.
+                     Permissions on Books, Chapters and Pages will override these permissions.
+                 </p>
+                 <table class="table">
+                     <tr>
+                         <th></th>
+                         <th>Create</th>
+                         <th>Edit</th>
+                         <th>Delete</th>
+                     </tr>
+                     <tr>
+                         <td>Books</td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'book-create-all']) All</label>
+                         </td>
++                        <td>
++                            <label>@include('settings/roles/checkbox', ['permission' => 'book-view-own']) Own</label>
++                            <label>@include('settings/roles/checkbox', ['permission' => 'book-view-all']) All</label>
++                        </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'book-update-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'book-update-all']) All</label>
+                         </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'book-delete-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'book-delete-all']) All</label>
+                         </td>
+                     </tr>
+                     <tr>
+                         <td>Chapters</td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-all']) All</label>
+                         </td>
++                        <td>
++                            <label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-own']) Own</label>
++                            <label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-all']) All</label>
++                        </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-all']) All</label>
+                         </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-all']) All</label>
+                         </td>
+                     </tr>
+                     <tr>
+                         <td>Pages</td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'page-create-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'page-create-all']) All</label>
+                         </td>
++                        <td>
++                            <label>@include('settings/roles/checkbox', ['permission' => 'page-view-own']) Own</label>
++                            <label>@include('settings/roles/checkbox', ['permission' => 'page-view-all']) All</label>
++                        </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'page-update-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'page-update-all']) All</label>
+                         </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'page-delete-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'page-delete-all']) All</label>
+                         </td>
+                     </tr>
+                     <tr>
+                         <td>Images</td>
+                         <td>@include('settings/roles/checkbox', ['permission' => 'image-create-all'])</td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'image-update-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'image-update-all']) All</label>
+                         </td>
+                         <td>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'image-delete-own']) Own</label>
+                             <label>@include('settings/roles/checkbox', ['permission' => 'image-delete-all']) All</label>
+                         </td>
+                     </tr>
+                 </table>
              </div>
          </div>
-         <hr class="even">
-         <div class="form-group">
-             <label>@include('settings/roles/checkbox', ['permission' => 'settings-manage']) Manage app settings</label>
-         </div>
-         <hr class="even">
+         <a href="/settings/roles" class="button muted">Cancel</a>
+         <button type="submit" class="button pos">Save Role</button>
      </div>
+     <div class="col-md-3">
+         <h3>Users in this role</h3>
  
-     <div class="col-md-6">
-         <h3>Asset Permissions</h3>
-         <p>
-             These permissions control default access to the assets within the system. <br>
-             Permissions on Books, Chapters and Pages will override these permissions.
-         </p>
-         <table class="table">
-             <tr>
-                 <th></th>
-                 <th>Create</th>
-                 <th>View</th>
-                 <th>Edit</th>
-                 <th>Delete</th>
-             </tr>
-             <tr>
-                 <td>Books</td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-create-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-view-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-view-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-update-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-update-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-delete-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'book-delete-all']) All</label>
-                 </td>
-             </tr>
-             <tr>
-                 <td>Chapters</td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-create-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-view-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-update-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'chapter-delete-all']) All</label>
-                 </td>
-             </tr>
-             <tr>
-                 <td>Pages</td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-create-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-create-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-view-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-view-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-update-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-update-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-delete-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'page-delete-all']) All</label>
-                 </td>
-             </tr>
-             <tr>
-                 <td>Images</td>
-                 <td>@include('settings/roles/checkbox', ['permission' => 'image-create-all'])</td>
-                 <td></td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'image-update-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'image-update-all']) All</label>
-                 </td>
-                 <td>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'image-delete-own']) Own</label>
-                     <label>@include('settings/roles/checkbox', ['permission' => 'image-delete-all']) All</label>
-                 </td>
-             </tr>
+         @if(isset($role) && count($role->users) > 0)
+         <table class="list-table">
+             @foreach($role->users as $user)
+                 <tr>
+                     <td style="line-height: 0;"><img class="avatar small" src="{{$user->getAvatar(40)}}" alt="{{$user->name}}"></td>
+                     <td>
+                         @if(userCan('users-manage') || $currentUser->id == $user->id)
+                             <a href="/settings/users/{{$user->id}}">
+                                 @endif
+                                 {{ $user->name }}
+                                 @if(userCan('users-manage') || $currentUser->id == $user->id)
+                             </a>
+                         @endif
+                     </td>
+                 </tr>
+             @endforeach
          </table>
+         @else
+             <p class="text-muted">
+                 No users currently in this role.
+             </p>
+         @endif
      </div>
  
- </div>
  
- <a href="/settings/roles" class="button muted">Cancel</a>
- <button type="submit" class="button pos">Save Role</button>
+ </div>