diff --git a/app/Entity.php b/app/Entity.php
index 3d1c4ad58..705444959 100644
--- a/app/Entity.php
+++ b/app/Entity.php
@@ -31,11 +31,7 @@ abstract class Entity extends Model
if ($matches) return true;
- if ($entity->isA('chapter') && $this->isA('book')) {
- return $entity->book_id === $this->id;
- }
-
- if ($entity->isA('page') && $this->isA('book')) {
+ if (($entity->isA('chapter') || $entity->isA('page')) && $this->isA('book')) {
return $entity->book_id === $this->id;
}
@@ -64,15 +60,6 @@ abstract class Entity extends Model
return $this->morphMany('BookStack\View', 'viewable');
}
- /**
- * Get just the views for the current user.
- * @return mixed
- */
- public function userViews()
- {
- return $this->views()->where('user_id', '=', auth()->user()->id);
- }
-
/**
* Allows checking of the exact class, Used to check entity type.
* Cleaner method for is_a.
diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php
index c9ca1f09f..035de9fe6 100644
--- a/app/Http/Controllers/SearchController.php
+++ b/app/Http/Controllers/SearchController.php
@@ -62,9 +62,9 @@ class SearchController extends Controller
return redirect()->back();
}
$searchTerm = $request->get('term');
- $whereTerm = [['book_id', '=', $bookId]];
- $pages = $this->pageRepo->getBySearch($searchTerm, $whereTerm);
- $chapters = $this->chapterRepo->getBySearch($searchTerm, $whereTerm);
+ $searchWhereTerms = [['book_id', '=', $bookId]];
+ $pages = $this->pageRepo->getBySearch($searchTerm, $searchWhereTerms);
+ $chapters = $this->chapterRepo->getBySearch($searchTerm, $searchWhereTerms);
return view('search/book', ['pages' => $pages, 'chapters' => $chapters, 'searchTerm' => $searchTerm]);
}
diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php
index fe25c44ae..b81be16f6 100644
--- a/app/Http/Controllers/UserController.php
+++ b/app/Http/Controllers/UserController.php
@@ -116,9 +116,11 @@ class UserController extends Controller
$this->validate($request, [
'name' => 'required',
'email' => 'required|email|unique:users,email,' . $id,
- 'password' => 'min:5',
- 'password-confirm' => 'same:password',
+ 'password' => 'min:5|required_with:password_confirm',
+ 'password-confirm' => 'same:password|required_with:password',
'role' => 'exists:roles,id'
+ ], [
+ 'password-confirm.required_with' => 'Password confirmation required'
]);
$user = $this->user->findOrFail($id);
@@ -132,6 +134,7 @@ class UserController extends Controller
$password = $request->get('password');
$user->password = bcrypt($password);
}
+
$user->save();
return redirect('/users');
}
diff --git a/app/Role.php b/app/Role.php
index 3e58164c5..c698a1cf6 100644
--- a/app/Role.php
+++ b/app/Role.php
@@ -43,6 +43,16 @@ class Role extends Model
*/
public static function getDefault()
{
- return static::where('name', '=', static::$default)->first();
+ return static::getRole(static::$default);
+ }
+
+ /**
+ * Get the role object for the specified role.
+ * @param $roleName
+ * @return mixed
+ */
+ public static function getRole($roleName)
+ {
+ return static::where('name', '=', $roleName)->first();
}
}
diff --git a/database/seeds/DummyContentSeeder.php b/database/seeds/DummyContentSeeder.php
index d2ccc7960..aa70eaa0a 100644
--- a/database/seeds/DummyContentSeeder.php
+++ b/database/seeds/DummyContentSeeder.php
@@ -12,7 +12,7 @@ class DummyContentSeeder extends Seeder
public function run()
{
$user = factory(BookStack\User::class, 1)->create();
- $role = \BookStack\Role::where('name', '=', 'admin')->first();
+ $role = \BookStack\Role::getDefault();
$user->attachRole($role);
diff --git a/phpunit.xml b/phpunit.xml
index d86aacd00..1704159e2 100644
--- a/phpunit.xml
+++ b/phpunit.xml
@@ -26,6 +26,6 @@