summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Baumann <mail@andreasbaumann.cc>2015-04-22 14:46:55 +0200
committerAndreas Baumann <mail@andreasbaumann.cc>2015-04-22 14:46:55 +0200
commit48b476289940862a9754f67752f0a092b0a1f0d2 (patch)
tree38b78883e43ae89a7a40dd915c505b6a2f654324
parentdec1359e90e847c90629e43ef3744539e8fb41c8 (diff)
downloadaCms-48b476289940862a9754f67752f0a092b0a1f0d2.tar.gz
aCms-48b476289940862a9754f67752f0a092b0a1f0d2.tar.bz2
working login with captcha
-rw-r--r--src/user.cpp12
-rw-r--r--src/user.hpp4
-rw-r--r--src/user_content.hpp1
3 files changed, 15 insertions, 2 deletions
diff --git a/src/user.cpp b/src/user.cpp
index d94cd6f..65ca2d4 100644
--- a/src/user.cpp
+++ b/src/user.cpp
@@ -98,7 +98,8 @@ void user::ini( content::user &c )
unsigned char *gif = new unsigned char[gifsize];
captcha( im, l );
- c.captcha_text = std::string( (char *)l );
+ last_captcha = new_captcha;
+ new_captcha = std::string( (char *)l );
std::ostringstream raws( std::stringstream::out | std::stringstream::binary );
makegif( im, gif );
@@ -148,12 +149,21 @@ login_form::login_form( apps::strusCms &cms )
bool login_form::validate( )
{
if( !form::validate( ) ) {
+ booster::ptime::sleep( booster::ptime( 5, 0 ) );
return false;
}
if( !cms.user.check_login( username.value( ), password.value( ) ) ) {
username.valid( false );
password.valid( false );
+ password.clear( );
+ booster::ptime::sleep( booster::ptime( 5, 0 ) );
+ return false;
+ }
+
+ if( captcha.value( ).compare( cms.user.last_captcha ) != 0 ) {
+ captcha.valid( false );
+ captcha.clear( );
booster::ptime::sleep( booster::ptime( 5, 0 ) );
return false;
}
diff --git a/src/user.hpp b/src/user.hpp
index f255fbf..d76392c 100644
--- a/src/user.hpp
+++ b/src/user.hpp
@@ -12,6 +12,10 @@ class user : public master {
user( strusCms &cms );
bool check_login( std::string user, std::string password );
+ public:
+ std::string last_captcha;
+ std::string new_captcha;
+
private:
void login( );
void logout( );
diff --git a/src/user_content.hpp b/src/user_content.hpp
index 857a15c..c0ff7eb 100644
--- a/src/user_content.hpp
+++ b/src/user_content.hpp
@@ -22,7 +22,6 @@ struct login_form : public cppcms::form {
struct user : public master {
login_form login;
- std::string captcha_text;
std::string captcha_base64;
public: