Advertisement
Guest User

logincontroller.cpp

a guest
May 9th, 2018
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include "logincontroller.h"
  2. #include "requesthandler.h"
  3. #include "filelogger.h"
  4. #include "staticfilecontroller.h"
  5. #include "connection.h"
  6. #include "sessiontable.h"
  7. #include "repository.h"
  8. #include "cookiestorage.h"
  9.  
  10. #include <QUuid>
  11. #include <QDir>
  12. #include <QFile>
  13. #include <QDebug>
  14. #include <QSqlDatabase>
  15. #include <QSqlQuery>
  16. #include <QSqlRecord>
  17. #include <QSqlError>
  18. #include <QDate>
  19. #include <QString>
  20. #include <QTextStream>
  21. #include <QVariant>
  22. #include <QJsonArray>
  23. #include <QJsonDocument>
  24. #include <QJsonObject>
  25. #include <QJsonValue>
  26. #include <QJsonParseError>
  27. #include <QByteArray>
  28. #include <QString>
  29. #include <QtSql/QSqlError>
  30. #include <cstdlib>
  31.  
  32. LoginController::LoginController(HttpRequestHandler& handler, HttpRequest& request, HttpResponse& response) :
  33.     CoreController(handler, request, response)
  34. {
  35. }
  36.  
  37. void LoginController::login() {
  38.  
  39.     qDebug() << "In LoginController";
  40.  
  41. //    HttpSession session=sessionStore->getSession(request,response,true);
  42.  
  43.     QString uu = QString::fromStdString(_request.getBody().toStdString());
  44.     QByteArray arr = uu.toLocal8Bit();
  45.  
  46.     QJsonObject doc = QJsonDocument::fromJson(arr).object();
  47.  
  48.     username = doc.value("username").toString ();
  49.     password = doc.value("password").toString ();
  50.  
  51. //    Repository rep(username, password);
  52.     Repository rep1(username, password);
  53.     rep1.connect();
  54.     rep1.request();
  55. //    rep.listOfUsers();
  56.     session = rep.returnSession();
  57.     QSqlDatabase db = rep.returnDb();
  58.  
  59.     qDebug("--------------------- ");
  60.  
  61.     qDebug() << "random sid";
  62.  
  63.     sid = QUuid::createUuid();
  64.  
  65.     sid_1 = qrand() % 65536 ;
  66.     QByteArray sid_b = sid.toByteArray();
  67. //    QByteArray sid_b = sid_str.toUtf8();
  68.  
  69.     SessionTable::instance()->add(User(username, sid_1, session, db));
  70.     CookieStorage::GetInstance()->SaveCookie(Cookie(sid_b));
  71.  
  72.     qDebug("--------------------- ");
  73.  
  74.     if(db.isOpen()){
  75.         qDebug("----open----");
  76.         _response.setStatus(200);
  77.         _response.setCookie(HttpCookie(QByteArray("sessionId"), QByteArray(sid_b), 60000));
  78.     }
  79.     else{
  80.         qDebug("closed");
  81.         _response.setStatus(400);
  82.     }
  83.  
  84.  
  85.     SessionTable::instance()->add(User(username, sid_1, session, db));
  86. }
  87.  
  88. void LoginController::users() {
  89.  
  90.     qDebug() << "In LoginController_users";
  91.  
  92. //    HttpSession session=sessionStore->getSession(request,response,true);
  93.  
  94. //    QString uu = QString::fromStdString(_request.getBody().toStdString());
  95. //    QByteArray arr = uu.toLocal8Bit();
  96.  
  97. //    QJsonObject doc = QJsonDocument::fromJson(arr).object();
  98.  
  99. //    username = doc.value("username").toString ();
  100. //    password = doc.value("password").toString ();
  101.  
  102. //    Repository rep(username, password);
  103. //    rep.connect();
  104.  
  105.     // вызов rep, который в login
  106.     rep.listOfUsers();
  107. }
  108.  
  109. void LoginController::logout() {
  110.     SessionTable::instance()->removeBySessionId(sid_1);
  111.     CookieStorage::GetInstance()->DeleteCookie(Cookie(session));
  112. }
  113.  
  114. //void LoginController::session() {
  115.  
  116. //}
  117.  
  118. bool LoginController::is_authorize() {
  119.     return SessionTable::instance()->session_is_exist(sid_1) && CookieStorage::GetInstance()->CookieIsExist(Cookie(session));
  120. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement