WIP. Added Account and Audio forms

This commit is contained in:
emeric
2014-08-01 00:05:44 +02:00
parent 1f41f7f481
commit 1cdb69e4eb
18 changed files with 830 additions and 160 deletions
+8 -1
View File
@@ -32,7 +32,14 @@ Handler::configureAuth(void)
verifier->addHashFunction(new Wt::Auth::BCryptHashFunction(8));
passwordService.setVerifier(verifier);
passwordService.setAttemptThrottlingEnabled(true);
passwordService.setStrengthValidator(new Wt::Auth::PasswordStrengthValidator());
Wt::Auth::PasswordStrengthValidator* strengthValidator = new Wt::Auth::PasswordStrengthValidator();
// Reduce some constraints...
strengthValidator->setMinimumLength( Wt::Auth::PasswordStrengthValidator::TwoCharClass, 11);
strengthValidator->setMinimumLength( Wt::Auth::PasswordStrengthValidator::ThreeCharClass, 8 );
strengthValidator->setMinimumLength( Wt::Auth::PasswordStrengthValidator::FourCharClass, 6 );
passwordService.setStrengthValidator(strengthValidator);
}
const Wt::Auth::AuthService&
+94
View File
@@ -4,6 +4,33 @@
namespace Database {
// must be ordered
const std::vector<std::size_t>
User::audioBitrates =
{
64000,
96000,
128000,
160000,
192000,
224000,
256000,
320000,
512000
};
const std::vector<std::size_t>
User::videoBitrates =
{
256000,
512000,
1024000,
2048000,
4096000,
8192000
};
User::User()
: _maxAudioBitrate(maxAudioBitrate),
_maxVideoBitrate(maxVideoBitrate),
@@ -27,6 +54,73 @@ User::getById(Wt::Dbo::Session& session, std::string id)
return session.find<User>().where("id = ?").bind( id );
}
std::string
User::getId( pointer user)
{
std::ostringstream oss; oss << user.id();
return oss.str();
}
void
User::setAudioBitrate(std::size_t bitrate)
{
_audioBitrate = std::min(bitrate, std::min(static_cast<std::size_t>(_maxAudioBitrate), audioBitrates.back()));
}
void
User::setVideoBitrate(std::size_t bitrate)
{
_videoBitrate = std::min(bitrate, std::min(static_cast<std::size_t>(_maxVideoBitrate), videoBitrates.back()));
}
void
User::setMaxAudioBitrate(std::size_t bitrate)
{
_maxAudioBitrate = std::min(bitrate, static_cast<std::size_t>(_maxAudioBitrate));
}
void
User::setMaxVideoBitrate(std::size_t bitrate)
{
_maxVideoBitrate = std::min(bitrate, static_cast<std::size_t>(_maxVideoBitrate));
}
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());
}
std::size_t
User::getVideoBitrate(void) const
{
if (!isAdmin())
return std::min(static_cast<std::size_t>(_videoBitrate), std::min(static_cast<std::size_t>(_maxVideoBitrate), videoBitrates.back()));
else
return std::min(static_cast<std::size_t>(_videoBitrate), videoBitrates.back());
}
std::size_t
User::getMaxAudioBitrate(void) const
{
if (!isAdmin())
return std::min(static_cast<std::size_t>(_maxAudioBitrate), audioBitrates.back());
else
return audioBitrates.back();
}
std::size_t
User::getMaxVideoBitrate(void) const
{
if (!isAdmin())
return std::min(static_cast<std::size_t>(_maxVideoBitrate), videoBitrates.back());
else
return videoBitrates.back();
}
} // namespace Database
+15 -6
View File
@@ -14,6 +14,10 @@ class User {
public:
static const std::size_t MaxNameLength = 15;
// list of commonly used bitrates
static const std::vector<std::size_t> audioBitrates;
static const std::vector<std::size_t> videoBitrates;
User();
typedef Wt::Dbo::ptr<User> pointer;
@@ -21,16 +25,21 @@ class User {
// accessors
static pointer getById(Wt::Dbo::Session& session, std::string id);
static std::vector<pointer> getAll(Wt::Dbo::Session& session);
static std::string getId(pointer user);
// write
void setAdmin(bool admin) { _isAdmin = admin; }
void setMaxAudioBitrate(std::size_t bitrate) { _maxAudioBitrate = bitrate; }
void setMaxVideoBitrate(std::size_t bitrate) { _maxVideoBitrate = bitrate; }
void setAudioBitrate(std::size_t bitrate);
void setVideoBitrate(std::size_t bitrate);
void setMaxAudioBitrate(std::size_t bitrate);
void setMaxVideoBitrate(std::size_t bitrate);
// read
bool isAdmin() const {return _isAdmin;}
std::size_t getMaxAudioBitrate() const { return _maxAudioBitrate; }
std::size_t getMaxVideoBitrate() const { return _maxVideoBitrate; }
std::size_t getAudioBitrate() const;
std::size_t getVideoBitrate() const;
std::size_t getMaxAudioBitrate() const;
std::size_t getMaxVideoBitrate() const;
template<class Action>
void persist(Action& a)
@@ -45,10 +54,10 @@ class User {
private:
static const std::size_t maxAudioBitrate = 320000;
static const std::size_t maxVideoBitrate = 7500000;
static const std::size_t maxVideoBitrate = 2048000;
static const std::size_t defaultAudioBitrate = 128000;
static const std::size_t defaultVideoBitrate = 1500000;
static const std::size_t defaultVideoBitrate = 1024000;
// Admin defined settings
int _maxAudioBitrate;