Commit 40ba0b24 authored by jan.koester's avatar jan.koester
Browse files

login works now

parent c98b6b98
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -141,7 +141,6 @@ bool blogi::Auth::ldapLogin(const int tid,const char *username,const char *passw
        throw excep;
    }

    const char* sessid = nullptr;
    char sid[512],email[255],displayname[512];
    BerElement* ber;
    char* dn;
@@ -210,7 +209,8 @@ LDAPLOGINUSERFOUND:
           _dbconn[tid]->exec(&sql,res);
        };

         _session->addSessionData(sid,"uid",ssid,strlen(ssid)+1);
        _session->addSessionData(ssid,"uid",sid,strlen(ssid)+1);
        _session->addSessionData(ssid,"username",username,strlen(ssid)+1);

        std::cout << "User : " << sid << " are logged in" << std::endl;

@@ -221,12 +221,12 @@ LDAPLOGINUSERFOUND:
}
#endif

bool blogi::Auth::isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *sessionid){
bool blogi::Auth::isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *ssid){
        libhttppp::HttpCookie cookie;
        cookie.parse(curreq);
        try{
            std::string storeid;
            _session->getSessionData(sessionid,"uid",storeid);
            _session->getSessionData(ssid,"uid",storeid);
            if(!storeid.empty()){
                return true;
            }
+1 −1
Original line number Diff line number Diff line
@@ -47,7 +47,7 @@ namespace blogi {
        Auth(blogi::Database **pcon,blogi::Session *session,blogi::Config *cfg);
        ~Auth();
        bool login(const int tid,const char *username,const char *password,const char *ssid);
        bool isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *sessionid);
        bool isLoggedIn(const int tid,libhttppp::HttpRequest *curreq,const char *ssid);
    private:
#ifdef LDAPSUPPORT
        bool ldapLogin(const int tid,const char *username,const char *password,const char *ssid);
+17 −10
Original line number Diff line number Diff line
@@ -162,9 +162,9 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid,const

        for(blogi::Plugin::PluginData *curplg=BlogiPlg->getFirstPlugin(); curplg; curplg=curplg->getNextPlg()){
            if(curreq->isMobile())
                curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Mobile);
                curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Mobile,sessionid);
            else
                curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Desktop);
                curplg->getInstace()->Rendering(tid,curreq,&index,RenderingType::Desktop,sessionid);
        }

        PlgArgs->theme->printSite(tid,out,&index,curreq->getRequestURL(),false);
@@ -176,7 +176,6 @@ void blogi::Blogi::loginPage(libhttppp::HttpRequest *curreq,const int tid,const
        return;
    }
    if(PlgArgs->auth->login(tid,username.c_str(),password.c_str(),sessionid)){
        PlgArgs->session->addSessionData(sessionid,"username",username.c_str(), username.length());
        libhttppp::HttpResponse curres;
        curres.setState(HTTP307);
        curres.setVersion(HTTPVERSION(1.1));
@@ -214,6 +213,7 @@ void blogi::Blogi::logoutPage(libhttppp::HttpRequest *curreq,const int tid,const
    }
    libhttppp::HttpResponse curres;
    libhttppp::HttpCookie cookie;
    //need remove method
    cookie.setcookie(&curres,"sessionid","empty");
    curres.setState(HTTP307);
    curres.setVersion(HTTPVERSION(1.1));
@@ -303,18 +303,25 @@ RETRY_REQUEST:
                if(curcookie->getKey() && strcmp(curcookie->getKey(),"sessionid")==0)
                    sessid=curcookie->getValue();
            }
                if(!sessid || !PlgArgs->session->exists(sessid) )
                    throw;
            if(!PlgArgs->session->exists(sessid) )
                throw "session not exists";
        }catch(...){
            sessid=PlgArgs->session->createSession();
                cookie.setcookie(&curres, "sessionid", sessid,nullptr,nullptr,-1, nullptr,false,"1","Lax");
            cookie.setcookie(&curres, "sessionid", sessid,nullptr,nullptr,-1,"/",false,"1","Lax");
            curres.setState(HTTP307);
            curres.setVersion(HTTPVERSION(1.1));
            *curres.setData("Location") << curreq->getRequest();
            curres.setContentType("text/html");
            curres.send(curreq, nullptr, 0);
            return;
        }
        std::cerr << sessid << std::endl;
        try{
            /*blogi internal pages and redirections*/
            if(strcmp(curreq->getRequestURL(),"/")==0 || strcmp(curreq->getRequestURL(),PlgArgs->config->getprefix())==0){
                curres.setState(HTTP307);
                curres.setVersion(HTTPVERSION(1.1));
                *curres.setData("Location") << PlgArgs->config->buildurl("content/tag",url,512);
                *curres.setData("Location") << PlgArgs->config->getstartpage();
                curres.setContentType("text/html");
                curres.send(curreq, nullptr, 0);
                return;
+1 −1

File changed.

Contains only whitespace changes.