summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2023-03-08 18:00:44 +0800
committerꦌꦫꦶꦏ꧀ꦦꦿꦧꦮꦑꦩꦭ꧀ <erik@darapsa.co.id>2023-03-08 18:00:44 +0800
commit97dc735de7a67e6be77c0cad5164267b2c39c4c1 (patch)
tree8aee8f7f8d3c9d6bb0fe20635a652178bc3e4074
parentc3dce22abc40aa880d8b63ef5e7f1f0f02678e1c (diff)
Interface for setting login next page
-rw-r--r--admin.cxx22
-rw-r--r--interchange/admin.hxx1
-rw-r--r--interchange/member.hxx1
-rw-r--r--member.cxx24
4 files changed, 29 insertions, 19 deletions
diff --git a/admin.cxx b/admin.cxx
index ffc4fe8..4c65c7b 100644
--- a/admin.cxx
+++ b/admin.cxx
@@ -4,10 +4,10 @@
namespace QInterchange {
- static char *unCopy, *pwCopy, *fpCopy;
+ static char *unCopy, *pwCopy, *npCopy, *fpCopy;
void Admin::logIn(QString const& username, QString const& password,
- QString const& failPage)
+ QString const& nextPage, QString const& failPage)
{
auto unData = username.toLatin1().constData();
unCopy = (char*)malloc(strlen(unData) + 1);
@@ -15,16 +15,20 @@ namespace QInterchange {
auto pwData = password.toLatin1().constData();
pwCopy = (char*)malloc(strlen(pwData) + 1);
strcpy(pwCopy, pwData);
+ auto npData = nextPage.toLatin1().constData();
+ npCopy = (char*)malloc(strlen(npData) + 1);
+ strcpy(npCopy, npData);
auto fpData = failPage.toLatin1().constData();
fpCopy = (char*)malloc(strlen(fpData) + 1);
strcpy(fpCopy, fpData);
- interchange_admin_login(unCopy, pwCopy, fpCopy,
- [](interchange_response* response) {
- free(unCopy);
- free(pwCopy);
- free(fpCopy);
- interchange_free_response(response);
- }, nullptr);
+ interchange_admin_login(unCopy, pwCopy, npCopy, fpCopy,
+ [](interchange_response* response) {
+ free(unCopy);
+ free(pwCopy);
+ free(npCopy);
+ free(fpCopy);
+ interchange_free_response(response);
+ }, nullptr);
}
void Admin::setUserName(QString const& userName)
diff --git a/interchange/admin.hxx b/interchange/admin.hxx
index 2c0d86b..1f00df4 100644
--- a/interchange/admin.hxx
+++ b/interchange/admin.hxx
@@ -39,6 +39,7 @@ namespace QInterchange {
public slots:
void logIn(QString const& username,
QString const& password,
+ QString const& nextPage = nullptr,
QString const& failPage = nullptr);
void newAdmin(QString const& userName, QString const& password, QString const& name, bool super,
enum interchange_admin_group group);
diff --git a/interchange/member.hxx b/interchange/member.hxx
index 57467de..897b086 100644
--- a/interchange/member.hxx
+++ b/interchange/member.hxx
@@ -84,6 +84,7 @@ namespace QInterchange {
QString const& failPage = nullptr);
void logIn(QString const& username,
QString const& password,
+ QString const& nextPage = nullptr,
QString const& failPage = nullptr);
void account();
void setAccount(QString const& firstName,
diff --git a/member.cxx b/member.cxx
index ecef5f9..fb4396a 100644
--- a/member.cxx
+++ b/member.cxx
@@ -5,7 +5,7 @@
namespace QInterchange {
static Member* member;
- static char *unCopy, *pwCopy, *vCopy, *fpCopy;
+ static char *unCopy, *pwCopy, *vCopy, *npCopy, *fpCopy;
static interchange_member* mPtr;
Member::Member(QObject* parent) :
@@ -62,7 +62,7 @@ namespace QInterchange {
}
void Member::logIn(QString const& username, QString const& password,
- QString const& failPage)
+ QString const& nextPage, QString const& failPage)
{
auto unData = username.toLatin1().constData();
unCopy = (char*)malloc(strlen(unData) + 1);
@@ -70,17 +70,21 @@ namespace QInterchange {
auto pwData = password.toLatin1().constData();
pwCopy = (char*)malloc(strlen(pwData) + 1);
strcpy(pwCopy, pwData);
+ auto npData = nextPage.toLatin1().constData();
+ npCopy = (char*)malloc(strlen(npData) + 1);
+ strcpy(npCopy, npData);
auto fpData = failPage.toLatin1().constData();
fpCopy = (char*)malloc(strlen(fpData) + 1);
strcpy(fpCopy, fpData);
- interchange_member_login(unCopy, pwCopy, fpCopy,
- [](interchange_response* response) {
- free(unCopy);
- free(pwCopy);
- free(fpCopy);
- member->emitLogin(QString{response->data});
- interchange_free_response(response);
- }, nullptr);
+ interchange_member_login(unCopy, pwCopy, npCopy, fpCopy,
+ [](interchange_response* response) {
+ free(unCopy);
+ free(pwCopy);
+ free(npCopy);
+ free(fpCopy);
+ member->emitLogin(QString{response->data});
+ interchange_free_response(response);
+ }, nullptr);
}
void Member::setAccount(QString const& firstName,