Adding User edit/create view

This commit is contained in:
emeric
2018-04-10 13:24:14 +02:00
parent 05fd8a47d8
commit 2f7697d278
21 changed files with 510 additions and 64 deletions
+12 -5
View File
@@ -164,7 +164,6 @@ Handler::getCurrentUser()
User::pointer
Handler::getUser(const Wt::Auth::User& authUser)
{
if (!authUser.isValid()) {
LMS_LOG(DB, ERROR) << "Handler::getUser: invalid authUser";
return User::pointer();
@@ -172,13 +171,21 @@ Handler::getUser(const Wt::Auth::User& authUser)
Wt::Dbo::ptr<AuthInfo> authInfo = _users->find(authUser);
User::pointer user = authInfo->user();
return authInfo->user();
}
if (!user) {
user = _session.add(new User());
authInfo.modify()->setUser(user);
User::pointer
Handler::createUser(const Wt::Auth::User& authUser)
{
if (!authUser.isValid()) {
LMS_LOG(DB, ERROR) << "Handler::getUser: invalid authUser";
return User::pointer();
}
User::pointer user = _session.add(new User());
Wt::Dbo::ptr<AuthInfo> authInfo = _users->find(authUser);
authInfo.modify()->setUser(user);
return user;
}
+2 -1
View File
@@ -48,7 +48,8 @@ class Handler
Wt::Dbo::Session& getSession() { return _session; }
Wt::Dbo::ptr<User> getCurrentUser(); // get the current user, may return empty
Wt::Dbo::ptr<User> getUser(const Wt::Auth::User& authUser); // Get or create the given user
Wt::Dbo::ptr<User> getUser(const Wt::Auth::User& authUser);
Wt::Dbo::ptr<User> createUser(const Wt::Auth::User& authUser);
Wt::Auth::AbstractUserDatabase& getUserDatabase();
Wt::Auth::Login& getLogin() { return _login; }
+7 -11
View File
@@ -32,7 +32,7 @@ User::audioBitrates =
};
User::User()
: _maxAudioBitrate(maxAudioBitrate),
: _maxAudioBitrate(audioBitrates.back()),
_isAdmin(false),
_audioBitrate(defaultAudioBitrate),
_audioEncoding(AudioEncoding::AUTO),
@@ -63,31 +63,27 @@ User::getById(Wt::Dbo::Session& session, id_type id)
void
User::setAudioBitrate(std::size_t bitrate)
{
_audioBitrate = std::min(bitrate, std::min(static_cast<std::size_t>(_maxAudioBitrate), audioBitrates.back()));
_audioBitrate = std::min(bitrate, static_cast<std::size_t>(_maxAudioBitrate));
}
void
User::setMaxAudioBitrate(std::size_t bitrate)
{
_maxAudioBitrate = std::min(bitrate, static_cast<std::size_t>(_maxAudioBitrate));
_maxAudioBitrate = std::min(bitrate, audioBitrates.back());
if (_audioBitrate > _maxAudioBitrate)
_audioBitrate = _maxAudioBitrate;
}
std::size_t
User::getAudioBitrate(void) const
{
if (!isAdmin())
return std::min(static_cast<std::size_t>(_audioBitrate), std::min(static_cast<std::size_t>(_maxAudioBitrate), audioBitrates.back()));
else
return std::min(static_cast<std::size_t>(_audioBitrate), audioBitrates.back());
return _audioBitrate;
}
std::size_t
User::getMaxAudioBitrate(void) const
{
if (!isAdmin())
return std::min(static_cast<std::size_t>(_maxAudioBitrate), audioBitrates.back());
else
return audioBitrates.back();
return _maxAudioBitrate;
}
} // namespace Database
+3 -4
View File
@@ -41,7 +41,7 @@ enum class AudioEncoding
WEBMA,
};
class User
class User : public Wt::Dbo::Dbo<User>
{
public:
typedef Wt::Dbo::dbo_traits<User>::IdType id_type;
@@ -70,9 +70,9 @@ class User
void setCurPlayingTrackPos(std::size_t pos) { _curPlayingTrackPos = pos; }
// read
bool isAdmin() const {return _isAdmin;}
bool isAdmin() const { return _isAdmin; }
std::size_t getAudioBitrate() const;
AudioEncoding getAudioEncoding() const { return _audioEncoding;}
AudioEncoding getAudioEncoding() const { return _audioEncoding; }
std::size_t getMaxAudioBitrate() const;
std::size_t getCurPlayingTrackPos() const { return _curPlayingTrackPos; }
@@ -90,7 +90,6 @@ class User
private:
static const std::size_t maxAudioBitrate = 320000;
static const std::size_t defaultAudioBitrate = 128000;
// Admin defined settings