diff --git a/INSTALL.md b/INSTALL.md index 63691737..19bbd849 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -23,8 +23,8 @@ _Buster_ packages are provided for _amd64_ and _armhf_ architectures. As root, trust the following debian package provider and add it in your list of repositories: ```sh -wget -O - https://debian.poupon.io/apt/debian/epoupon.gpg.key | apt-key add - -echo "deb https://debian.poupon.io/apt/debian buster main" > /etc/apt/sources.list.d/epoupon.list +wget -O - https://debian.poupon.dev/apt/debian/epoupon.gpg.key | apt-key add - +echo "deb https://debian.poupon.dev/apt/debian buster main" > /etc/apt/sources.list.d/epoupon.list ``` To install or upgrade _LMS_: @@ -65,7 +65,7 @@ cmake .. -DCMAKE_BUILD_TYPE=Release ``` __Notes__: * you can customize the installation directory using `-DCMAKE_INSTALL_PREFIX=path` (defaults to `/usr/local`). -* you can customize the image library using `-DIMAGE_LIBRARY=` +* you can customize the image library using `-DIMAGE_LIBRARY=` ```sh make diff --git a/README.md b/README.md index b765f0ac..2c1302a5 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ _LMS_ is a self-hosted music streaming software: access your music collection from anywhere using a web interface! -A [demo instance](http://lms.demo.poupon.io) is available. Note the administration panel is not available. +A [demo instance](http://lms-demo.poupon.dev) is available. Note the administration panel is not available. ## Main features * Low memory requirements: the demo instance runs on a _Raspberry Pi Zero W_ diff --git a/approot/mediaplayer.xml b/approot/mediaplayer.xml index f7b70da6..46f1078f 100644 --- a/approot/mediaplayer.xml +++ b/approot/mediaplayer.xml @@ -35,7 +35,7 @@ diff --git a/src/libs/services/database/include/services/database/Object.hpp b/src/libs/services/database/include/services/database/Object.hpp index 3c9f189f..79ccf4be 100644 --- a/src/libs/services/database/include/services/database/Object.hpp +++ b/src/libs/services/database/include/services/database/Object.hpp @@ -34,6 +34,8 @@ namespace Database const T* operator->() const { return _obj.get(); } operator bool() const { return _obj.get(); } bool operator!() const { return !_obj.get(); } + bool operator==(const ObjectPtr& other) const { return _obj == other._obj; } + bool operator!=(const ObjectPtr& other) const { return other._obj != _obj; } auto modify() { return _obj.modify(); } void remove() { _obj.remove(); } diff --git a/src/libs/services/database/test/Track.cpp b/src/libs/services/database/test/Track.cpp index 3868225d..3e959a70 100644 --- a/src/libs/services/database/test/Track.cpp +++ b/src/libs/services/database/test/Track.cpp @@ -46,7 +46,21 @@ TEST_F(DatabaseFixture, Track) } } -TEST_F(DatabaseFixture, Track_findByKeywords) +TEST_F(DatabaseFixture, MultipleTracks) +{ + ScopedTrack track1 {session, "MyTrackFile1"}; + ScopedTrack track2 {session, "MyTrackFile2"}; + + { + auto transaction {session.createSharedTransaction()}; + + EXPECT_TRUE(track1.getId() != track2.getId()); + EXPECT_TRUE(track1.get() != track2.get()); + EXPECT_FALSE(track1.get() == track2.get()); + } +} + +TEST_F(DatabaseFixture, MultipleTracksSearchByFilter) { ScopedTrack track1 {session, ""}; ScopedTrack track2 {session, ""}; diff --git a/src/lms/ui/admin/UsersView.cpp b/src/lms/ui/admin/UsersView.cpp index 84f2c41b..e7292ef6 100644 --- a/src/lms/ui/admin/UsersView.cpp +++ b/src/lms/ui/admin/UsersView.cpp @@ -71,6 +71,7 @@ UsersView::refreshView() auto transaction {LmsApp->getDbSession().createSharedTransaction()}; + const User::IdType currentUserId {LmsApp->getUser()}; for (const UserId userId : User::find(LmsApp->getDbSession(), User::FindParameters {}).results) { const User::pointer user {User::find(LmsApp->getDbSession(), userId)}; @@ -87,7 +88,7 @@ UsersView::refreshView() } // Don't edit ourself this way - if (LmsApp->getUser() == user) + if (user->getId() == currentUserId) continue; entry->setCondition("if-edit", true);